MySQL5.6主從同步(熱備份)
阿新 • • 發佈:2021-06-28
1、在master伺服器上啟用二進位制日誌
[root@master ~]# vim /etc/my.cnf [mysqld] server_id=101 log_bin=master-bin [root@master ~]# systemctl restart mysql
2、在slave伺服器配置server_id, 啟動服務
[root@slave ~]# vim /etc/my.cnf [mysqld] server_id=102 read_only=1 [root@slave ~]# systemctl restart mysql
3、在master上備份資料,在slave上恢復資料
1)在主從庫上分別安裝Xtrabackup工具
[root@master ~]# tar zxf percona-xtrabackup.tar.gz
[root@master ~]# createrepo percona-xtrabackup
配置yum源
[root@master ~]# cat /etc/yum.repos.d/percona.repo [percona] name=percona baseurl=file:///root/percona-xtrabackup gpgcheck=0 enabled=1 [root@master ~]# yum makecache [root@master~]# yum install -y percona-xtrabackup-24
2)完成資料全量備份,並拷貝到slave伺服器上
[root@host-192-168-27-10 ~]# innobackupex --user=root --password=123 -S /tmp/mysql.sock ./backup/
[root@host-192-168-27-10 ~]# scp -r backup/ 192.168.27.67:/opt/mysql/mysql/
3)在slave恢復資料
注:恢復資料之前一定要先停止從庫mysql,備份之前的資料目錄
[root@slave mysql]# systemctl stop mysql [root@slave~]# cd /opt/mysql/mysql/ [root@slave mysql]# mv data/ data_back [root@slave mysql]# mkdir data [root@slave ~]# innobackupex --apply-log ./backup/2021-05-25_14-19-07/
[root@slave ~]# innobackupex --defaults-file=/etc/my.cnf --copy-back ./backup/2021-05-25_14-19-07/
4)修改slave資料目錄所屬許可權,重啟mysql
[root@slave mysql]# chown -R mysql.mysql data
[root@slave mysql]# systemctl start mysql
4、在master伺服器上建立一個具有複製許可權的遠端使用者
mysql> grant replication slave on *.* to 'sync'@'192.168.27.67' identified by '123'; mysql> flush privileges;
5、在slave上連線主伺服器
1)停止slave
mysql> stop slave;
2)連線master
mysql> change master to master_host='192.168.27.10', > master_user='sync', > master_password='123', > master_log_file='mysql-bin.000989', > master_log_pos=526293268;
3)啟動複製執行緒
mysql> start slave;
4) 檢視從伺服器上執行緒的狀態
mysql> show slave status\G;
驗證主從複製成功
停止從伺服器,在主服務上進行修改操作,再次啟動從伺服器,從伺服器會自動繼續複製資料
因為從伺服器啟動後,預設會在其資料目錄下,生成一個master.info,該檔案中會自動記錄主伺服器的連線資訊