1. 程式人生 > >通過Xtrabackup實現MySQL實例的全庫備份與按需單庫恢復

通過Xtrabackup實現MySQL實例的全庫備份與按需單庫恢復

第二部分 arch tin pri var ins img 備份文件 數據庫的還原

在實際的生產環境中,為了管理方便,我們一般是通過 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.查詢還原的數據庫,數據正常,和還原前無差異。

技術分享圖片

以上驗證測試說明,可以在數據庫全實例備份的基礎上實現指定數據庫的還原。

通過Xtrabackup實現MySQL實例的全庫備份與按需單庫恢復