---------------------------------------------------------------------- ELOQUENCE B.07.10 - patch PE71-0809151 ---------------------------------------------------------------------- This patch adds enhancements or fixes defects of the dbrecover utility as released with Eloquence B.07.10. This patch will be integrated in the Eloquence B.07.10 release. Eloquence B.07.10 must be installed before applying this patch. Severity: PE71-0809151: BUG FIX Superseded patches: PE71-0805071: BUG FIX PE71-0803071: BUG FIX PE71-0801242: BUG FIX PE71-0708131: BUG FIX PE71-0705302: ENHANCEMENT PE71-0704120: BUG FIX PE71-0610132: BUG FIX PE71-0609122: BUG FIX PE71-0606292: BUG FIX PE71-0602282: ENHANCEMENT, BUG FIX Patch PE71-0809151 ------------------ Platforms: All * Fixed a problem where in rare cases a forward recovery could fail due to a wrong order of actions in the forward-log (#3634). When erasing or purging a database or restructuring a database with dbutil a checkpoint operation could result in a wrong order of operations in the forward-log. This could result in data corruption during forward recovery. If this problem is encountered, recovery must be restarted from the last backup after installing a corrected dbrecover binary (restarting dbrecover will not work). * Changed the Windows file version to "7.1.1.16" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0809150 - eloqdb6 server - PE71-0801241 - dblogreset utility Patch PE71-0805071 ------------------ Platforms: All * Fixed a potential problem in dbrecover which in rare cases could cause a panic with a message like below (#3568): Assertion failed: h->lower == data->lower Aborting on internal failure, file btree.c, line 1866 The line number may differ. Besides the "lower" element, the failed assertion may also apply to the "prevpg" or "nextpg" or "upper" or "flags" elements. This could happen in case of an incremental recovery when an incomplete recovery was resumed. If a recovery is restarted it needs to continue at the exact point it left off previously. The last checkpoint is recorded in the volume file. However, any changes beyond the last checkpoint need to be verified if they were previously applied. If similar actions affecting specific btree changes are found the recovery could fail to correctly locate the point-of-resume in the forward log. This could happen, for example, on multiple DBDELETE / DBPUT sequences affecting an index in a way that the same btree page was modified identically multiple times. The implementation was changed to maintain additional information in the volume files during recovery to correctly identify the last change applied. When encountered during dbrecover, recovery must be restarted from the last backup after installing a corrected dbrecover binary (restarting dbrecover will not work). * Changed the Windows file version to "7.1.1.15" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0805070 - eloqdb6 server - PE71-0801241 - dblogreset utility Patch PE71-0803071 ------------------ Platforms: All * Fixed a problem in dbrecover which in rare cases could cause a panic with a message like below (#3552): Assertion failed: h->pgno == data->pgno Aborting on internal failure, file btree.c, line 1808 This problem was caused by a defect in the btree recovery code that could result in a corrupted index page if a btree root page was split for the first time and the page was previously not in the buffer cache. When encountered during dbrecover, recovery must be restarted from the last backup after installing a corrected dbrecover binary (restarting dbrecover will not work). * Changed the Windows file version to "7.1.1.14" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0803070 - eloqdb6 server - PE71-0801241 - dblogreset utility Patch PE71-0801242 ------------------ Platforms: All * Fixed a problem during incremental recovery (#3515). An incremental recovery could in rare cases fail with a message like below: Assertion failed: offset == data->offset Aborting on internal failure, file btree.c, line 2342 This was caused by an already modified btree page not being skipped during the sychronization phase of an incremental recovery. In case this problem is encountered, the incremental recovery will correctly continue after this patch is installed. * The dbrecover utility was modified to use a default cache size of 5 MB (#3499). Previously dbrecover used the cache size configured in the database configuration file. This could result in problems on HP-UX if insufficient address space was available. * Added a new command line option -b to specify the buffer cache size (in MB). * Changed the Windows file version to "7.1.1.13" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0801240 - eloqdb6 server - PE71-0801241 - dblogreset utility Patch PE71-0708131 ------------------ Platforms: All * Fixed a problem that could result in a crash of the server process during forward-recovery of a database restructuring with a log message like below (#3444): Assertion failed: meta->ulist_cache_used <= (int)node->node.ulist.num_pages * Changed the Windows file version to "7.1.1.12" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0708130 - eloqdb6 server - PE71-0705301 - dblogreset utility - PE71-0705231 - fwaudit utility Patch PE71-0705302 ------------------ Platforms: All * The dbrecover utility was enhanced to support incremental recovery. The dbrecover utility may be restarted and should be able to continue from the previous point. The original dbrecover utility requires starting from the previous backup. Please note: When using incremental recovery the server process MUST NOT not be started between dbrecover runs when configured in a MASTER or STANDALONE role. The server may be started when configured to function in a SLAVE role as this will not change the data volumes. * Changed the Windows file version to "7.1.1.11" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0705300 - eloqdb6 server - PE71-0705301 - dblogreset utility - PE71-0705231 - fwaudit utility Patch PE71-0704120 ------------------ Platforms: All * Purging a database could in rare cases result in a crash of the dbrecover utility (#3300). A message like below is output: bf_link_cluster() f_bhp->id.node_id=#xxx:P, node_id=#1:SP, ... Assertion failed: f_bhp->id.node_id == node_id server panic: Aborting on internal failure, file mpool.c, line 465 The problem was caused by potentially reordering actions when recorded in the fwlog file (compared to the original transaction). This could have the effect that data was unexpectedly left in the page cache, owned by the purged database. This triggers a consistency check. * The dbrecover utility was enhanced to support replication up to a specified point in time without previously switching the forward- log file (#3298). The new -T option may be used to specify a point-in-time up to which dbrecover applies changes. Once this point is passed, dbrecover will exit. Incomplete transactions are not applied. The follwing syntax is supported to specify a timestamp: YYYY-MM-DD [HH:MM:SS] MM/DD/YYYY [HH:MM:SS] DD.MM.YYYY [HH:MM:SS] Any character may be used to separate date and time. Specifying the time is optional (defaults to 00:00:00). For example: dbrecover -T "2007-02-22 16:53" ... This specifies to apply transactions committed up to Feb 22, 2007, 16:53:00. * Changed the Windows file version to "7.1.0.10" Patch PE71-0610132 ------------------ Platforms: All * A rare defect was fixed that could result in a crash of the dbrecover utility (#3217). A message like below is output: Assertion failed: page_addr < vol->curr_size file volume.c, line 6183 This problem could happen if the data volume was extended and the volume list of available blocks had to be extended as well (this is required around every 500 MB). During forward-recovery, the stored free-list information was then applied in a wrong way. This problem was introduced with changes to the recovery code in the previous patch PE71-0609121. * Changed the Windows file version to "7.1.0.9" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0610130 - eloqdb6 server - PE71-0610131 - dblogreset utility - PE71-0608010 - fwaudit utility Patch PE71-0609122 ------------------ Platforms: All * The dbrecover utility was modified to implement the equivalent recovery procedure of eloqdb6 patch PE71-0609120. * Changed the Windows file version to "7.1.0.8" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0609120 - eloqdb6 server - PE71-0609121 - dblogreset utility - PE71-0608010 - fwaudit utility Patch PE71-0606292 ------------------ Platforms: All * The dbrecover utility was modified to add support for the modified forward-log file format added with eloqdb6 patch PE71-0606290. * Changed the Windows file version to "7.1.0.7" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0606290 - eloqdb6 server - PE71-0606291 - dblogreset utility - PE71-0606293 - fwaudit utility Patch PE71-0602282 ------------------ Platforms: All * A rare defect with forward-recovery was fixed that could result in a corrupted volume set (#2999). This causes an internal consistency check to fail and eloqdb6 to abort on startup with an error message like below: Assertion failed: page == new_vol->flist_tail server panic: Aborting on internal failure, file volume.c, line 3988 This problem could happen if the data volume was extended and the volume list of available blocks had to be extended as well (this is required around every 500 MB). The recovery then missed to update the flist_tail field in the volume header, causing a panic the next time the server was restarted. The dbrecover utility was fixed to correctly update the flist_tail field. In addition the eloqdb6 behavior was modified to detect and correct this problem on startup. A notice is written to the server event log file in this case. * The dbrecover utility was modified to add support for the modified forward-log file format added with eloqdb6 patch PE71-0602280. The eloqdb6 server process was enhanced to use a more efficient format to record index and meta data changes. This enhancement results in a substantial reduction in disk space for the forward-log file when index entries are changed frequently. This change required a modification of the forward-log file format. While older forward-log files are still supported, related utility programs need to be updated to handle the new format. * Changed the Windows file version to "7.1.0.6" Notes / Related patches: - The following related patches (or superseding) should be installed with this patch: - PE71-0602280 - eloqdb6 server - PE71-0602281 - dblogreset utility - PE71-0602283 - fwaudit utility Installation: ------------- Please download the patch archive that corresponds with the installed release. The patch files follow the conventions below: PE71-0809151-hpux-ia64.tar.gz ^ ^ ^ | | Architecture / OS specific build | Operating system Patch ID HP-UX: In order to install this patch, you need to unpack it with gzip and tar. Gzip is included with HP-UX. Installation requires root privileges. cd /opt/eloquence6 gzip -dc /path/to/PE71-0809151-hpux.tar.gz | tar xf - Files: bin/dbrecover share/doc/PE71-0809151-README Linux: In order to install this patch, you need to unpack it with tar. Installation requires root privileges. cd /opt/eloquence6 tar xzf /path/to/PE71-0809151-linux.tar.gz Files: bin/dbrecover share/doc/PE71-0809151-README Windows XP/2000/NT: This patch should *only* be installed if you previously installed the Eloquence server components on your system. Installation requires administrative capabilities. Two options are available for patch installation. The patch is available as self extracting archive for automatic installation and as a zip archive for manual installation. Both patches are equivalent. Installation requires administrative capabilities. For automatic installation of this patch, please download the patch file PE71-0809151-win32.exe. Before installation, please consider closing all applications, then execute the patch installation program. Installation does not require a reboot unless the patched files were active. For a manual installation of the patch, please download the patch file PE71-0809151-win32.zip and unpack its contents. Then perform the following steps: * Please copy the dbrecover.exe file into the bin subdirectory of your Eloquence installation (for example C:\Programs\Eloquence\bin). * Please copy the PE71-0809151-README.txt file into the share\doc subdirectory of your Eloquence installation (for example C:\Programs\Eloquence\share\doc). Files: dbrecover.exe PE71-0809151-README.txt