XtraBackup不停機不鎖表做MySQL主從複製的試驗

Kaylio發表於2019-04-03

環境:Centos6.5、MySQL5.7、XtraBackup2.4.13(經過測試、此版本適合MySQL5.7)

一、這裡是先安裝寶塔Linux5.9整合環境、之後再安裝MySQL

# yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
複製程式碼

二、安裝XtraBackup ,rpm方式安裝

# yum install perl-Time-HiRes
# yum install -y perl-DBD-MySQL
# yum install -y perl-Digest-MD5
# yum install -y rsync
# yum install -y numactl-devel 
# wget https://www.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.13/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.13-1.el6.x86_64.rpm
# rpm -ivh percona-xtrabackup-24-2.4.13-1.el6.x86_64.rpm
複製程式碼

三、配置主從資料庫

1、主庫配置my.cnf

[mysqld]
#增加server-id 和 bin-log
server-id = 198
log-bin = mysql-bin
複製程式碼

2、主庫配置授權賬號

mysql> grant replication slave on *.* to root@‘192.168.199.198’ identified by '51562e6f6d044223';
mysql> flush privileges; 
複製程式碼

3、從庫配置my.cnf

[mysqld]
增加server-id 和 bin-log
server-id = 199
slave_skip_errors=1062 #1062是指跳過一些主鍵重複的錯誤

#如果需要在從庫上做bin-log備份可以新增如下引數
log-bin = mysql-bin   
log-slave-updates = 1   
expire-logs-days=10
複製程式碼

主從資料庫都要過載配置

四、全量備份

[root@Centos]# xtrabackup --defaults-file=/etc/my.cnf --host=127.0.0.1 --user=root --password=51562e6f6d044223 --port=3306 --backup --target-dir=/www/backup/xtrabackup/

[root@Centos]# ls /www/backup/xtrabackup/
複製程式碼

xtrabackup會把資料庫datadir下的所有資料 檔案都複製過來還新增了4個xtrabackup_開頭的檔案,xtrabackup_binlog_info這個錄了做從庫需要change到主庫的binlog的位置和pos點

五、恢復資料到從庫

1、停止從庫 把主庫備份檔案拷貝到從庫機器

[root@Centos]# scp -r xtrabackup/*   root@192.168.2.199:/www/server/data
複製程式碼

2、修改恢復檔案許可權

[root@Centos]# chown -R mysql:mysql /www/server/data 
複製程式碼

3、啟動從資料庫 確認資料是否恢復成功 登入從庫,執行

mysql> show databases;
複製程式碼

六、開啟主從同步

1、確認同步的位置點 在從庫上或者主庫上都可以檢視該資訊,我們是在從庫上檢視

[root@Centos]# cat /www/server/data/xtrabackup_binlog_info 
mysql-bin.000010        301846
複製程式碼

2、配置從庫 主從配置 (注意3306埠的開放) #登入從庫並執行

mysql> change master to master_host='192.168.2.198', master_user='root', master_password='51562e6f6d044223', master_port=3306, master_log_file='mysql-bin.000010' , master_log_pos=301846, master_connect_retry=30;
複製程式碼

3、開始同步

mysql> start slave;
複製程式碼

4、檢視同步狀態

mysql> show slave status;
複製程式碼

當Slave_IO_Running 與 Slave_SQL_Running 兩項都為Yes時,代表主從配置成功。

相關文章