本文實(shí)例為大家分享了xtrabackup備份還原的具體代碼,供大家參考,具體內(nèi)容如下
使用rpm包安裝xtrabackup
## 安裝依賴包 yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL rsync ## 安裝libev4包 rpm -ivh libev4-4.15-7.1.x86_64.rpm ## 安裝percona-xtrabackup rpm -ivh percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm
為備份操作創(chuàng)建MySQL賬戶。
## xtrabackup備份創(chuàng)建備份用戶 CREATE USER 'backuper'@'localhost' IDENTIFIED BY 'backup@123'; GRANT SELECT, RELOAD, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT ON *.* TO 'backuper'@'localhost'; FLUSH PRIVILEGES;
創(chuàng)建備份文件目錄
mkdir /export/mysql_backup
對(duì)數(shù)據(jù)庫(kù)進(jìn)行完整備份,如果在從庫(kù)上進(jìn)行備份,請(qǐng)?zhí)砑?-slave_info –safe-slave-backup參數(shù)來(lái)獲取復(fù)制主庫(kù)的binlog信息。默認(rèn)備份會(huì)將當(dāng)前庫(kù)的binlog信息保存到xtrabackup_binlog_info文件中,而--slave_info參數(shù)將復(fù)制主庫(kù)的binlog信息保存到xtrabackup_slave_info中,如果使用備份來(lái)添加復(fù)制,請(qǐng)注意選取正確的binlog信息。
## 進(jìn)行完整備份并壓縮 innobackupex --defaults-file="/export/servers/mysql/etc/my.cnf" \ --host="localhost" \ --port=3358 \ --user="backuper" \ --password="backup@123" \ --socket="/export/data/mysql/tmp/mysql.sock" \ --stream=tar \ "/export/mysql_backup/" | gzip -> "/export/mysql_backup/mysql_full_backup.tar.gz"
注意檢查命令是否成功執(zhí)行,使用tar備份能有效降低備份文件的大小,但是壓縮和加壓縮都會(huì)嚴(yán)重消耗cpu資源。
假設(shè)進(jìn)行完上面操作,將備份文件拷貝到新的服務(wù)器上,同樣放到/export/mysql_backup/下
解壓備份文件
## 切換到備份壓縮文件所在目錄 ## 強(qiáng)烈建議創(chuàng)建一個(gè)空的目錄來(lái)存放備份文件,以避免解壓后的文件與其他文件沖突 cd /export/mysql_backup/ ##加壓備份 tar xvf mysql_full_backup.tar.gz
使用xtrabackup備份得到的數(shù)據(jù)是備份結(jié)束時(shí)間點(diǎn)的數(shù)據(jù),備份期間所產(chǎn)生的事務(wù)日志被保存到備份文件xtrabackup_logfile中,因此需要先對(duì)備份文件進(jìn)行日志重做和回滾未提交事務(wù)。--apply-log還會(huì)根據(jù)backup-my.cnf來(lái)生成新的事務(wù)日志文件。
#使用apply-log參數(shù)來(lái)處理事務(wù)日志 innobackupex --apply-log /export/mysql_backup/
由于在還原時(shí)要求目標(biāo)目錄為空,而即使新安裝的MySQL服務(wù)器也會(huì)存在一些如系統(tǒng)數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,因此在將備份還原到MySQL之前,需要將當(dāng)前MySQL數(shù)據(jù)目錄下的文件進(jìn)行情況,為保險(xiǎn)期間,建議先使用mv命令來(lái)改名。
#備份當(dāng)前MySQL的數(shù)據(jù)目錄 mv /export/data/mysql /export/data/mysql_bak
xtrbackup備份操作只備份數(shù)據(jù)相關(guān)的文件,并不會(huì)備份如錯(cuò)誤日志/慢日志等文件或目錄,而上一步操作mv可能移除掉部分文件目錄,因此需要手動(dòng)再創(chuàng)建一遍。
## 創(chuàng)建MySQL數(shù)據(jù)目錄 mkdir -p /export/data/mysql/tmp /export/data/mysql/data /export/data/mysql/dumps /export/data/mysql/log
使用move-back參數(shù)來(lái)將數(shù)據(jù)移動(dòng)到MySQL數(shù)據(jù)目錄下,同樣也可以使用--copy-back參數(shù)來(lái)只拷貝而不復(fù)制。
innobackupex --defaults-file="/export/servers/mysql/etc/my.cnf" --move-back /export/mysql_backup/
數(shù)據(jù)復(fù)制到MySQL數(shù)據(jù)目錄后,需要修改這些數(shù)據(jù)文件的所有者,保證MySQL服務(wù)有權(quán)限操縱。
#修改MySQL數(shù)據(jù)目錄的權(quán)限 chown -R mysql:mysql /export/data/mysql
最終啟動(dòng)MySQL服務(wù),檢查數(shù)據(jù)是否正常
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
標(biāo)簽:萍鄉(xiāng) AXB 雞西 酒泉 貴港 張掖 阜陽(yáng) 衡水
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL使用xtrabackup進(jìn)行備份還原操作》,本文關(guān)鍵詞 MySQL,使用,xtrabackup,進(jìn)行,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。