暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【GBase】BerkeleyDB工具 命令行参数参考手册

原创 asdf7890 2022-01-19
1700

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.

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论