在實際的生產環境中,為了管理方便,我們一般是通過 Xtrabackup實現實例的全庫備份,即將實例上的所有數據庫備份。
但是,考慮到快速恢復 我們常常面臨的需求是快速還原單個數據庫。針對初學者來說,網上相關的資料不是很多,以下的測試工作是我們為實現實例的全庫備份與按需單庫恢復的相關驗證。
第一部分數據庫測試環境
Step 1創建 四個用戶數據庫
Step2 四個數據庫創建相同的表,插入同樣的數據。
執行的代碼一樣
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`str` varchar(255) NOT NULL,
`state` tinyint(1) unsigned zerofill DEFAULT NULL,
`state2` tinyint(2) unsigned zerofill DEFAULT NULL,
`state3` tinyint(3) unsigned zerofill DEFAULT NULL,
`state4` tinyint(4) unsigned zerofill DEFAULT NULL,
PRIMARY KEY (`id`)
)
insert into test (str,state,state2,state3,state4) values('csdn',4,4,4,4);
step 3 顯示驗證前所有數據庫
表數據查詢顯示
第二部分 主要測試步驟和執行命令
Step 1 執行備份命令:
(innobackupex --defaults-file=/data/mysql/support-files/my_default.cnf --user=用戶 --password=密碼 /data/backup/full)
備份目錄為: /data/backup/full
Step 2 關閉數據庫並刪除數據庫文件
Step 3 將備份目錄中不需要的數據備份文件遷移出去
(本驗證案例為 數據庫testaa,testbb,testcc )
Step 4 執行恢復命令
(命令如下:innobackupex --defaults-file=/data/mysql/support-files/my_default.cnf --user=用戶 --password=密碼 --copy-back /data/backup/full/2018-04-03_09-42-58)
查詢結果OK
Step 5 賦予權限
(如果不賦予權限,報錯信息:Starting MySQL... ERROR! The server quit without updating PID file (/XXXX/XXXX/XXX/XXXX.pid). 還要留意,需要先還原,讓后再賦予權限)
Step 6 重啟mysql 服務
第三部分數據驗證
1.還原后,查詢顯示所有的數據,可以看到 數據庫testaa,testbb,testcc沒有還原。
2.查詢還原的數據庫,數據正常,和還原前無差異。
以上驗證測試說明,可以在數據庫全實例備份的基礎上實現指定數據庫的還原。