RDS MySQL物理備份文件恢復(fù)到自建數(shù)據(jù)庫(kù)
轉(zhuǎn)載自阿里云https://help.aliyun.com/knowledge_detail/41817.html#concept-41817-zh
開源軟件Percona Xtrabackup可以用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份恢復(fù),您可以使用該軟件將云數(shù)據(jù)庫(kù)MySQL的備份文件恢復(fù)到自建數(shù)據(jù)庫(kù)中,本文將介紹詳細(xì)的操作步驟瞄沙。
說明
- 通過邏輯備份文件恢復(fù)到自建數(shù)據(jù)庫(kù)請(qǐng)參見RDS MySQL邏輯備份文件恢復(fù)到自建數(shù)據(jù)庫(kù)柒昏。
- 關(guān)于云數(shù)據(jù)庫(kù)MySQL版如何備份數(shù)據(jù)卧抗,請(qǐng)參見備份RDS數(shù)據(jù)藏杖。
- 由于Percona Xtrabackup不支持Windows,Windows系統(tǒng)下的備份恢復(fù)請(qǐng)參見使用mysqldump遷移MySQL數(shù)據(jù)扒磁。
注意事項(xiàng)
本文使用Linux7的操作系統(tǒng)以及MySQL5.7版本為例進(jìn)行演示袱箱。
-
操作系統(tǒng)中已安裝數(shù)據(jù)恢復(fù)工具Percona XtraBackup遏乔,您可以從Percona XtraBackup官網(wǎng)下載安裝。
- MySQL 5.6及之前的版本需要安裝 Percona XtraBackup 2.3发笔,安裝指導(dǎo)請(qǐng)參見官方文檔Percona XtraBackup 2.3盟萨。
- MySQL 5.7版本需要安裝 Percona XtraBackup 2.4,安裝指導(dǎo)請(qǐng)參見官方文檔Percona XtraBackup 2.4了讨。
- MySQL 8.0版本需要安裝 Percona XtraBackup 8.0捻激,安裝指導(dǎo)請(qǐng)參見官方文檔Percona XtraBackup 8.0。
2019年2月20日后創(chuàng)建的MySQL 5.6實(shí)例前计,數(shù)據(jù)備份文件的格式為xbstream文件包(_qp.xb后綴)胞谭。
-
自建MySQL數(shù)據(jù)庫(kù)安裝在64位的Linux系統(tǒng)中,且與云數(shù)據(jù)庫(kù)MySQL版的版本相同残炮。
說明 由于軟件限制韭赘,目前只支持將云數(shù)據(jù)庫(kù)MySQL的備份文件恢復(fù)到安裝在Linux系統(tǒng)中的自建MySQL數(shù)據(jù)庫(kù)中缩滨。
前提條件
實(shí)例版本如下:
- MySQL 8.0高可用版(本地SSD盤)
- MySQL 5.7高可用版(本地SSD盤)
- MySQL 5.6
- MySQL 5.5
說明 基礎(chǔ)版實(shí)例僅提供快照備份势就,無法下載。您可以參見基礎(chǔ)版實(shí)例的備份怎么恢復(fù)或遷移脉漏。
備份恢復(fù)操作步驟
登錄RDS管理控制臺(tái)苞冯。
在頁(yè)面左上角,選擇實(shí)例所在地域侧巨。
找到目標(biāo)實(shí)例舅锄,單擊實(shí)例ID。
在左側(cè)導(dǎo)航欄中單擊備份恢復(fù)司忱。
選擇數(shù)據(jù)備份標(biāo)簽頁(yè)皇忿。
選擇查詢的時(shí)間范圍畴蹭,然后單擊查詢。
-
在數(shù)據(jù)備份列表中鳍烁,找到要下載的數(shù)據(jù)備份叨襟,并單擊其右側(cè)的下載。
說明 如果沒有下載按鈕幔荒,請(qǐng)確認(rèn)您的實(shí)例版本是否支持下載物理備份文件糊闽。
-
在實(shí)例備份文件下載窗口,單擊復(fù)制外網(wǎng)地址旁的
爹梁,獲取數(shù)據(jù)備份文件外網(wǎng)下載地址右犹。 登錄云服務(wù)器ECS。
執(zhí)行如下命令姚垃,下載數(shù)據(jù)備份文件念链。
wget -c '<數(shù)據(jù)備份文件外網(wǎng)下載地址>' -O <自定義文件名>
說明
* -c:?jiǎn)⒂脭帱c(diǎn)續(xù)傳模式。
* -O:將下載的結(jié)果保存為指定的文件(使用URL中包含的文件名后綴 .tar.gz 积糯、.xb.gz 或 _qp.xb)钓账。
- 執(zhí)行如下命令,解壓已下載的數(shù)據(jù)備份文件絮宁。
說明
本文以自定義路徑/home/mysql/data為例梆暮,您可以根據(jù)實(shí)際情況將其替換成實(shí)際路徑。
-
innobackupex解壓命令需要安裝qpress绍昂,您可以前往QuickLZ網(wǎng)站啦粹,下載qpress工具,然后使用如下命令安裝:
放大查看 復(fù)制代碼
tar xvf qpress-11-linux-x64.tar chmod 775 qpress cp qpress /usr/bin
目前物理備份集文件有3種格式:
* tar 壓縮包 (.tar.gz 后綴)
* xbstream 壓縮包 (.xb.gz 后綴)
* xbstream 文件包(_qp.xb 后綴)
說明 2019年2月20日后創(chuàng)建的MySQL 5.6實(shí)例窘游,數(shù)據(jù)備份文件的格式為xbstream文件包(_qp.xb 后綴)唠椭。
對(duì)于tar 壓縮包 (.tar.gz 后綴),使用命令:
tar -izxvf <數(shù)據(jù)備份文件名>.tar.gz -C /home/mysql/data
對(duì)于xbstream 壓縮包 (.xb.gz 后綴)忍饰,使用命令:
gzip -d -c <數(shù)據(jù)備份文件名>.xb.gz | xbstream -x -v -C /home/mysql/data
對(duì)于xbstream 文件包(_qp.xb 后綴)贪嫂,使用命令:
解包
cat <數(shù)據(jù)備份文件名>_qp.xb | xbstream -x -v -C /home/mysql/data
## MySQL 5.6/5.7解壓
innobackupex --decompress --remove-original /home/mysql/data
## MySQL 8.0解壓
xtrabackup --decompress --remove-original --target-dir=/home/mysql/data
解包報(bào)錯(cuò)解決
線上mysql數(shù)據(jù)庫(kù)通過[innobackupex ]工具恢復(fù)時(shí),如工具安裝不完成會(huì)發(fā)生各種各樣的報(bào)錯(cuò)艾蓝。這里簡(jiǎn)單說明下depress解壓缺少工具qpress解壓辦法力崇。
默認(rèn)系統(tǒng)無法yum或apt-get,可以通過下載官網(wǎng)的qpress tar包解壓使用赢织。
解決辦法做如下三步操作即可:
1. wget http://www.quicklz.com/qpress-11-linux-x64.tar
2. tar xvf qpress-11-linux-x64.tar
3. cp qpress /usr/bin
問題解決亮靴。
重新再執(zhí)行命令就可以了。
說明 -C:指定文件要解壓到的目錄于置〖氲酰可選參數(shù),若不指定就解壓到當(dāng)前目錄。
- 執(zhí)行如下命令搓侄,查詢解壓后生成的文件瞄桨。
ls -l /home/mysql/data
命令執(zhí)行成功后,系統(tǒng)會(huì)返回如下結(jié)果讶踪,其中藍(lán)色字體為生成備份文件時(shí)RDS實(shí)例所包含的數(shù)據(jù)庫(kù)讲婚。
- 執(zhí)行如下命令,恢復(fù)解壓好的備份文件俊柔。
## MySQL 5.6/5.7
innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
## MySQL 8.0
xtrabackup --prepare --target-dir=/home/mysql/data
xtrabackup --datadir=/var/lib/mysql --copy-back --target-dir=/home/mysql/data</pre>
若系統(tǒng)返回如下類似結(jié)果筹麸,則說明備份文件已成功恢復(fù)到自建數(shù)據(jù)庫(kù)。
說明 請(qǐng)確保您的Percona XtraBackup版本正確:
- MySQL 5.6及之前的版本需要安裝 Percona XtraBackup 2.3雏婶,安裝指導(dǎo)請(qǐng)參見官方文檔Percona XtraBackup 2.3物赶。
- MySQL 5.7版本需要安裝 Percona XtraBackup 2.4,安裝指導(dǎo)請(qǐng)參見官方文檔Percona XtraBackup 2.4留晚。
- MySQL 8.0版本需要安裝 Percona XtraBackup 8.0酵紫,安裝指導(dǎo)請(qǐng)參見官方文檔Percona XtraBackup 8.0。
- 為避免版本問題错维,需修改backup-my.cnf參數(shù)奖地,具體操作步驟如下。
- 執(zhí)行如下命令赋焕,以文本方式編輯backup-my.cnf文件参歹。
vi /home/mysql/data/backup-my.cnf
2. 自建數(shù)據(jù)庫(kù)不支持如下參數(shù),需要注釋掉隆判。
#innodb_log_checksum_algorithm
#innodb_fast_checksum
#innodb_log_block_size
#innodb_doublewrite_file
#rds_encrypt_data
#innodb_encrypt_algorithm
#redo_log_version
#master_key_id
#server_uuid
**說明**
- 如果自建數(shù)據(jù)庫(kù)使用的是MyISAM引擎犬庇,和阿里云的InnoDB不兼容,需要多注釋掉如下參數(shù)并增加skip-grant-tables參數(shù):
#innodb_log_checksum_algorithm=strict_crc32 #redo_log_version=1 skip-grant-tables
- 如果自建數(shù)據(jù)庫(kù)使用的是MyIAM引擎侨嘀,且對(duì)系統(tǒng)表進(jìn)行操作時(shí)報(bào)錯(cuò)(存儲(chǔ)引擎相關(guān))臭挽,請(qǐng)按如下操作進(jìn)行存儲(chǔ)引擎的轉(zhuǎn)換:
alter table <表名> engine=myisam;
3. 按**Esc**鍵,然后輸入`:wq`并回車進(jìn)行保存咬腕。
- 執(zhí)行如下命令欢峰,修改文件屬主,并確定文件所屬為MySQL用戶涨共。
chown -R mysql:mysql /home/mysql/data
- 執(zhí)行如下命令纽帖,啟動(dòng)MySQL進(jìn)程。
mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &
說明 建議您參考官方文檔重置root賬戶的密碼煞赢。
- 執(zhí)行如下命令抛计,登錄MySQL數(shù)據(jù)庫(kù)以驗(yàn)證進(jìn)程啟動(dòng)成功哄孤。
mysql -uroot -p<數(shù)據(jù)庫(kù)密碼>
若系統(tǒng)返回如下結(jié)果照筑,進(jìn)程啟動(dòng)成功,則說明已成功執(zhí)行參數(shù)注釋和修改文件屬主。
常見問題
-
除了下載備份文件恢復(fù)之外凝危,還有其他方法可以將實(shí)例的數(shù)據(jù)快速恢復(fù)到自建數(shù)據(jù)庫(kù)嗎波俄?
您可以使用DTS將RDS MySQL遷移至自建MySQL。
-
為什么下載數(shù)據(jù)備份文件會(huì)報(bào)錯(cuò)蛾默?
使用
wget -c '<數(shù)據(jù)備份文件外網(wǎng)下載地址>' -O <自定義文件名>.tar.gz
命令下載時(shí)用2個(gè)英文單引號(hào)(')將下載地址包含起來懦铺,便于程序識(shí)別具體的地址,防止出錯(cuò)支鸡。
-
下載的備份文件解壓縮報(bào)錯(cuò)怎么辦冬念?
- 確認(rèn)您下載的文件是否為物理備份文件。
- 壓縮文件保存的名稱后綴是否正確(使用URL中包含的文件名后綴 .tar.gz 牧挣、.xb.gz 或 _qp.xb)急前。
- 針對(duì)不同格式的壓縮文件,使用正確的解壓命令瀑构。詳情請(qǐng)參見本文操作步驟第11步裆针。
-
基礎(chǔ)版實(shí)例的備份怎么恢復(fù)或遷移呢?
基礎(chǔ)版實(shí)例僅支持快照備份寺晌,您可以使用以下方法:
- 使用mysqldump遷移MySQL數(shù)據(jù)
- 用DTS將數(shù)據(jù)從RDS導(dǎo)出到本地
-
下載的備份能恢復(fù)到另一個(gè)RDS MySQL實(shí)例上嗎世吨?
暫不支持此操作。建議您使用DTS遷移RDS實(shí)例數(shù)據(jù)到另一個(gè)RDS實(shí)例上呻征。