9.7. 调优事务日志记录


每个目录服务器实例都包含一个事务日志,记录它管理的数据库更新。每当执行目录数据库操作时,如修改操作,服务器会为为该 LDAP 操作调用的所有数据库操作创建一个数据库事务。这包括更新包含条目的数据库文件中的条目记录,并更新所有属性索引。如果所有操作都成功,服务器会提交事务,将操作写入事务日志,并验证整个事务是否写入磁盘。如果其中任何操作失败,服务器会回滚事务,并且丢弃所有操作。这种完全没有的方法保证更新操作是原子的。整个操作会永久成功且不可撤销,或者失败。

目录服务器定期将事务日志的内容刷新到实际的数据库索引文件中,并检查事务日志是否需要修剪。

如果服务器遇到失败(如电源中断)并正常关闭,则事务日志仍会保存最近目录更改的信息。当服务器重启时,服务器会自动检测到错误条件,并使用数据库事务日志来恢复数据库。

虽然数据库事务日志记录,刷新数据库、修剪和数据库恢复是不需要干预的自动进程,但建议调优一些数据库事务日志属性以优化性能。

9.7.1. 使用命令行更改数据库检查点间隔

定期,Directory 服务器会将登录事务的事务写入数据库文件,并在数据库事务日志中记录检查点条目。通过指示哪些更改已写入数据库,检查点条目指示从事务日志开始恢复的位置,从而加快恢复过程。

默认情况下,Directory 服务器每 60 秒向数据库事务日志发送检查点条目。增加检查点间隔可提高目录写入操作的性能。但是,它还可以增加在分散关闭后恢复目录数据库所需的时间,并因为大型数据库事务日志文件需要更多磁盘空间。

流程

  • 将检查点间隔更改为 120 秒:

    # dsconf <instance_name> backend config set --checkpoint-interval=120
    Copy to Clipboard Toggle word wrap

9.7.2. 使用 Web 控制台更改数据库检查点间隔

定期,Directory 服务器会将登录事务的事务写入数据库文件,并在数据库事务日志中记录检查点条目。通过指示哪些更改已写入数据库,检查点条目指示从事务日志开始恢复的位置,从而加快恢复过程。

默认情况下,Directory 服务器每 60 秒向数据库事务日志发送检查点条目。增加检查点间隔可提高目录写入操作的性能。但是,它还可以增加在分散关闭后恢复目录数据库所需的时间,并因为大型数据库事务日志文件需要更多磁盘空间。

先决条件

  • 在 web 控制台中登录到实例。

流程

  1. 导航到 Database Global Database Configuration
  2. 单击 Show Advanced Settings
  3. 更新 Database Checkpoint Interval 字段中的值。
  4. 单击 Save Configuration

9.7.3. 禁用持久化事务

持久化事务日志记录意味着每个 LDAP 更新操作(由事务中的一系列数据库操作组成)都物理写入磁盘。尽管每个 LDAP 操作可由多个数据库更新组成,但每个 LDAP 操作都被视为单个数据库事务。每个 LDAP 操作都是原子和持久化的。

警告

关闭持久事务可提高目录服务器的写入性能,以防出现数据丢失的风险。

当您禁用持久事务日志时,目录服务器会将每个目录数据库操作写入数据库事务日志文件,但可能无法立即写入磁盘。如果目录更改被写入逻辑数据库事务日志文件,但没有在系统崩溃时物理写入磁盘,则无法恢复更改。当禁用持久化事务时,恢复的数据库一致,但不反映在系统崩溃前完成的任何 LDAP 写入操作的结果。

请注意,如果目录服务器正在运行,您无法更改 nsslapd-db-durable-transaction 参数。

流程

  1. 停止实例:

    # dsctl <instance_name> stop
    Copy to Clipboard Toggle word wrap
  2. 编辑 /etc/dirsrv/slapd- &lt;instance_name> /dse.ldif 文件,并将 cn=config,cn=ldbm database,cn=plugins,cn=config 条目中的 nsslapd-db-durable-transaction 参数设置为 off

    dn: cn=config,cn=ldbm database,cn=plugins,cn=config
    ...
    nsslapd-db-durable-transaction: off
    ...
    Copy to Clipboard Toggle word wrap
  3. 启动实例:

    # dsctl <instance_name> start
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat