我有 4 个服务器,服务器 A、B、C、D。
服务器 A 发布一个复制实例,服务器 B、C、D 对其进行请求订阅。
服务器 B 的订阅需要重新初始化,但我担心重新初始化它(使用“当前快照”,而不是生成新快照)会影响到其他服务器的复制性能。
我应该担心,还是因为服务器 B、C 和 D 有拉(而不是推)订阅,我是不是想多了?
我有 4 个服务器,服务器 A、B、C、D。
服务器 A 发布一个复制实例,服务器 B、C、D 对其进行请求订阅。
服务器 B 的订阅需要重新初始化,但我担心重新初始化它(使用“当前快照”,而不是生成新快照)会影响到其他服务器的复制性能。
我应该担心,还是因为服务器 B、C 和 D 有拉(而不是推)订阅,我是不是想多了?
这实际上取决于快照的年龄。应用快照后,代理还需要发送自拍摄快照以来发生的所有更改。根据发生了多少变化,这可能会也可能不会影响其他现有订阅者。
如果可能的话,我倾向于在重新初始化订阅者之前拍一张新快照,尽管有时这不是一种选择。
我不会太担心它会影响其他订阅者。
使用当前快照或新快照重新初始化订阅者不会影响/影响其他订阅者。是的,你想多了。
重要的是,您需要考虑自上次生成快照代理以来添加/更新/删除的数据(行)量,并相应地决定是生成新快照还是使用现有快照,以便数据可以返回最早在订户处。
例如:如果上一个快照是在 12 天前生成的,并且自上一个快照生成以来更改了超过 300,000 行。如果您使用当前快照并且传输速率为每秒 2 行,则数据将需要大约 48 小时才能完全同步到重新初始化的订阅者,因此这与其他订阅者无关。
另一方面,如果您生成一个新的快照并重新初始化新的订阅数据库,这将非常快并且只需要花费时间来创建对象/文章脚本、复制对象和批量复制数据。