雲數據庫MySQL版使用開源軟件Percona Xtrabackup對數據庫進行備份,因此您能夠使用該軟件將雲數據庫MySQL的備份文件恢復到自建數據庫中,本文將介紹詳細的操做步驟。html
關於雲數據庫MySQL版如何備份數據,請參見備份RDS數據。mysql
本地MySQL數據庫安裝在64位的Linux系統中,且與雲數據庫MySQL版的版本相同。sql
說明:因爲軟件限制,目前只支持將雲數據庫MySQL的備份文件恢復到安裝在Linux系統中的自建MySQL數據庫中。但在Linux下恢復的數據文件,能夠在Windows和Linux操做系統中正常使用。數據庫
操做系統中已安裝數據恢復工具Percona XtraBackup。MySQL 5.6及以前的版本須要安裝 Percona XtraBackup 2.3。MySQL 5.7版本須要安裝 Percona XtraBackup 2.4。能夠從Percona XtraBackup官網下載安裝,安裝指導請參見官方文檔 Percona XtraBackup 2.3、Percona XtraBackup 2.4.bash
操做系統中已安裝數據備份文件解壓工具rds_backup_extract.sh。若未安裝,請點擊下載。服務器
獲取數據備份文件下載地址,具體操做步驟以下。app
登陸RDS管理控制檯。編輯器
選擇目標實例所在地域。工具
單擊目標實例的ID,進入基本信息頁面。字體
在左側導航欄中,選擇備份恢復,進入備份恢復頁面。
選擇數據備份標籤頁。
選擇查詢的時間範圍,而後單擊查詢。
在數據備份列表中,找到要下載的數據備份,並單擊其對應的下載,以下圖所示。
在實例備份文件下載窗口,單擊複製外網地址,獲取數據備份文件外網下載地址,以下圖所示。
下載數據備份文件,具體操做步驟以下。
登陸雲服務器ECS。
執行以下命令,下載數據備份文件。
wget -c '<數據備份文件外網下載地址>' -O <自定義文件名>.tar.gz
參數說明:
-c:啓用斷點續傳模式。
-O:將下載的結果保存爲指定的文件(建議使用URL中包含的文件名)。
說明:若提示顯示100%進度,則表示文件下載完成。
將下載的數據備份恢復到本地MySQL數據庫中,具體操做步驟以下。
執行以下命令,解壓已下載的數據備份文件。
說明:本文以自定義路徑
/home/mysql/data
爲例,您能夠根據實際狀況將其替換成實際路徑。
bash rds_backup_extract.sh -f <數據備份文件名>.tar.gz -C /home/mysql/data (若是數據庫比較大 , 能夠在 screen 裏執行)
參數說明:
-f:指定要解壓的備份集文件。
-C:指定文件要解壓到的目錄。可選參數,若不指定就解壓到當前目錄。
執行以下命令,查詢解壓後生成的文件。
ls -l /home/mysql/data
命令執行成功後,系統會返回以下結果,其中藍色字體爲生成備份文件時RDS實例所包含的數據庫。
執行以下命令,恢復解壓好的備份文件。
innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data --use-memory=8G (若是數據比較大, 能夠在screen 裏執行,設置內存大小加速恢復速度)
若系統返回以下相似結果,則說明備份文件已成功恢復到本地數據庫。
爲避免版本問題,需修改backup-my.cnf參數,具體操做步驟以下。
執行以下命令,以文本方式編輯backup-my.cnf文件。
vi /home/mysql/data/backup-my.cnf
執行以下命令,註釋掉以下參數。
#innodb_fast_checksum
#innodb_page_size
#innodb_log_block_size
按Esc鍵,而後輸入:wq
進行保存並關閉編輯器。
執行以下命令,修改文件屬主,並肯定文件所屬爲MySQL用戶。
chown -R mysql:mysql /home/mysql/data
執行以下命令,啓動MySQL進程。
mysqld_safe --defaults-file=/home/mysql/data/backup-my.cnf --user=mysql --datadir=/home/mysql/data &
執行以下命令,登陸MySQL數據庫以驗證進程啓動成功。
mysql -uroot
若系統返回以下結果,進程啓動成功,則說明已成功執行參數註釋和修改文件屬主。
恢復完成後,表mysql.user中不包含在RDS實例中建立的用戶,須要新建。在新建用戶前,執行以下命令。
delete from mysql.db where user<>’root’ and char_length(user)>0;delete from mysql.tables_priv where us
實際遇到問題:
mysql 啓動不起來 , 更改了 配置文件 # 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 #rds_encrypt_data=false #innodb_encrypt_algorithm=aes_128_ecb
mysql -uroot 直接登陸不了 重置root 密碼也不行 用原先rds的高權限帳戶登陸是能夠的