配置业务端内部的容灾
在本容灾方案中,线下的生产数据中心有两台MySQL,需要配置为主备关系,以确保线下仅MySQL故障时,可直接在线下切换到备节点,因此,需要先配置业务端内部的容灾。
- 修改Master数据库配置文件。
- 打开MySQL的配置文件。
- 修改内容。
按照如下字段对配置文件中[mysqld]之下的内容进行增加或修改。
参数说明如下:
- “server-id”是业务系统与容灾系统集群中的唯一值,例如,以IP地址中的数字来作为取值进行配置。
- “log_bin=master-bin”表示生成的日志文件名为“master-bin”。
- “sync_binlog”是设置每更新多少次事务进行日志提交,“1”是每次都提交。
- “binlog-do-db”指定生成的本地日志记录所对应的数据库名。
- “replicate-do-db”指定日志异步复制到对端时,对端数据库的名称。
- “binlog_format”指定binary log的日志格式。
- “log_slave_updates”为“1”表示开启级联复制,可以使数据同步到间接连接的服务器中。
示例如下:
[mysqld] server-id=0102 log_bin=master-bin sync_binlog=1 binlog-do-db=xinhu replicate-do-db=xinhu binlog_format=mixed log_slave_updates=1
- 创建复制帐户。
- 执行下述命令并输入密码,进入MySQL。
- 创建帐号。
在Master数据库中创建一个拥有“REPLICATION SLAVE”权限,且能使Slave2数据库远程登录Master并复制数据的帐户。自行定义可以区分的帐户密码,IP地址为Slave2数据库的管理IP。
- MySQL的默认密码策略为“MEDIUM”,请根据实际需要使用相应的密码策略。
- 配置的密码需要符合密码策略要求。
创建的命令如下,其中“account”和“Password”应更换成实际规划的帐号密码。
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'account'@'10.1.1.3'IDENTIFIED BY 'Password';
- 查看Master状态。
在Master数据库中使用如下命令查看当前Master状态,并记录日志文件名,日志文件位置,供配置Slave2数据库的时候使用。
mysql> SHOW MASTER STATUS\G ************************** 1. row *************************** File: master-bin.000001 //当前master日志文件名称 Position: 154 //当前master日志文件中的位置 Binlog_Do_DB: xinhu //所要同步的数据库名 Binlog_Ignore_DB: //不同步的数据库名 Executed_Gtid_Set:
- 修改Slave2数据库配置文件。
- 打开MySQL的配置文件。
- 修改内容。
按照如下字段对配置文件中[mysqld]之下的内容进行增添或修改。
参数说明如下:
- Slave2的配置文件和master大体相同,只有“server-id”和“log-bin”不同,其他相同。
- “server-id”是业务系统与容灾系统集群中的唯一值,例如,以IP地址中的数字来作为取值进行配置。
- “log_bin=slave-bin”表示生成的日志文件名为“slave-bin”。
- “sync_binlog”设置每更新多少次事务进行日志提交,“1”是每次都提交。
- “binlog-do-db”指定生成的本地日志记录所对应的数据库名。
- “replicate-do-db”指定日志异步复制到对端时,对端数据库的名称。
- “binlog_format”指定binary log的日志格式。
- “log_slave_updates”为“1”是开启级联复制,可以使数据同步到间接连接的服务器中。
示例如下:
[mysqld] server-id=0103 log_bin=slave-bin sync_binlog=1 binlog-do-db=xinhu replicate-do-db=xinhu binlog_format=mixed log_slave_updates=1
- 在Slave2上同步Master的数据。
在Slave2数据库中使用如下命令同步Master数据库。
参数说明如下:
- “master_host”是Master的IP。
- “master_user”是2中在Master数据库中创建的同步帐户名。
- “master_password”是2中在Master数据库中创建的同步帐户名密码。
- “master_log_file”是3中查得的Master日志文件名称。
- “master_log_pos”是3中查得的Master日志文件中的位置。
mysql> change master to master_host='10.1.1.2', master_user='account', master_password='Password', master_log_file='master-bin.000001', master_log_pos=154;
- 查看Slave2信息。
- 在Slave2数据库中使用如下命令开启slave模式。
- 在Slave1数据库中使用如下命令查看当前Slave的状态信息。
slave状态中如果以下两个信息都为“yes”状态,则同步成功。
- Slave_IO_Running
- Slave_SQL_Running
到此,业务服务器的master与slave1的主备关系就配置完成。
mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.1.1.2 Master_User: account Master_Port: 3306 Connect_Retry: 60 Master_Log_File: master-bin.000032 Read_Master_Log_Pos: 154 Relay_Log_File: mysql-slave2-relay-bin.000041 Relay_Log_Pos: 321 Relay_Master_Log_File: master-bin.000032 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: xinhu