.
contact contact

Database Utility Changes (B100209)

 
.
  This document provides a list of enhancements and user visible changes in Eloquence patch bundle PE71-B100209, relative to the original B.07.10 release.

Contents:


dbbexp

  • The dbbexp utility was modified to use a default cache size of 5 MB. Previously, the cache size configured in the database configuration file was used.

  • Added a new command line option -b <size> to specify the buffer cache size (in MB).


dbcfix

  • The displayed number of processed records was changed to cover up to 9 digits.

  • The dbcfix utility was modified to use a default cache size of 64 MB. Previously, the cache size configured in the database configuration file was used.

  • Added a new command line option -b <size> to specify the buffer cache size (in MB).

  • A problem comparing P and Z item types was fixed. This fixes a problem where dbcfix might dignose a non-matching search item in some cases and would trigger repair of this chain unnecessarily.

    The P and Z item types may use a different binary representation for the same numeric value. Eloquence compares P and Z items based on their numeric value, even if different binary encoding is used (eg. unsigned and positive values are considered the same).

    However, dbcfix used a binary comparison on P and Z item values in some consistency check and considered positive and unsigned values different, even though they represented the same value.

  • The dbcfix utility was changed to retain additional status information in the volume files that is used by replication.

    Older dbcfix versions did reset this information and therefore could cause a problem when used with replication.


dbfsck

  • The dbfsck utility was enhanced to detect uninitialized BTREE pages.

    In rare cases, uninitialized BTREE pages may exist due to a previous database server crash. These pages do not harm database operation if the BTREE is otherwise consistent.

    The dbfsck utility now detects an uninitialized BTREE page as a nonfatal condition and outputs an informational message like below:

    Info: page ... has never been initialized.

    In addition, dbfsck enforces a full tree check on the affected BTREE to ensure that the index is structurally consistent.

  • The dbfsck utility now outputs the number of free records in a data set where the corresponding record numbers are not located in the free-list. This should help to estimate whether or not it is worth the effort to run dbfsck in write-mode and fix the free-list for this specific data set.

  • The dbfsck utility was changed to relax the FixRec consistency check on the first/last record meta information.

    Starting with eloqdb6 database server patch PE71-0802120, the first/last record meta data are no longer maintained to specify an exact record number but to provide a hint on lower/upper record number boundaries. Due to this change previous dbfsck version might in some cases incorrectly report inconsistencies on the FixRec first/last record meta data.

    dbfsck was relaxed to match the validation of this information with the server.

  • The dbfsck utility was changed to retain additional status information in the volume files that is used by replication.

    Older dbfsck versions did reset this information and therefore could cause a problem when used with replication.

  • The dbfsck memory consumption has been significantly reduced. This causes a noticable improvement of the pass 1 runtime and allows to use dbfsck on large database environments.

  • Progress information has been added which is output when the -v command line option is specified. If enabled, progress info is output every minute to stdout.

    The command line example below redirects dbfsck messages to a log file while progress info is output to the terminal:

    $ dbfsck -v 2>dbfsck.log
    Example progress message output:
    Processed 222437 of 556094 pages (40%)
    Progress information output is suppressed if pass 1 is skipped.


dblogreset

  • The dblogreset utility was modified to use a default cache size of 5 MB. Previously, the cache size configured in the database configuration file was used.

  • Added a new command line option -b <size> to specify the buffer cache size (in MB).

  • The dblogreset utility was changed to create a recovery forward-log "bridge segment", if necessary.

    If the server process terminates abnormally, a subsequent server start or use of the dblogreset utility performs a startup recovery that re-applies any recently committed transactions.

    The database server startup recovery and the dblogreset utility have been enhanced to continue the forward-log after a server crash. Any changes applied during startup recovery may now be captured in a special recovery forward-log segment. Previously, an existing forward-log was disabled in this case so a new backup was required to regain the ability of using dbrecover.

    Please note that audit information are not retained for any recovered transactions. The fwaudit utility outputs a warning note when it discovers this situation.

  • The dblogreset utility was enhanced to support a new configuration option to enable read access on forward-log files for the group (GID) specified in the database server configuration file.

    By default the dblogreset utility creates any forward-log files with restrictive permissions that only allow the configured user (and the superuser) to access the forward-log files.

    The [forwardlog] GroupReadAccess configuration option may be used to specify read access for the configured group to the forward-log files.

    [forwardlog]
    GroupReadAccess = 0|1
    
    If set to a nonzero value, forward-log files are created with a permission that allows group read access (configured with the [Server] GID option). If set to zero, forward log files are created with a permission to restrict access to the owner (configured with the [Server] UID option).

    The default value is 0 to permit owner access only.


