MySQL复制技术之主从从级联复制
中继slave:192.168.12.182上的MysqLd1
级联slave:192.168.12.181上的MysqLd4
Master数据库将数据同步到中继slave上,然后中继slave充当级联slave的master数据库进行数据复制;在已经配置好的master-slave结构下,master配置不用改变,只需要对中继slave和级联slave进行配置;实现步骤如下:
(1) 中继slave配置
A. 配置my.cnf
#/etc/my.cnf
log_slave_updates=1
log_bin=/data/MysqL/log/vm2-bin.log #以上两个是关键参数,必须配置的;
read_only=ON #非必须
配置好后,重启MysqLd;
B. 查询master status
在中继slave上,查询master status,记录file和position,以此作为级联slave的同步起点;
[MysqL]> show master status;
+----------------+----------+--------------+------------------+-------------------+
| File | Position | binlog_Do_DB | binlog_Ignore_DB | Executed_Gtid_Set |
+----------------+----------+--------------+------------------+-------------------+
| vm2-bin.000009 | 450 | | | |
+----------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
C. 备份中继slave
备份中继slave,作为级联slave的还原数据源;
[root@vm2 ~]# MysqLdump -uroot -p --all-databases >slave_bak.sql
[root@vm2 ~]# scp slave_bak.sql vm1:/data/ #传到级联slave上
(2) 准备级联slave
A. 级联slave的配置
#/etc/my.cnf
[MysqLd4]
port=3309
basedir=/usr
datadir=/data/MysqL/data4
socket=/var/lib/MysqL/MysqL4.sock
pid-file=/var/run/MysqLd/MysqLd4.pid
log-error=/data/MysqL/log4/MysqLd4.log
user=MysqL
relay-log=/data/MysqL/log4/vm4-slave-bin.log
server_id=4
slave-skip-errors=all
启动MysqLd4,通过MysqLd_multi命令,启动时会初始化数据库;
#MysqLd_multi start 4
B. 恢复中继数据库的备份
[root@vm1 data]# MysqL -uroot -p -S /var/lib/MysqL/MysqL4.sock <slave_bak.sql
(3) 连接master(中继slave)
在级联slave上面执行建立连接的语句:
change master to
master_host = '192.168.12.182',
master_port = 3306,
master_user = 'repuser',
master_password = 'aa12AA,.',
master_log_file ='vm2-bin.000009',
master_log_pos = 450;
-- 启动复制
start slave ;
-- 查看复制的状态
show slave status\G;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。