Package: mailavenger
Severity: normal

Hi,

when checking db4.x->db5.1 transition, I have found that mailavenger
code uses Berkeley DB transactions.  There was a logformat change
between 4.7 -> 4.8 -> 5.0 versions, so you should provide an upgrade
path for your users using Berkeley DB databases.

Upstream documentation can be found at:

http://download.oracle.com/docs/cd/E17076_02/html/upgrading/upgrade_process.html

Please not that there was no change in database format, so the correct 
procedure is:

If the application has a Berkeley DB transactional environment, and
the log files need upgrading but the databases do not, the application
may be installed in the field using the following steps:


    1. Shut down the old version of the application.

    2. Still using the old version of Berkeley DB, run recovery on the
       database environment using the DB_ENV->open() method, or the
       db_recover utility.

    3. If you used the DB_ENV->open() method to run recovery, make
       sure that the Berkeley DB environment is removed using the
       DB_ENV->remove() method or an appropriate system utility.

    4. Archive the database environment for catastrophic recovery. See
       Database and log file archival for more information.

    5. Recompile and install the new version of the application.

    6. Force a checkpoint using the DB_ENV->txn_checkpoint() method or
       the db_checkpoint utility. If you use the db_checkpoint
       utility, make sure to use the new version of the utility; that
       is, the version that came with the release of Berkeley DB to
       which you are upgrading.

    7. Remove unnecessary log files from the environment using the -d
       option on the db_archive utility, or from an application which
       calls the DB_ENV->log_archive() method with the DB_ARCH_REMOVE
       flag.

       Note that if you are upgrading a replicated application, then
       you should not perform this step until all of the replication
       sites have been upgraded to the current release level. If you
       run this site before all your sites are upgraded, then errors
       can occur in your replication activities because important
       version information might be lost.

    8. Restart the application.


All those steps could also be performed by command line utilities (you
need to depend on db4.8-util and db5.1-util).

Example upgrade script from cyrus-imapd can be found at:

http://git.debian.org/?p=pkg-cyrus-imapd/cyrus-imapd-2.4.git;a=blob;f=debian/cyrus-upgrade-db

O.



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to