今天是中秋節,吃完晚飯後想起來還有幾套mysql複製沒有作完,因而打開電腦開始了工做:mysql
若是你的mysql數據庫有幾百G甚至是T級別,要作mysql複製環境,那xtrabackup確定是首先,下面是步驟供參考:sql
1.建立備份:數據庫
innobackupex --defaults-file=/etc/my.cnf -uroot -pxxxxx --slave-info /backupapp
或者:
innobackupex --defaults-file=/etc/my.cnf -uroot -pxxx /backupsocket
若是不想生成日期格式文件指定--no-timestamp:ide
innobackupex --defaults-file=/etc/my.cnf -uroot -pxxx --no-timestamp /backup日誌
使用壓縮備份:
innobackupex --defaults-file=/etc/my.cnf -uroot -pxxxx --stream=tar /tmp |gzip > /backup/full20190219.tar.gz
解壓:
tar -xizf shard120190219.tar.gzip
2.scp到遠程的機器:get
scp -r 2018-09-24_12-41-44/ root@192.168.52.100:/backupit
3.應用日誌:
# innobackupex --apply-log /backup/2018-09-24_12-41-44/
4.若是機器的空間不足能夠選擇不使用--copy-back ,而使用--move-back,並且--move-back的速度更快:
/usr/bin/innobackupex --copy-back /backup/2018-09-24_12-41-44/
也可也使用--move-back
innobackupex --defaults-file=/etc/my.cnf --move-back --rsync /backup/2018-09-24_12-41-44/
5.修改權限:
若是使用root進行恢復,則修改相應的目錄權限:
# chown mysql:mysql -R mysql
su - mysql
5.啓動數據庫:
mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
關閉數據庫:
mysqladmin -uroot --socket=/tmp/mysql.sock --port=3306 shutdown -p
6.建立slave,pos和日誌能夠從xtrabackup_info文件中找:
CHANGE MASTER TO MASTER_HOST='192.168.52.99',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='rep#48passw',MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=95998982;
7.注意事項:
若是你的mysql作了雙主複製或者是作級聯複製,不想mysql啓動的時候也啓動複製,能夠設置參數skip-slave-start = 1,這樣mysql在啓動的時候就不會自動啓動複製,等配置好複製環境後再設置
skip-slave-start = 0。