如何validationSQLite db3文件是否有效/一致

我有一些sqlite version3的db3文件,我复制了一个实时运行的生产系统(我知道不好的sysadmin坏系统pipe理员)由于各种原因。 是否有一些sqlite命令我可以运行,将validation所有的数据可以读出这些文件(我不介意,如果需要一段时间)。

我正在考虑盗取一些转储所有数据的Perl,然后将其重新导入到新文件中。 我认为如果遇到损坏的数据,sqlite会抛出一个exception。 有没有更好的办法?

我是CentOS 5.3和sqlite-3.3.6-2

我想你想尝试一下:

pragma integrity_check; 

从文档 :

该编译指示对整个数据库进行完整性检查。 integrity_check编译指示查找无序logging,缺less页面,格式错误的logging,缺less索引条目以及UNIQUE和NOT NULL约束错误。 如果integrity_check编译指示发现问题,则返回string(作为每行有一列的多行),用于描述问题。 […]

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