1
概述
GBase 8d后端采用的是BerkeleyDB(bdb库)。BerkeleyDB提供了几个对bdb库进行维护的工具。
2
命令行参数说明
说明下面简单介绍各工具的命令行参数。
2.1
db_archive
用来确定可归档日志文件的工具。
用法:db_archive [-adlsVv] [-h home] [-P
password]
-h参数指定数据库文件路径。
-V参数显示库版本号。
-a参数显示绝对路径。
-l参数列出所有日志文件名。
-s参数用来确定哪些是数据库文件。
不带参数时列出不再需要的日志文件名。
-v 详细模式运行
运行示例:

2.2
db_checkpoint
用来手工进行checkpoint的工具。Checkpoint操作把数据库缓存写入磁盘并在日志中写一个checkpoint记录。
用法:db_checkpoint [-1Vv]
[-h home] [-k kbytes] [-L file] [-P password] [-p min]
-h参数指定数据库文件路径。
-V参数显示库版本号。
-1参数用来执行一次checkpoint操作。
-k kbytes参数在写入指定大小的数据(单位千字节)后执行checkpoint。
-p min参数指定的时间(单位分钟)后执行checkpoint。
运行示例:
Checkpoint操作验证过程:
1)
在线添加一条目,直接使用ultraedit查看id2entry.bdb,当前文件中无所添加条目的信息;
2)
执行db_checkpoint
3)
再次查看id2entry.bdb,若有所添加条目的信息,说明checkpoint操作成功。
以上验证过程目录不停机。
2.3
db_dump
用来把数据库文件导出为平面文本格式的工具。该文本文件的格式可被db_load工具理解。
用法:db_dump [-klNprRV] [-d ahr]
[-f output] [-h home] [-P password] [-s database] db_file
-h参数指定数据库文件路径。
-V参数显示库版本号。
-d 参数用来导出指定的数据库到有助于调试的格式。
a 显示所有信息
h 仅显示页面标题信息
r 不显示空闲列表或在空闲列表上的页面。该模式在恢复测试时使用
-f参数指定输出的文件名。
-s参数指定要导出的单个数据库。如果不指定,则数据库文件中的所有数据库都被导出。
-k参数指定从Queue和Recno数据库导出记录数作为键。
-l参数列出文件中存储的数据库。
-N参数指定运行时不获取共享域锁。诸如Berkeley DB致命错误之类的其它问题也将被忽略。该选项仅在调试错误时使用。
-p参数指定,如果键或数据项中的字符是可打印字符,在导出的文件中就用可打印字符来表示。该选项允许用户使用文本编辑器和工具来修改数据库的内容。
-r参数指定从可能损坏的文件中修复数据。
-R参数指定从可能损坏的文件中积极修复数据。和-r的不同是,该参数将从文件中返回所有可能的数据,存在返回已删除的或无意义的数据的风险。这种方式导出的数据几乎肯定要通过手工编辑或其它方式编辑之后,才能重新加载到另一个数据库。
运行示例:

2.4
db_load
用来把标准输入导入到数据库文件的工具。该输入应该使用db_dump定义的格式。
用法:db_load [-nTV] [-c name=value] [-f
file] [-h home]
[-P password] [-t btree | hash | recno | queue] db_file
-h参数指定数据库文件路径。
-V参数显示库版本号。
-c参数指定忽略基于输入的任意值。其命令行格式为name=value。
-f参数指定用来输入的文件名。
-n参数指定在向一个已存在的数据库导入时,不要覆盖数据库里存在的键。如果因此造成一个键值对不能导入到数据库,则在标准错误输出显示一个警告信息,并忽略该键值对。
-T参数允许非Berkeley DB的应用能简单地导入文本文件到数据库。
-t参数指定基本存取方式。如果未指定-t参数,导入数据库时将使用与其导出时相同的类型。BTree和Hash类型的数据库可以相互转换;Queue和Recno类型的数据库可以相互转换。
运行示例:

2.5
db_recover
用来修复数据库的工具。该工具应在遇到意料之外的应用、Berkeley DB、或系统故障后使用,以修复数据库到一致状态。在使用该工具之后,所有已提交的事务都将保证出现,所有未提交的事务都将被彻底撤销。
用法:db_recover [-ceVv]
[-h home] [-P password]
[-t [[CC]YY]MMDDhhmm[.SS]]
-h参数指定数据库文件路径。
-V参数显示库版本号。
带-c参数指定执行灾难性恢复,而不是正常的恢复。
带-e参数指定在运行修复后保持环境。该参数很少使用,除非在数据库文件夹中存在一个DB_CONFIG文件。如果没有DB_CONFIG文件,将使用缺省参数值建立范围(region,区域或环境?)。
带-t参数指定恢复到某一时间,而不是最近可能的日期。时间戳参数的格式为[[CC]YY]MMDDhhmm[.SS],说明如下:
CC:年的前两位数字(century,世纪)
YY:年的后两位数字。如果指定了YY,而没指定CC,则在YY的值为69到99时,认为CC的值为19;YY为其它值时认为CC的值为20。
MM:月,从1到12。
DD:日,从1到31。
hh:时,从0到23。
mm:分,从0到59。
SS:秒,从0到59。
如果没指定CC和YY,则默认为当前年。如果没指定SS,则秒的值默认为0。
在灾难性恢复的情况下,所有数据库文件的归档副本或快照,以及所有自从建立数据库文件快照以来写过的日志文件,必须恢复。(如果磁盘空间是问题,可以用符号链接来引用日志文件)。
如果故障不是灾难性的,那么在故障发生时系统上存在的文件对执行恢复是足够的。
如果日志文件丢失,db_recover将指出缺失的日志文件并失败,在这种情况下,需要先恢复缺失的日志文件,再重新执行恢复。
运行示例:

