RDS的xb文件恢復到本地mysql5.6版本數據庫


參考博客:

https://blog.csdn.net/pengjunlee/article/details/81212250     CentOS7下使用YUM安裝MySQL5.6

https://blog.csdn.net/a18838964650/article/details/82800621  安裝qpress軟件

https://www.cnblogs.com/pangchunyu/p/11422830.html  文章介紹補充

https://help.aliyun.com/knowledge_detail/41817.html?spm=a2c4g.11186631.2.1.434247acfAIAwYhttps://home.firefoxchina.cn  阿里雲rds的xb文件恢復到本地數據庫

 https://blog.csdn.net/anonymking/article/details/79589623  解決MySQL 恢復數據庫表時提示 table “xxx” doesn`t exist

安裝qpress的軟件

鏈接:https://pan.baidu.com/s/1njNRz3qSc0pYYSjbEzSI_Q      提取碼:1nxe

yum -y localinstall  percona-xtrabackup-2.3.5-1.el7.x86_64.rpm
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm


[root@iZwz9hn15mpmruiq1jq28rZ data]# vim /etc/yum.repos.d/percona-release.repo
[percona-release-$basearch]
name = Percona-Release YUM repository - $basearch
baseurl = http://repo.percona.com/release/$releasever/RPMS/$basearch
enabled = 1
gpgcheck = 0   這里寫成不檢查
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-Percona



[root@iZwz9hn15mpmruiq1jq28rZ data]# yum -y install qpress-11-1.el7.x86_64

創建數據恢復目錄並恢復數據

解包:
cat hins9028927_data_20190927033738_qp.xb |xbstream -x -v -C /data/mysql/data/
解壓:
innobackupex --decompress --remove-original /data/mysql/data/

執行如下命令,查詢解壓后生成的文件
ll /data/mysql/data/

執行如下命令,恢復解壓好的備份文
innobackupex --defaults-file=/data/mysql/data/backup-my.cnf --apply-log /data/mysql/data/

查看本地數據庫的數據目錄位置:

 自建數據庫不支持如下參數,需要注釋掉

[root@iZwz9hn15mpmruiq1jq28rZ mysql]# vim /data/mysql/data/backup-my.cnf

# This MySQL options file was generated by innobackupex.

# The MySQL server
[mysqld]
#innodb_checksum_algorithm=innodb
#innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1572864000
innodb_fast_checksum=false
innodb_page_size=16384
#innodb_log_block_size=512
innodb_undo_directory=.
innodb_undo_tablespaces=0
skip-grant-tables

rds_encrypt_data=false
innodb_encrypt_algorithm=aes_128_ecb

 授權數據目錄

chown -R mysql:mysql /data/mysql/data/
重啟數據庫
systemctl restart mysqld

注意

一、數據備份:
1、完整備份:把 datadir 對應的 datadir 直接拷貝就可以
2、部分備份:data 文件夾下的文件夾都表示一個表,可以單獨備份
二、部分備份出現問題:
1、類型是 MyISAM 的表對應數據文件是 "xxx.frm"、"xxx.MYD"、"xxx.MYI",這種情況下直接拷貝沒有問題。
2.1、類型是 InooDB 的表對應數據文件是 "xxx.frm",而這種情況下直接拷貝就出現問題了 -- “table “xxx” doesn`t exist”。
2.2、解決辦法:  InnoDB 數據庫表拷貝是注意要把data文件夾下的 ibdata1 也同時拷貝過去  若還是出現問題的話就把新的data文件夾下的 ib_logfile* 文件刪除掉,或者說帶着 ib_logfile* 
文件也一起拷貝  最后記得啟動MySQL服務就可以了

 有時候需要知道默認的5.6版本用的是MyIsam引擎,而rds5.6使用的默認是innodb引擎,所以需要在配置文件中注明,需要和rds保持一致!!!

把需要的庫直接復制過去到原來的mysql目錄,即/var/lib/mysql下面,此時查看下db目錄數據是否恢復,如果是顯示 “table “xxx” doesn`t exist”,就是用上面注意里的方法解決即可。

cd /var/lib/mysql
mv ibdata1 /haha/
mv ib_logfile* /haha/

cd /data/mysql/data
mv db/ /var/lib/mysql
重啟數據庫
systemctl restart mysqld

 此時是用navicat連接之后查看數據是否恢復,如下圖:

 

 這樣數據終於恢復了,哈哈

 總結

這樣的數據只能在本地恢復,如果之前本地有很多的數據庫,那么不建議這樣做,要不然整個數據庫就崩了。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM