Upgrade BerkeleyDB

Przy przenoszeniu katalogu LDAP do nowej instalacji z nowszą wersją samego OpenLDAP (2.4.25) i nowszą wersją BerkeleyDB (5.1.25) musiałem dokonać upgradeu środowiska BerkeleyDB. Ponieważ można się natknąć na to w dowolnej aplikacji wykorzystującej bdb, gdy podnosimy wersję BerkeleyDB, postanowiłem opisać jak tego dokonałem. Jeśli w logach znajdziecie coś takiego:


Program version 5.1 doesn't match environment version 4.7
database ... cannot be opened, err -30969. Restore from backup!
bdb(...): txn_checkpoint interface requires an environment configured for the transaction subsystem
bdb_db_close: database "...": txn_checkpoint failed: Invalid argument (22).
backend_startup_one (type=hdb, suffix="..."): bi_db_open failed! (-30969)
bdb_db_close: database "...": alock_close failed

to właśnie oznacza, że należy zrobić upgrade. Najpierw jednak polecam zrobić kopię:

# cd /data/var/openldap/openldap-data
# cp -a baza baza.db47

spróbujmy db_upgrade:

# /usr/local/BerkeleyDB.5.1/bin/db_upgrade -h /data/var/openldap/openldap-data/baza *
db_upgrade: Program version 5.1 doesn't match environment version 4.7
db_upgrade: DB_ENV->open: DB_VERSION_MISMATCH: Database environment version mismatch

nic z tego, musimy wrócić do starego środowiska i tam wykonać pewne kroki:

# /usr/local/BerkeleyDB.4.7/bin/db_checkpoint -1 -h /data/var/openldap/openldap-data/baza
# /usr/local/BerkeleyDB.4.7/bin/db_recover -h /data/var/openldap/openldap-data/baza 

po tej operacji możemy przenieść się już do nowej instalacji (wersji) i uruchomić aplikację, która powinna odbudować sobie środowisko już w nowej wersji. Można też zrobić to ręcznie używając /usr/local/BerkeleyDB.5.1/bin/db_upgrade -e (czyli już z nowej wersji).

Może Ci się również spodoba

Dodaj komentarz