执行完毕后__db.00*文件全部被删除
2.6
db_stat
用来显示Berkeley DB环境的统计信息。
用法1:db_stat
-d file [-fN] [-h home] [-P password] [-s database]
-h参数指定数据库文件路径。
-d file显示指定文件file的数据库信息。
-s database显示包含在-d参数指定的文件里的database
用法2:db_stat
[-cEelmNrtVxZ] [-C Aclop]
[-h home] [-L A] [-M A] [-P password] [-R A] [-X A]
-h参数指定数据库文件路径。
-V参数显示库版本号。
带-C参数用来显示锁域的内部信息。(这个选项的输出往往是大量的、无意义的,并仅用于调试)
A 显示所有信息
c 显示锁冲突矩阵
l 显示hash链表内的加锁者
o 显示hash链表内的对象
p 显示锁参数
带-c参数显示锁域统计信息。
带-e参数显示当前环境统计信息。
带-l参数显示日志域统计信息。
带-m参数显示共享内存缓冲池统计信息。
带-N参数指定在运行时不获取共享域锁。诸如Berkeley DB中的潜在致命错误之类的其它问题,也将被忽略。本选项仅用于调试错误,不能用于其它情况。
带-t参数显示事务域统计信息。
运行示例:

该命令要求目录必须是启动状态,否则报找不到路径或文件
2.7
db_verify
用来校验一个或多个文件以及它们包含的数据库的结构。
用法:db_verify [-NoqV] [-h home] [-P
password] db_file ...
-h参数指定数据库文件路径。
-V参数显示库版本号。
-o Skip the database checks
for btree and duplicate sort order and for hashing
带-N参数指定在运行时不获取共享域锁。诸如Berkeley DB中的潜在致命错误之类的其它问题,也将被忽略。本选项仅用于调试错误,不能用于其它情况。
带-q参数不打印任何错误描述,仅简单地在退出时标识成功或失败。
运行示例:

2.8
db_deadlock
用来遍历数据库的锁结构,并在每次检测到死锁时中止一个锁请求。缺省情况下,中止随机的一个锁请求。
用法:db_deadlock [-Vv] [-a e | m | n |
o | W | w | y]
[-h home] [-L file] [-t sec.usec]
-h参数指定数据库文件路径。
-V参数显示库版本号。
-a 当一个死锁被检查到,中止锁的所有者:
m with the most locks
n with the feewst locks
o with the oldest locks
W with the most write locks
w with the fewest write locks
y with the youngest locks
e 当锁或事务超时,中止任何超时锁请求。
-t 周期检查数据库环境,以发现是否有进程被强制等待某个锁,如果有review数据库环境锁结构。
2.9
db_hotbackup
用来热备份数据库的工具。
用法:db_hotbackup [-cDuVv] [-d data_dir
...]
[-h home] [-l log_dir] [-P password] -b backup_dir
-h参数指定数据库文件路径。
-V参数显示库版本号。
-v 详细模式,列出已完成的操作。
-b 参数指定备份的目标路径。
-c 执行备份之前,检查源数据库环境,移除不需要的日志文件。
-D 使用DB_CONFIG配置文件中数据和日志路径
-d 指定一个或多个包含数据文件的路径用于复制目标目录
运行示例:

2.10
db_printlog
用来把Berkeley DB的日志文件转换为人类可读格式的调试工具。
用法:db_printlog [-NrV]
[-b file/offset][-b start-LSN] [-e file/offset] [-e
stop-LSN] [-h home] [-P password]
-h参数指定数据库文件路径。
-V参数显示库版本号。
LSN(log sequence number)
使用“>>文件名称”将日志输出到文件,方便查看否则满屏打印输出
2.11
db_upgrade
用来升级一个或多个文件以及它们包含的数据库的Berkeley DB版本到当前发行版本。
用法:db_upgrade [-NsVv] [-h home] [-P
password] db_file ...
-h参数指定数据库文件路径。
-V参数显示库版本号。
带-N参数指定在运行时不获取共享域锁。诸如Berkeley DB中的潜在致命错误之类的其它问题,也将被忽略。本选项仅用于调试错误,不能用于其它情况。
带-s参数仅在升级前的数据库版本为Berkeley DB 3.1以前版时有效。
-v参数运行在详细模式,显示每次升级的成功信息。
运行示例:

以下工具官方有
db_relicate
The db_relicate utility is a daemon process that provides
replication/HA services on a transational environment.This utility enables you
to update an existing Transational Data Store application to an HA application
with minor modifications.
用法:db_relicate[-MVv][-h home][-L file][-P password][-T num_threads][-t
secs]
db_tuner
The db_tuner
utility analyzes tha data in a btree database,and suggests a page size that is
likely to deliver optimal operation.
用法:db_tuner
[-c cachesize ][-d file][-h home][-s database][-v]
db_log_verify
The db_log_verify
utility verifies the log files of a specific database enviroment.This utility
verifies a specific range of log records,or changed log records of a specific
database.