BDB简介

几个工具的简介

    * db_archive 用来确定归档文件的工具,在数据文件目录下运行

  db_archive -s 用来确定哪些是数据库文件;
        db_archive    列出不再需要的日志文件名;
        db_archive -l 列出所有日志文件名

    * db_checkpoint 用来手工checkpoint的工具,在数据文件目录下运行
 
      db_checkpoint –1 执行一次checkpoint的操作。

    * db_recover 用于恢复数据库

      db_recover    用正常恢复方法恢复数据库;
      db_recover -c 用于热恢复用的;
      db_reover  -t 可以把数据库恢复到指定时间的状态

数据库和日志的归档
  标准备份:要求是在备份的时候停止对数据库的写操作。
  1. 停止对数据库的写
  2. 执行一次checkpoint在数据库文件的目录下
  3. 执行db_archive –s标识出数据库文件,把它们拷到要备份的目录下
  4. 在日志目录下执行db_archive,列出的是不活动的日志文件
  5. 再用db_archive –l列出所有的日志文件,由些来判断哪个是活动日志文件。一般是日志文件编号最大的一个。把这个日志文件拷到备份的目录下。
  6. 这种备份不需要recover,直接就能用。
        热备份:这种备份方法,可以在任何时候用
  1. 在数据库文件的目录下,执行db_archive –s标识出数据库文件,把它们都拷到备份目录下。
  2. 在日志目录下,执行db_archive –l标识出所有的日志文件。把它们拷到备份目录下。
  3. 在备份目录执行db_archive列出不再需要的日志文件的列表,可以不把这些日志文件拷到备份目录下。
数据恢复
  1. 正常恢复:当数据库文件和日志文件都没有被损坏时,执行db_recover,不要带参数。当采用热备份的方法所做的备份,必须要用热恢复的方法来恢复
  2. 热恢复:当数据库文件或者日志文件损坏时,在热备份的备份目录下,执行db_recover -c 来恢复数据。
在OpenLDAP配置文件slapd.conf中设置一些提高安全和效率的选项:
  cachesize 5000
  checkpoint 1024 5
  
  • cachesize是ldap在内存中缓存的记录条数。这个缓存是openldap自己维护的,与bdb库无关。为了提高效率,bdb在修改数据库时,是先修改内存,然后分批回写到数据库文件里面。Checkpoint操作就是把内存中的数据回写数据库文件的操作。
  • checkpoint 1024 5表示每写1024kb数据,或者是每隔5分钟,bdb会执行一次checkpoint的操作。
  还有一些设置bdb环境的选项设置,这些选项存在于DB_CONFIG。这个文件放在openldap-data/下
  • set_cachesize是bdb库自己的cache,这个选项用来设置cache的大小。set_cachesize一旦设定,就不能更改,除非你再用db_recover重建库。这个选项的格式:
       set_cachesize
    : cache 的 GB 大小
    : cache 的 Bytes
    : cache 段的数目, 如果配置为 0 or 1, 那么是一段连续的 cache. 
  • set_lg_dir 设置操作日志存放的目录。
  • set_lg_bsize 设置操作日志的缓存
  • set_lg_max 设置操作日志文件大小
  • set_flags 配置数据库启动参数, 可以配置多个选项标志,比如:DB_TXN_NOSYNC 告诉数据库不要立即刷新事务缓冲。设置该值可以提高数据库写性能, 但伴随的是数据丢失的风险(无法通过操作日志恢复)。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/5359/viewspace-621940/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/5359/viewspace-621940/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`AttributeError: module 'bdb' has no attribute 'Bdb'` 是Python中常见的错误类型,它表示你在尝试访问或调用 `bdb` 模块(一般用于调试工具)中的一个名为 `Bdb` 的属性或函数,但这个模块实际上并没有提供这样的属性。`bdb` 模块可能本身就没有 `Bdb` 这个类,或者你在导入模块时拼写错误,或者尝试在不支持该功能的上下文中使用。 具体解决这个问题的方法通常包括: 1. **检查拼写**:确保你正确地导入了 `bdb` 模块,并且在引用 `Bdb` 类时没有拼写错误。 ```python from bdb import Bdb # 如果`Bdb`没有被重命名或修改,应这样导入 ``` 2. **查看文档**:查阅 `bdb` 模块的官方文档或第三方库的文档,确认 `Bdb` 是否是可用的类或方法。 3. **模块版本**:确保你使用的 `bdb` 版本包含了 `Bdb` 类。如果这是标准库的一部分,确保你使用的是最新且兼容的Python版本。 4. **模块更新**:有时候可能是由于依赖库的更新导致某个类或属性不再存在,检查是否有新的替代方法。 如果你正在调试代码并遇到这个错误,通常是在尝试创建调试器实例时: ```python import bdb debugger = bdb.Bdb() # 这行会抛出错误 ``` 你可以试着将这行代码替换为相应的调试器实例创建方法,如果手册或其他资料中有说明的话。如果你是在某个特定框架或扩展库中看到这个错误,检查相关的文档和示例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值