使用 xtrabackup 建立mysql slave 複製

今天是中秋節,吃完晚飯後想起來還有幾套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。

相關文章
相關標籤/搜索