Утилита 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