您好,登录后才能下订单哦!
MySQL复制技术之主从从级联复制
主数据库:192.168.12.181 上的mysqld1
中继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;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。