參考博客:
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連接之后查看數據是否恢復,如下圖:
這樣數據終於恢復了,哈哈
總結
這樣的數據只能在本地恢復,如果之前本地有很多的數據庫,那么不建議這樣做,要不然整個數據庫就崩了。