溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XtraBackup基本安裝及innobackupex使用方法,遠程備份

發(fā)布時間:2020-08-08 11:20:14 來源:ITPUB博客 閱讀:358 作者:yleizzz 欄目:MySQL數(shù)據(jù)庫
#獲得下載地址
wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.3/binary/redhat/6/x86_64/percona-xtrabackup-2.3.3-1.el6.x86_64.rpm


yum install percona-xtrabackup-2.3.3-1.el6.x86_64.rpm


#完全備份
innobackupex --user=root --password=123456  /db_bak


#恢復,已復制整個結構的方式恢復數(shù)據(jù)庫,執(zhí)行前必須stop mysql服務,否則會出現(xiàn)不可預知的錯誤
service mysqld stop
#此時恢復還是會報 /var/lib/mysql/ is not empty,需要刪掉/var/lib/mysql/目錄下所有的文件
cd /var/lib/mysql/
rm -rf /var/lib/mysql/*
#全量恢復
innobackupex --user=root --password=123456 --apply-log /db_bak/2016-01-13_14-21-24/ ---回寫日志這一步 不能少
innobackupex --user=root --password=123456 --copy-back /db_bak/2016-01-13_14-21-24/ 
#設置權限,恢復之后 發(fā)現(xiàn)權限都是root,需要修改成mysql,到了這一步全量還原算是完成了,記得重啟服務
chown -R mysql:mysql /var/lib/mysql/
service mysqld start


#增量備份


innobackupex  --user=root --password=123456 --incremental-basedir=/db_bak/2016-01-13_14-21-24  --incremental /db_bak


#增量備份恢復:
#將所有的增量備份挨個應用到完整備份的數(shù)據(jù)文件中,然后再將完整備份中的數(shù)據(jù)恢復到數(shù)據(jù)庫中
#停止mysql服務(必須)
service mysqld stop
#刪除數(shù)據(jù)文件
cd /var/lib/mysql/
rm -rf /var/lib/mysql/*
#重做全備份的日志
innobackupex --apply-log --redo-only /db_bak/2016-01-13_14-21-24/
#應用第一個增量備份
innobackupex --user=root --password=123456  --apply-log /db_bak/2016-01-13_14-21-24/ --incremental-dir=/db_bak/2016-01-14_11-47-00/ 


#日志已經寫入全備份中,重做全備份即可
innobackupex --user=root --password=123456 --apply-log /db_bak/2016-01-13_14-21-24/  ---回寫日志這一步 不能少
innobackupex --user=root --password=123456 --copy-back /db_bak/2016-01-13_14-21-24/ 
#刪除mysql日志,這一步步能少
MySQL目錄下的ib_logfile0和ib_logfile1兩個文件
cd /var/lib/mysql/
cp ib_logfile0 ib_logfile0_bak
cp ib_logfile1 ib_logfile1_bak
rm -rf ib_logfile0
rm -rf ib_logfile1
#設置權限,恢復之后 發(fā)現(xiàn)權限都是root,需要修改成mysql,到了這一步全量還原算是完成了,記得重啟服務
chown -R mysql:mysql /var/lib/mysql/
service mysqld start




#出現(xiàn)數(shù)據(jù)崩潰 或者 如copied innodb but log 不符的情況
需要設置
innodb_force_recovery=6
innodb_purge_thread=0
重啟服務,
然后 在mysqldump導出數(shù)據(jù)庫邏輯備份
在將 設置改成默認
innodb_force_recovery=0
innodb_purge_thread=1
重啟服務 還原數(shù)據(jù)庫即可,


出現(xiàn)MySQL Plugin 'InnoDB' init function returned error.
刪除MySQL目錄下的ib_logfile0和ib_logfile1兩個文件,就可以解決問題了
mysql 會重新生成這兩個日志

#遠程備份,備份到10.50.85.104,需要安裝sshpass
cd /etc/yum.repos.d

wget http://download.opensuse.org/repositories/home:Strahlex/CentOS_CentOS-6/home:Strahlex.repo

yum install sshpass

#壓縮
innobackupex --user=root --password=123456 --stream=tar ./ | gzip | sshpass -p 'WCcj1Fylr5Hc!@' ssh root@10.50.85.104 "cat - > /var/db_bak/backup.tar.gz"


#備份mysiam表
 myisam表的備份則是通過發(fā)出命令flush tables with read lock,然后拷貝myisam的相關表文件 
所以此時 只能進行讀 不能進行任何寫操作 這里指針對所有庫



向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。

AI