Miranda NG MDBX database driver

From Miranda NG
Revision as of 18:22, 9 October 2020 by Dart Raiden (talk | contribs)

Plugin:Dbx mdbx
Jump to navigation Jump to search
Other languages:
Miranda NG MDBX database driver

Filename Dbx_mdbx.dll
Author Miranda NG team
Download links
Stable version: 32-bit, 64-bit
Development version: 32-bit, 64-bit

Warning
This database driver might suffer problems because of PC instability or disk damages. Thus that's vitally important to make backups once a day to minimize the chance of data loss.

Provides Miranda database support: global settings, contacts, history, settings per contact.

Based on libmdbx library, but contains some changes from the Miranda NG team which are necessary to meet the specific needs of Miranda.

Database repair

Important
Make a backup copy of the damaged database before restoring!

mdbx_chk.exe is located in the Miranda root folder.

mdbx_chk.exe -i -w -v -t -1 "path\to\corrupted.dat"

This command will select the second to last meta page (since the last one is probably pointing to corrupted snapshot).

Each meta page contains the necessary information (number transactions, geometry, etc.) as well as a pointer (usually) to own MVCC snapshot that seems to float in many pages along with the rest of the MVCC snapshots. Each such snapshot is generated when the writing transaction is committed.

Database check

mdbx_chk.exe is located in the Miranda root folder.

mdbx_chk.exe -i -v -n -w "path\to\database.dat"
Note
"problems: wrong order of entries" messages should not be considered as errors.

If the above does not help

mdbx_dump.exe and mdbx_load.exe are located in the Miranda root folder.

mdbx_dump.exe -n -a -f "%TEMP%\corrupted.tmp" "path\to\corrupted.dat"
mdbx_load.exe -n -a -f "%TEMP%\corrupted.tmp" "path\to\repaired.dat"

This extracts as much data as possible from the corrupted.dat to the temporary file and builds repaired.dat.