Spec-Zone.ru › SQLite

Утилита dbhash.exe

1. Обзор

Утилита dbhash (или dbhash.exe в Windows) — это программа командной строки, которая вычисляет хеш SHA1 схемы и содержимого базы данных SQLite.

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. Компиляция

Для создания копии утилиты dbhash на Unix, скопируйте исходный код SQLite и введите:

./configure
make dbhash

В Windows введите:

nmake /f makefile.msc dbhash.exe

Программа dbhash реализована в единственном файле C-кода, называемом dbhash.c. Для ручной компиляции программы dbhash просто скомпилируйте исходный файл dbhash.c и подключите его к библиотеке SQLite.

Эта страница была последняяжды изменена 08.01.2022 05:02:57 UTC

SQLite is in the Public Domain.
https://sqlite.org/dbhash.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API