Linux系统db_load命令

Linux系统db_load命令。原文翻译。

bash 复制代码
db_load [-nTV] [-b ext_file_dir] [-c name=value] [-f file] [-h home] [-P password] [-o ext_file_threshold] [-t btree | hash | queue | recno] file

db_load 工具从标准输入读取数据并将其加载到数据库文件 中。如果数据库文件不存在,则会创建该文件。

db_load 的输入必须采用db_dump实用程序指定的输出格式,或采用下文**-T**选项指定的格式。

  • -b 标识存储外部文件数据的目录。如果未指定此选项,则外部文件数据将放置在数据库环境中的子目录中。另请参见**-o**选项。

  • -c 指定配置选项,忽略它们基于输入可能具有的任何值。命令行格式为name=value 。有关**-c**选项支持的关键字列表,请参阅下面的"支持的关键字"部分。

  • -f 从指定的输入文件读取,而不是从标准输入读取。

  • -h 为数据库环境指定主目录。如果指定了主目录,则使用DB_ENV->open()的DB_INIT_LOCK、DB_INIT_LIOG、DB_INIT _MPOOL、DB_INITI_TXN和DB_USE_ENVIRON标志打开数据库环境(这意味着在其他进程使用数据库时,可以使用DB_load将数据加载到数据库中。)如果DB_ENV-->open()调用失败,或者没有指定主目录,数据库仍会更新,但环境会被忽略;例如不进行锁定。

  • -n加载到已存在的数据库时,不要覆盖数据库中的现有键。如果由于这个原因无法将密钥/数据对加载到数据库中,则会在标准错误输出上显示警告消息,并跳过密钥/数据对。

  • -o 标识外部文件阈值(以字节为单位)。此阈值决定何时将数据项存储为外部文件。小于此阈值的数据项作为正常数据存储在数据库中。大于此大小的数据项存储在磁盘上为此目的留出的子目录中。使用**-b**命令行选项标识外部文件数据的存储位置。

  • -P指定环境密码。尽管Berkeley DB实用程序会尽快覆盖密码字符串,但请注意,在无特权用户可以看到命令行参数的系统上,或者在实用程序无法覆盖包含命令行参数内存的系统上可能存在漏洞窗口。

  • -r 重置数据库的文件ID或日志序列号(LSN)。事务环境中的所有数据库页面都包含对环境日志记录的引用。为了将数据库复制到不同的数据库环境中,必须重置对旧环境日志记录的数据库页面引用,否则在新环境中修改数据库时可能会发生数据损坏。-r lsn选项重置数据库的日志序列号。

所有数据库都包含一个ID字符串,用于在数据库环境缓存中标识数据库。如果复制数据库,并在与具有相同ID字符串的另一个文件相同的环境中使用,则可能会发生损坏。-r fileid选项将数据库的文件ID重置为新值。

在这两种情况下,文件参数指定的物理文件都会被就地修改。

  • -T -T选项允许非Berkeley DB应用程序轻松地将文本文件加载到数据库中。-T选项允许非Berkeley DB应用程序轻松地将文本文件加载到数据库中。

如果要创建的数据库是Btree或Hash类型,或者关键字 被指定为set,则输入必须是成对的文本行,其中成对的第一行是关键项,成对的第二行是其相应的数据项。如果要创建的数据库类型为Queue或Recno,并且未设置关字键,则输入必须是文本行,其中每一行都是数据库的新数据项。

一个简单的转义机制应用于文本输入,其中换行符和反斜杠(\)字符是特殊的。换行符被解释为记录分隔符。文本中的反斜杠字符将以两种方式之一进行解释:如果反斜杠字符位于另一个反斜杠字符之前,则这对字符将被解释为文字反斜杠。如果反斜杠字符位于任何其他字符之前,则反斜杠后面的两个字符将被解释为单个字符的十六进制规范;例如,\0a是ASCII字符集中的换行符。

因此,必须转义文本输入中自然出现的任何反斜杠或换行符,以避免db_load的误解。

如果指定了**-T** 选项,则必须使用**-T**选项指定基础访问方法类型。

Btree和Hash数据库可以从一个转换到另一个。队列和Recno数据库可以从一个转换为另一个。如果在调用db_dump时指定了**-k**选项,则可以将Queue和Recno数据库转换为Btree或Hash,键为整数记录号。

  • -V将库版本号写入标准输出,然后退出。

db_load 实用程序可以与Berkeley db环境一起使用(如-h选项、环境变量db_HOME 所述,或者因为该实用程序在包含Berkeley db环境的目录中运行)。为了避免在使用Berkeley DB环境时环境损坏,应始终给予DB_load从环境中分离并优雅退出的机会。要使db_load释放所有环境资源并干净退出,请向其发送中断信号(SIGINT)。

db_load实用程序成功后退出0,如果一个或多个键/数据对因键已存在而未加载到数据库中,则退出1,如果发生错误,则退出>1。

相关推荐
2401_876221342 小时前
数据库系统概论(第6版)模拟题1
数据库
cike_y2 小时前
Mybatis之分页的实现&日志工厂&Log4j详解
数据库·log4j·mybatis
mixboot2 小时前
navicat配置HTTP 远程连接SQLite数据库
数据库·sqlite
瀚高PG实验室2 小时前
Tomcat 后台日志不断刷新应用系统重新连接HGDB的警告信息
数据库·瀚高数据库
byzh_rc2 小时前
[算法设计与分析-从入门到入土] 查找&合并&排序&复杂度&平摊分析
数据结构·数据库·人工智能·算法·机器学习·支持向量机·排序算法
悄悄敲敲敲10 小时前
MySQL表的约束
数据库·mysql
鼠爷ねずみ10 小时前
SpringCloud前后端整体开发流程-以及技术总结文章实时更新中
java·数据库·后端·spring·spring cloud
九皇叔叔11 小时前
MySQL 数据库 Read View 详解
数据库·mysql·mvcc·read view
Elastic 中国社区官方博客12 小时前
Elasticsearch:圣诞晚餐 BBQ - 图像识别
大数据·数据库·elasticsearch·搜索引擎·ai·全文检索