记录一次mysql的级联复制架构的搭建
公司原先架构为mysql主-从(三台从库,做的pxc集群),由于mysql主从延迟过大,可能是由于执行了大事务,主从延迟一直降不下来,故需更换架构
做成A->B->(C-D)的mysql级联复制集群
1:安装mysql
在三台从库上安装重新安装mysql,原先的pxc集群可以不动,直接安装就可以
用的是5.7.28版本的rpm包安装的d
[root@c6-yz-crm-paas03 mysql_rpm]# ll 总用量 1190544 -rw------- 1 root root 609556480 5月 8 14:45 mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -rw------- 1 root root 45109364 5月 8 14:45 mysql-community-client-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 318768 5月 8 14:45 mysql-community-common-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 7037096 5月 8 14:45 mysql-community-devel-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 49329100 5月 8 14:45 mysql-community-embedded-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 23354908 5月 8 14:45 mysql-community-embedded-compat-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 136837816 5月 8 14:45 mysql-community-embedded-devel-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 4374364 5月 8 14:45 mysql-community-libs-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 1353312 5月 8 14:45 mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 208694824 5月 8 14:46 mysql-community-server-5.7.28-1.el7.x86_64.rpm -rw------- 1 root root 133129992 5月 8 14:45 mysql-community-test-5.7.28-1.el7.x86_64.rpm
我们依然只需要其中四个:
mysql-community-libs-5.7.28-1.el7.x86_64.rpm
mysql-community-common-5.7.28-1.el7.x86_64.rpm
mysql-community-client-5.7.28-1.el7.x86_64.rpm
mysql-community-server-5.7.28-1.el7.x86_64.rpm
使用命令rpm -ivh 进行安装就可以了
注意:本次是原先安装pxc集群的基础上安装的mysql,所以不存在一些依赖问题
启动服务
[root@c6-yz-crm-paas03 ~]# systemctl start mysqld
查找密码登陆mysql。并修改密码
[root@c6-yz-crm-paas03 ~]# cat /var/log/mysqld.log |grep root@ 2021-05-08T07:09:39.292424Z 1 [Note] A temporary password is generated for root@localhost: _5oW!:oDe,P=
登陆输入密码
[root@c6-yz-crm-paas03 ~]# mysql -u root -p
Enter password:
登陆成功以后先修改密码策略
mysql> set global validate_password_policy=low;
修改密码
mysql> alter user root@localhost identified by '单引号里写密码'
重新启动服务就可以了
2:做B--(C,D)主从
mysql主从这块就不多介绍了,安装完mysql,执行主从语句就可以了
3:做A-B主从
因为在做之前已经已经记录号的主库A的binlog日志名称和对应位数,所定义对于从库B来说,恢复完数据直接同步主库A,指定binlog日志名称和对应位数即可
因为数据库B即是从库,同时也是主库,这时候需要注意需要在配置文件中添加如下参数
#### 把relay log中的记录写入binlog日志 log_slave_updates=1
mysql的官网说明如下:
通常,从服务器不会将从主服务器收到的任何更新记录到其自己的二进制日志中。此选项告诉从服务器将其SQL线程执行的更新记录到其自己的二进制日志中。为了使此选项生效,还必须使用--log-bin选项启动从属服务器以启用二进制日志记录。在MySQL 5.5之前,如果不使用--log-bin选项启动服务器,则在使用--log-slave-updates选项时,服务器将无法启动,并且会因错误而失败。在MySQL 5.5中,仅生成警告。(缺陷号44663)当您要链接复制服务器时,使用--log-slave-updates。例如,您可能想要使用以下安排来设置复制服务器:A-> B-> C 在此,A充当从属B的主机,而B充当从属C的主机。为此,B必须既是主机又是从属。您必须使用--log-bin来启动A和B,才能启用二进制日志记录,并且必须使用--log-slave-updates选项来启动B,以便B将从A接收到的更新记录到其二进制日志中。

浙公网安备 33010602011771号