dbrecover

  • The dbrecover utility was modified to use a default cache size of 5 MB. Previously, the cache size configured in the database configuration file was used.

  • Added a new command line option -b <size> to specify the buffer cache size (in MB).

  • The dbrecover utility was enhanced to support incremental recovery. If aborted prematurely, the dbrecover utility may be restarted and should be able to continue from the previous point.
    The original dbrecover utility required starting from the previous backup.

    Please note: When using incremental recovery the server process MUST NOT not be started between dbrecover runs when the server is configured in a MASTER or STANDALONE (default) role. The server may be started when configured to function in a SLAVE role as this will not change the data volumes.

  • The dbrecover utility was enhanced to support recovery up to a specified point in time.

    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 following 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, it defaults to 00:00:00 if not present.

    For example:

    dbrecover -T "2007-02-22 16:53" ...
    
    This specifies to apply transactions committed up to Feb 22, 2007, 16:53:00.


dbrepl

  • The new dbrepl utility is used to replicate database transactions to other database environments.

For more information, please refer to the Eloquence Database replication documentation.

  • The dbrepl utility now issues an additional exit code 3 in case a connection problem is detected, for example if the replication slave server is temporarily unavailable.

    The exit codes issued by dbrepl are:

      0 - successful execution, graceful exit
    
          (will only be issued if the -S or -G command line option is
          used and dbrepl executed normally until the existing log or
          the current generation has been processed) 
    
      1 - failure, typically requires manual intervention
    
          (for example, a configuration problem on the replication
          master or slave servers)
    
      2 - invalid or -help command line option
    
          (the command line usage was output)
    
      3 - connection problem
    
          (could not connect or lost the connection to the replication
          slave server)
    Exit code 3 may be used in a script to retry the dbrepl invocation. Preferably, repeated invocations should be appropriately delayed, for example by sleeping 60 seconds between two invocations.

  • The dbrepl utility could not easily be used through a SSH tunnel because the underlying Eloquence database client library would always establish an IPC connection to the database server whenever the localhost address is used.

    However, since an IPC connection uses shared memory to communicate with the database server, it would not work through a SSH tunnel.

    To solve this, the EQ_DBENABLEIPC environment variable may be set to zero (EQ_DBENABLEIPC=0), which will enforce a TCP network connection even if the localhost address is used.

  • If the -v command line option is specified, this now implies the log flag R1. Therefore it is no longer necessary to use the -d command line option in addition to -v to set the R1 log flag.


dbstore

  • The dbstore utility was modified to use a default cache size of 5 MB. Previously, the cache size configured in the database configuration file was used.

  • Added a new command line option -b <size> to specify the buffer cache size (in MB).


dbutil

  • Added support for case insensitive index option.

  • On recent Windows versions the dbutil utility could fail to start.

    During dbutil startup, a temporary file was created in the current root directory, typically C:\.

    However, on Windows Vista, C:\ is write-protected by default, causing dbutil to fail.

    The dbutil utility was changed to use the system-defined temporary directory.

  • The DELETE PATH syntax was simplified and no longer requires specification of a master set. The new syntax is as below:
    DELETE PATH item-name;
    
    The previous syntax is still accepted but the specified set name is not verified.
    DELETE PATH item-name(set-name);
    
    Deleting a path from a set does not require specifying a master set as this information is available from the database schema.

  • The dbutil utility enforced a minimum record size (media size) of 4 bytes. This limitation could affect compatibility of stand-alone manual master and detail sets. An error message like below was output by dbutil:
    SET-NAME: Data set below min. entry length (4)
    
    The minimum record size limitation was removed from Eloquence B.07.10 (and recent B.07.00 patch levels) but was still enforced by dbutil.


dbvolchange

  • The dbvolchange utility was changed to retain additional status information in the volume files that is used by replication and incremental recovery.

    Older dbvolchange versions did reset this information and therefore could cause a problem when used with replication.


dbvolcreate

  • The dbvolcreate utility now uses the system-defined temporary directory instead of C:\ on Windows.


