千家信息网

MySQL入门--MySQL复制技术之主从从级联复制

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,MySQL复制技术之主从从级联复制主数据库:192.168.12.181 上的mysqld1中继slave:192.168.12.182上的mysqld1级联slave:192.168.12.181上
千家信息网最后更新 2025年02月01日MySQL入门--MySQL复制技术之主从从级联复制

MySQL复制技术之主从从级联复制

主数据库:192.168.12.181 上的mysqld1

中继slave192.168.12.182上的mysqld1

级联slave192.168.12.181上的mysqld4

Master数据库将数据同步到中继slave上,然后中继slave充当级联slavemaster数据库进行数据复制;在已经配置好的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,记录fileposition,以此作为级联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

(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;

0