若是數據庫的數據量很大,表大小有幾十個G,利用mysqldump導出備份會消耗很是長的時間,會對數據庫產生不穩定風險,這時能夠利用xtrabackup工具在線複製主庫文件,利用複製出來的主庫文件能夠修復從庫故障或新增從庫實例mysql
主庫IP:192.168.1.1
從庫IP:192.168.1.2sql
主庫和從庫服務器都須要安裝如下環境
安裝必須的依賴環境
yum install libssl.so.6 -y
ln -sf /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.6
ln -sf /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.6數據庫
使用rpm包安裝須要安裝較多的依賴包,若是是在線上的生產系統操做,會對業務產生風險,所以咱們使用源碼包操做
下載源碼包
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.5/binary/tarball/percona-xtrabackup-2.4.5-Linux-x86_64.tar.gz
tar xvf percona-xtrabackup-2.4.5-Linux-x86_64.tar.gz
mv percona-xtrabackup-2.4.5-Linux-x86_64 /usr/local/xtrabackup服務器
1、如下命令在主庫服務器上操做
1.複製主庫
/usr/local/xtrabackup/bin/innobackupex --host=127.0.0.1 --user=root --password=123456 --port=3306 --slave-info --no-timestamp /data/backup/
複製的文件會存儲在/data/backup/目錄下app
2.同步複製文件到從庫服務器
scp -r /data/backup/ 192.168.1.2:/data/backup/工具
2、如下命令在從庫服務器上操做
1.清空舊的同步信息
mysql -h192.168.1.2 -uroot -p123456
mysql> stop slave;
mysql> reset slave;spa
2.刪掉mysql原來的datadir目錄
/etc/init.d/mysql stop
cd /data/mysql
mv data data_bak線程
3.恢復主庫複製的備份
cd /data/backup/
/usr/local/xtrabackup/bin/innobackupex --apply-log ./
/usr/local/xtrabackup/bin/innobackupex --copy-back ./日誌
4.開啓mysql服務
chown -R mysql.mysql /data/mysql/data
/etc/init.d/mysql startssl
5.查看主庫複製時的日誌點
cat xtrabackup_binlog_info
mysql-bin.000015 59245449
6.建立新的同步信息,從複製時的日誌點開始同步
mysql -h192.168.1.2 -uroot -p123456
mysql> change master to master_host='192.168.1.1',
master_user='root',
master_password='123456',
master_log_file='mysql-bin.000015',
master_log_pos=59245449;
mysql> start slave;
mysql> show slave status\G;
若是看到IO和SQL線程均爲YES,說明主從配置成功