1、下載備份包
在rds的備份恢復中點擊下載,在彈出的窗口中復制內網下載地址(前提是目標服務器與rds內網互通,否則請復制外網地址)
在目標服務器中執行如下命令進行下載:
wget -c '復制的地址' -O mysql-bin.001150.tar.gz
-c 參數使 wget 工具在連接中斷的時候嘗試斷點續傳。
-O 參數將下載的結果保存為指定的文件(建議使用 URL 中包含的文件名)。
2、解壓備份文件
bash rds_backup_extract.sh -f /opt/project/xxxxx.tar.gz -C /home/data
rds_backup_extract.sh 可在阿里雲中下載,也可在通過http://url.cn/4BtvG4t下載。
/opt/project/xxxxx' .tar.gz 為下載的數據庫包路徑,/home/data為要解壓到的文件夾
3、安裝Percona-XtraBackup 工具
Percona-XtraBackup安裝,下載地址為:https://www.percona.com/downloads/XtraBackup/
也可以通過http://url.cn/4Btvndw進行下載
下載好rpm包后執行:rpm -ivh percona-xtrabackup-2.2.3-4982.el6.x86_64.rpm進行安裝
出現錯誤的話要安裝好依賴包
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
3、 恢復數據文件
innobackupex --defaults-file=/home/data/backup-my.cnf --apply-log /home/data
4、修改配置文件
對恢復后的backup-my.cnf配置文件進行一些修改
[mysqld]
#datadir為恢復的目錄
datadir=/home/data
innodb_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1048576000
innodb_undo_directory=.
innodb_undo_tablespaces=0
max_connections=1000
innodb_file_per_table = on
skip_name_resolve = on
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character_set_server=utf8
init_connect='SET NAMES utf8'
5、 啟動mysql服務
mysqld_safe --defaults-file=/home/data/backup-my.cnf --user=root --datadir=/home/data &
--defaults-file表示mysql初始化文件,第三步中--defaults-file設置的文件地址
--user 表示啟動mysql服務時使用的系統用戶,不是mysql數據庫用戶
--datadir表示數據庫存在的路徑,對應解壓縮的數據庫路徑
&表示以后台進程的方式運行命令
6、 初始化還原庫
一些密碼初始化和授權的操作可參考 yum安裝mysql數據庫中的4、5步
可能出現的問題:
1、初始化數據庫密碼出問題
可嘗試以下初始化操作
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
2、Column count of mysql.user is wrong
這能是當前mysql版本和需要恢復數據的mysql版本不一致導致的
解決方法:mysql_upgrade –u root –p '密碼'
總結:
此種方式阿里雲物理備份的還原方式,為整庫還原,比較麻煩且耗時。
如無特別需要,也可通過邏輯備份進行還原
下載邏輯備份文件通過解壓可得到還原的sql文件,如(platform.sql),然后執行
mysql -u root -p platformdb_back < ./platform.sql
-- platformdb_back為還原的目標數據庫
還原后如需對數據庫備份可以使用
mysqldump -u root -p platformdb_back > platform.sql