У меня есть файлы db3 sqlite version3, которые я скопировал из работающей производственной системы (я знаю, что плохой системный администратор плохой системный администратор) по разным причинам. Есть ли какая-нибудь команда sqlite, которую я могу запустить, которая проверит, что все данные могут быть прочитаны из этих файлов (я не возражаю, если это займет некоторое время).
Я подумывал о том, чтобы взломать какой-нибудь perl, который выгружает все данные, а затем повторно импортирует их в новые файлы. Я думаю, что sqlite выдаст исключение, если обнаружит поврежденные данные. Есть ли способ лучше?
Я CentOS 5.3 и sqlite-3.3.6-2
Думаю, вы хотите попробовать:
pragma integrity_check;
Из документация:
Эта прагма выполняет проверку целостности всей базы данных. Прагма Integrity_check ищет записи с нарушением порядка, отсутствующие страницы, искаженные записи, отсутствующие записи индекса и ошибки ограничения UNIQUE и NOT NULL. Если прагма Integration_check находит проблемы, возвращаются строки (как несколько строк с одним столбцом в строке), которые описывают проблемы. [...]
См. Также PRAGMA quick_check команда, которая выполняет большую часть проверки PRAGMA integration_check, но работает намного быстрее.