The dbhash.exe Utility Program
The dbhash.exe Utility Program
1.概述
所述 dbhash
(或 dbhash.exe
在 Windows 上)实用程序是一个命令行程序,其计算的模式和内容 SQLite 数据库的 SHA1 哈希。
Dbhash 忽略无关的格式化细节,只散列数据库模式和内容。因此,即使数据库文件被修改,散列也是不变的:
- VACUUM
- PRAGMA page_size
- PRAGMA journal_mode
- REINDEX
- ANALYZE
- 通过备份 API 复制
- 等等
上述操作可能会导致原始数据库文件发生巨大变化,从而在文件级别导致非常不同的 SHA1 哈希值。但由于数据库文件中表示的内容不受这些操作的影响,因此由 dbhash 计算的散列值也不会改变。
Dbhash 可以用来比较两个数据库以确认它们是相同的,即使它们在磁盘上的表示方式有很大不同。Dbhash 也可用于验证远程数据库的内容,而不必通过慢速链接传输远程数据库的全部内容。
2.用法
Dbhash 是一个命令行工具。要运行它,请在命令行提示符处输入 “dbhash”,然后键入要散列的一个或多个 SQLite 数据库文件的名称。数据库哈希将显示在标准输出中。例如:
drh@bella:~/sqlite/bld$ dbhash ~/Fossils/sqlite.fossil
8d3da9ff87196312aaa33076627ccb7943ef79e3 /home/drh/Fossils/sqlite.fossil
Dbhash 支持命令行选项,该选项可以限制数据库文件的散列表的表,或将散列限制为仅内容或仅限于模式。运行 “dbhash --help” 以获取更多信息。
3.构建
要在 unix 上构建 dbhash 实用程序的副本,请获取规范 SQLite 源代码的副本并输入:
./configure
make dbhash
在 Windows 上输入:
nmake /f makefile.msc dbhash.exe
dbhash 程序由一个名为 dbhash.c 的单个 C 代码文件实现。要手动构建 dbhash 程序,只需编译 dbhash.c 源文件并将其链接到 SQLite 库。