This document provides a detailed list of the database changes
included in the B.08.20 release.
Most prominent is the support of FTS indexes (and some related
utilities). In addition, a variety of database functions and
utilities were added or enhanced:
FTS index support
Support for FTS indexes was added to the database server, the client
database and image3k libraries and the language runtime.
In addition, the libftc library implements backwards compatibility with
ODX and DBI calls.
Please refer to the FTS documentation for more information.
dbftswords utility
The dbftswords utility was introduced with B.08.20 and may be used to
list FTS keywords for a specific FTS field. Typical use includes
verifying the FTS keywords match expectations or to create a keyword
exclusion list.
For more information please refer to the
dbftswords documentation.
ftsdump utility
The ftsdump utility was introduced with B.08.20 and may be used to
obtain FTS details. It is mostly intended for diagnostic use.
For more information please refer to the
ftsdump documentation.
dbrepack utility
The dbrepack utility was introduced with B.08.20 and allows to reclaim
disk space occupied by deleted records.
For more information please refer to the
dbrepack documentation.
dbpasswd utility
The dbpasswd utility was introduced with B.08.20 and supports creating
protected database password files and/or changing database passwords.
Database password files may be used to authenticate with the database
server (eg. by using the EQ_DBUSER environment variable).
The dbpasswd utility adds the option to use protected password files
and to impose additional restrictions on their use, such as expiration
period, operating system user or host system.
It provides a convenient and secure option to avoid using clear text
passwords and to manage database passwords.
For more information please refer to the
dbpasswd documentation.
dbrepl utility
The dbrepl utility was enhanced to support configuring a replication
instance with a config file and to support running in background.
Also, dbrepl was enhanced to allow retrying replication after
a slave server connection failure.
For more information please refer to the
dbrepl documentation.
Running replication as background service
On HP-UX and Linux, the start/stop script was enhanced to allow managing
dbrepl instances. On Windows, dbrepl may be used as a service.
For more information please refer to the
dbrepl documentation.
prdbutil utility
The prdbutil utility was introduced with B.08.20 and allows to
obtain the database configuration.
prdbutil outputs dbutil syntax and the output may subsequently be
applied with dbutil to restore a database configuration.
For more information please refer to the
prdbutil documentation.
dbctl input mode
The dbctl utility was enhanced to allow reading commands from stdin
rather than the command line. This allows using dbctl interactively
and simplifies submitting multiple dbctl commands with a single
dbctl invocation.
If the -i option is present, any dbctl commands are
read from stdin. The exit command (or an EOF condition)
may be used to exit from dbctl. A leading "#"
or "!" indicates a comment and is ignored.
Any commands read from stdin are echoed if stdin is not connected to a
tty device (script use). The option -e may be used
to disable the command echo.
In input mode, dbctl will exit if a command failure is encountered
if stdin is not connected to a tty device (batch use).
The example below demonstrates the dbctl -i option in a script to
obtain slave server replication status repeatedly every 10 seconds:
while :; do echo replication monitor; sleep 10; done | ./dbctl -ie
For more information please refer to the
dbctl documentation.
dbctl replication status (slave server)
The dbctl replication status output (and the HTTP config status page) on a
slave server has additional information on the last replication activity
and the estimated replication lag. This is intended to simplify monitoring
the replication status.
For example:
$ dbctl replication status slave
Server is configured as SLAVE
Replication is active (activity 158 sec ago, lag 0 sec)
Last checkpoint is 45-1.1 (2012-09-05 16:57:32)
Forward-logging is enabled
Forward-log is '/data/test/S/fw/fw-44-1.log'
-
The activity field ("last activity") indicates the last time when
replication data was received by the slave server (difference in
seconds from the current time).
-
The lag field ("estimated replication delay") indicates the time
difference between the master timestamp in the replication data
and the time the data was received on the slave server (difference
in seconds).
-
The lag field is only present when replication is active (dbrepl
connected to the slave server). The activity field is present
when dbrepl was previously connected to the slave server.
dbctl replication monitor (slave server)
The "dbctl replication monitor" returns the slave server replication status
in a form that is easier to parse in scripting. The following fields are
returned, separated by spaces.
-
replication active -
0=dbrepl not connected, 1=dbrepl connected
-
last activity (seconds) -
numeric, number of seconds since last time when replication data was
received by the slave server
-
replication lag (seconds) -
numeric, time difference (in seconds) between the master timestamp
in the replication data and the time the data was received on the
slave server. Zero if replication is not active.
-
last master checkpoint (gen-seq.tag)
-
last master checkpoint (timestamp) -
numeric, timestamp in seconds since the epoch
This information returned is substantially identical to "dbctl replication
status" and is intended to simplify replication status monitoring.
dbctl volume
The "dbctl volume" command is an experimental user interface and allows to change database
volume file properties without a server restart. The following syntax is
supported:
- dbctl volume limit
-
Returns the current volume size limit
- dbctl volume limit MB
-
Allows specifying a new volume size limit (in MB)
- dbctl volume list
-
List database volumes and properties
- dbctl volume id
-
List the database volume properties for volume id
- dbctl volume id max MB
-
Allows to change the size limit of the volume (in MB).
This has the same effect as dbvolchange.
- dbctl volume id ext MB
-
Allows to change the extension size of the volume (in MB).
This has the same effect as dbvolchange.
Please note that the dbctl volume commands are not replicated to
a slave server. During replication this has no effect as the
slave server will ignore these limits.
However, on a role change (master/slave) these limits will be
enforced.
Consequently, it is recommended to perform the same change on
any slave servers.
Also note that any change to the global volume size limit does
not persist a database server restart. It only applies to the
running server process and does not automatically update the
VolumeFileSizeLimit in the eloqdb server config file.
Database server changes
In addition to new functionality to support FTS indexes, several
enhancements were incorporated in the database server.
- Changed timestamp format in log files to YYYY-MM-DD HH:MM:SS
- The [server] LogTimeFmt config item may be used to specify the
logfile timestamp format for the database server.
-
The database server restructuring procedure was enhanced to use a
more efficient bulk rebuild procedure when rebuilding indexes (FTS and btree).
This makes temporary use of memory to accelerate btree indexing performance
noticeably. The max. amount of temporary memory used for index rebuild
may be configured with the [config] RestructMemLimit config item.
The default memory limit is currently 100 MB.
Larger values (such as 300 MB) may noticeably improve rebuild performance
for large databases. Memory consumption during index rebuild may be reduced
when using the 32-bit eloqdb32 and address space is tight (at the cost of
rebuild performance).
-
FTS indexes are rebuilt selectively. Only FTS data that is affected
by a database structural change is rebuilt.
-
Rebuilding a btree index should use less disk space in the forward log.
-
The dbctl replication status and the HTTP config status page on
a slave server have additional information on the last replication
activity and the estimated replication lag. This is intended to
simplify monitoring the replication status.
-
The dbrepl utility may now be used with operator capabilities.
Previous server versions required dba capabilities for replication.
Miscellaneous Changes
|