19.1.2.2 设置副本配置
每个副本都必须具有唯一的服务器ID,指定于server_id
系统变量。如果您正在设置多个副本,每个副本都必须具有与源和其他副本不同的唯一server_id
值。如果副本的服务器ID未设置或与源或其他副本的值冲突,您必须将其更改。
默认的server_id
值是1。您可以动态地更改server_id
值,例如,使用以下语句:
SET GLOBAL server_id = 21;
注意,服务器ID为0将防止副本连接到源。如果该服务器ID值(在早期版本中是默认值)已设置,您必须重新启动服务器以将新非零服务器ID初始化到副本。否则,不需要重新启动服务器,除非您还需要更改其他配置选项。例如,如果在服务器上禁用二进制日志记录,并且您想在副本上启用它,需要重新启动服务器。
如果您正在关闭副本服务器,可以编辑[mysqld]
部分的配置文件,以指定唯一的服务器ID,例如:
[mysqld]
server-id=21
二进制日志记录默认启用在所有服务器上。副本不需要启用二进制日志记录来进行复制。但是,启用二进制日志记录在副本上意味着副本的二进制日志可以用于数据备份和崩溃恢复。启用二进制日志记录的副本也可以作为更复杂的复制拓扑的一部分。例如,您可能想设置使用链式安排的副本服务器:
A -> B -> C
在这里,A
作为B
的源,并且B
作为C
的源。为了使这工作,B
必须既是源又是副本。从A
接收到的更新必须被B
记录到其二进制日志,以便将其传递给C
。此外,这种复制拓扑还需要系统变量log_replica_updates
启用。启用副本更新后,副本将将从源接收到的更新写入到其自己的二进制日志中。log_replica_updates
默认启用。
如果您需要禁用副本的二进制日志记录或副本更新日志记录,可以使用以下选项:--skip-log-bin
和--log-replica-updates=OFF
。如果您决定重新启用这些功能在副本上,删除相关选项并重新启动服务器。