20.2. 与复制相关的错误、原因和可能的解决方案概述
以下是与复制相关的错误和可能的解决方案的概述:
agmt= <agreement_name> (<host_name& gt; : <port>) Replica 带有与本地数据不同的生成 ID
- reason :在消息的括号中指定的使用者还没有成功初始化,或者是从不同的根供应商初始化的。
- 影响 :本地供应商不会将任何数据复制到消费者。
-
解决方案:如果在消费者初始化前发生,请忽略此消息。否则,如果消息持久,则重新初始化消费者。在多层次环境中,所有服务器只需要从根供应商直接或间接初始化一次。例如,服务器
S1初始化和S2S4,然后初始化S3,以此类推。需要注意的是,在初始化S2之前,S2不得开始初始化S3。为此,请从S1上的 Web 控制台或S1或S2的错误日志检查总更新状态。此外,S2不应初始化S1后端。
警告:重新加载副本的数据,不再与 changelog 中的数据匹配。重新创建 changelog 文件。这可能会影响使用副本的用户的复制,在这种情况下,应该重新初始化消费者。
- 原因:只有重启供应商时,才能显示此消息。表示供应商无法写入更改日志,或者没有在最后一次关闭时清除其副本更新向量(RUV)。前一种情况通常是由于磁盘空间问题而发生,后者是因为服务器崩溃或未正常关闭。
-
影响 :如果服务器的 changelog 中不再存在消费者的
maxcsn值,服务器将无法向消费者发送更改。 - 补救 :检查磁盘空间以及服务器日志目录下可能的核心文件。如果这是单一层次复制,则重新初始化消费者。否则,如果服务器稍后提示它无法找到消费者的更改序列号(CSN),请验证消费者是否可以从其他供应商接收 CSN。如果没有,请重新初始化消费者。
过长的时间偏移
- 原因:主机上的系统时钟完全不同步。
- 影响 :目录服务器使用系统时钟生成 CSN 的一部分。为了反映多个供应商之间的更改序列,供应商会根据其他供应商的远程时钟转发其本地时钟。由于调整限制为特定数量,因此超过允许限制的差异都将中止复制会话。
-
补救 :同步目录服务器主机上的系统时钟,例如通过配置
chronyd服务。
agmt= <agreement_name> (<host_name> : <port>): Warning: Unable to send endReplication extended operation (error_message)
- reason: consumer is not responding.
- 影响 :如果消费者在没有重启的情况下恢复,如果消费者没有收到来自供应商的发行版本锁定信息,则消费者中的副本会被锁定。
- Remedy :查看消费者是否可以从其任何供应商收到任何新的更改,或者启动复制监控器,并查看此消费者的所有供应商是否被认为是忙碌的。如果副本似乎被锁定,且没有供应商可以被锁定,请重启消费者。
更改日志太大
- 原因:关闭了 changelog purge,这是默认设置,或者更改日志清除功能会被打开,但有些消费者是供应商后面的方式。
补救 :默认情况下,更改日志清除会被关闭。要从命令行打开它,请输入:
# dsconf <instance_name> replication set-changelog --max-age 1d --suffix "dc=example,dc=com"1d表示 1 天。其他有效的时间单位为s(秒)、m表示分钟、h表示小时,以及w(周)。0代表关闭清除。启用 changelog purge 后,如果其年龄大于您设置的值,则每五分钟唤醒一次清除线程会删除更改,如果它已重新提供给此供应商或 hub 的所有直接消费者。
如果在达到清除阈值时显示 changelog 没有被清除,请检查所有消费者之间的复制监控器的最大时间滞后。无论清除阈值是什么,在被所有消费者重新执行前不会清除任何更改。