dbvolextend

  • The dbvolextend utility was changed to retain additional status information in the volume files that is used by replication and incremental recovery.

    Older dbvolextend versions did reset this information and therefore could cause a problem when used with replication.

  • The dbvolextend utility now uses the system-defined temporary directory instead of C:\ on Windows.


fwaudit

  • The internal "expression stack" limit was increased. An overflow of the internal expression stack causes the fwaudit utility to abort with a message like below:
    Error in filter expression: expression too complex
    
    Originally, the capacity of the message stack was 100 elements. This has been increased to 1000 elements to allow more complex filter expressions.

  • The fwaudit utility was enhanced to support information passed by the TurboIMAGE DBMEMO, DBBEGIN and DBEND calls.

    Please note that the HP3K_API_COMPAT database property must be set appropriately for the TurboIMAGE DBMEMO, DBBEGIN and DBEND calls to have any effect.

  • The fwaudit utility was enhanced to support filtering by TurboIMAGE DBMEMO, DBBEGIN and DBEND information. This includes using session and timestamp filters.

  • The new -m command line option was added to output TurboIMAGE DBMEMO and DBBEGIN/DBEND records. The -m option may be combined with the -r option (print clear text report).

    Information passed by the TurboIMAGE DBMEMO, DBBEGIN and DBEND calls is output as text. Any non-printable characters are printed as octal escape sequences (the same way item values are output). The -x command line option may be used to select output in hex dump format.

  • The "conntime" session item was added to allow filtering by the session connection timestamp.

  • The "id" session item was added to allow filtering by a specific session identifier.

  • fwaudit could fail with an error message like below, if the same item name was present in different databases, using different item types.
    item requires a string filter argument
    item requires a numeric filter argument
    
    As a solution, fwaudit now accepts both string and numeric values on all item types. For numeric item types, if a string can be converted to a numeric value, it will be used, otherwise the value does not match and fwaudit continues. For string item types, a numeric value will be used literally for an alphanumeric comparison.

  • When processing an audit file, any comment records are now output to stderr.

    Audit comment records are used to record any problems that may have occurred while the original forward-log was processed. When an archived audit file is later used with fwaudit, these comment record messages are now output to stderr. Previously they were output to stdout along with the clear-text report.

    In addition, the warning messages written to comment records have been revised so that they now clearly indicate that they were created while the original forward-log was processed.

For more information, please refer to the Eloquence Database auditing documentation.


fwutil

  • The new fwutil library enables access to the Eloquence database forward-log files that holds the archived committed transactions.

For more information, please refer to the Eloquence fwutil documentation.


prschema


query3k

  • QUERY3K was changed to use the /var/tmp directory as a default location to create temporary files. Previous QUERY3K versions used the /tmp directory by default.

  • The FORM SETS command was changed to suppress outputting the MAXIMUM CAPACITY if the output would be the Eloquence default. As all Eloquence data sets are considered to have a dynamic "capacity" this would otherwise clutter the output without providing any additional information.

  • QUERY3K was enhanced to improve support of the Eloquence database limits that exceed the previous TurboIMAGE limits.

    QUERY3K should now support the following limits

    • a record size of up to 5120 bytes
    • 2048 items per database
    • 500 data sets
    • 1024 items per set.
    • The item type 'B' (binary) is now mapped to 'X'.

    String items with more than 255 bytes per subitem are not yet fully supported and may result in undefined behavior.

  • A REDO command could result in a stack corruption and/or QUERY3K crash if the command line exceeded 255 characters and the command was edited.

  • A problem with the MATCHING clause ("Generic Search") was fixed. A dot (".") in a search condition using the MATCHING clause was not considered literally but instead matched arbitrary characters.

    For example:

      MATCHING "d.dd" should match the value "2.50" but not "4444".
    


schema

  • Added support for case insensitive index option.

  • An item of type B (binary) may be specified with a partial size in an index definition.

  • The schema processor enforced a minimum record size (media size) of 4 bytes. This limitation could affect compatibility of stand-alone manual master and detail sets. An error message like below was output by the schema processor:
      *** (ERROR) Record size below minimum
    
    The minimum record size limitation was removed from Eloquence B.07.10 (and recent B.07.00 patch levels) but was still enforced by the schema processor.


 
 
.
 
 
  Privacy | Webmaster | Terms of use | Impressum Revision:  2010-02-12  
  Copyright © 2009-2010 Marxmeier Software AG