如何验证SQLite db3文件有效/一致


24

我有一些sqlite version3 db3文件,出于各种原因,我从一个正在运行的生产系统(我知道sysadmin不好,sysadmin不好)中复制了这些文件。我是否可以运行一些sqlite命令,以验证是否可以从这些文件中读取所有数据(我不介意是否需要一段时间)。

我正在考虑破解一些perl,将所有数据转储出去,然后将其重新导入到新文件中。我认为,如果sqlite遇到损坏的数据,它将抛出异常。有没有更好的办法?

我是CentOS 5.3和sqlite-3.3.6-2

Answers:


34

我认为您想尝试:

pragma integrity_check;

文档中

该编译指示对整个数据库进行完整性检查。integrity_check杂注查找乱序记录,缺少页面,格式错误的记录,缺少索引条目以及UNIQUE和NOT NULL约束错误。如果integration_check编译指示发现问题,则返回描述问题的字符串(多行,每行一行)。[...]

另请参阅PRAGMA quick_check命令,该命令执行PRAGMA完整性检查的大部分检查,但运行速度更快。


3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.