在线文档教程
Sqlite
其他 | Miscellaneous

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 库。