mysql 备份工具xtrabackup全备与还原图解
? ? ? ? ? ? ? ? ? ? ? ? ? ?
目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?xtrabackup備份還原圖解
聲明
準(zhǔn)備
驗(yàn)證思路
用戶賦權(quán)
備份前狀態(tài)
全備
還原
還原前
還原中
還原后
問題數(shù)據(jù)目錄不為空
? ? ? ? ? ? ? ? ? ? ? ? ? ?xtrabackup備份還原圖解
聲明
本文的數(shù)據(jù)來自網(wǎng)絡(luò),部分代碼也有所參照,這里做了注釋和延伸,旨在技術(shù)交流,如有冒犯之處請聯(lián)系博主及時(shí)處理。
XtraBackup是Percona?提供的免費(fèi)、在線、開源、完整的數(shù)據(jù)庫備份解決方案,適用于所有版本的Percona Server for MySQL和MySQL。Percona XtraBackup在事務(wù)系統(tǒng)上執(zhí)行在線非阻塞、緊致壓縮、高度安全的完整備份。
注: 當(dāng)前驗(yàn)證環(huán)境CentOS 8 X86 64、mysql 8.0.23、XtraBackup 8.0.23-16
準(zhǔn)備
驗(yàn)證思路
1 對當(dāng)前數(shù)據(jù)庫進(jìn)行全備
2 全備后往某個(gè)表插入一條記錄并提交事物
3 以全備還原,查驗(yàn)數(shù)據(jù)庫是否還原到插入數(shù)據(jù)前的狀態(tài)
用戶賦權(quán)
-- 創(chuàng)建用戶并備份相關(guān)賦權(quán) create user 'mysqlbak'@'localhost' identified by 'root@1234T5'; GRANT SELECT, BACKUP_ADMIN, RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.*TO `mysqlbak`@`localhost`; GRANT CREATE, INSERT, DROP, UPDATE ON mysql.backup_progress TO 'mysqlbak'@'localhost'; GRANT CREATE, INSERT, DROP, UPDATE, SELECT, ALTER ON mysql.backup_history TO 'mysqlbak'@'localhost';備份前狀態(tài)
-- 創(chuàng)建初始化示例表并查看當(dāng)前備份前數(shù)據(jù)情況 CREATE TABLE `test_04251019` (`id` int DEFAULT NULL,`name` varchar(10) DEFAULT NULL,`addr` varchar(12) DEFAULT NULL,`memo` varchar(40) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `test_04251019` VALUES ('1', 'hanmeimie', 'Guangzhou', 'Fullbakup'); INSERT INTO `test_04251019` VALUES ('2', 'lilei', 'Guangzhou', 'in increament'); INSERT INTO `test_04251019` VALUES ('4', 'Tom', 'Shanghai', 'no more'); INSERT INTO `test_04251019` VALUES ('5', 'John', 'Shanghai', 'no more_5'); INSERT INTO `test_04251019` VALUES ('5', 'Jim', 'Shanghai2', 'no more_5_2'); COMMIT; select * from test_04251019;全備
#以mysqlbak用戶將當(dāng)前數(shù)據(jù)庫備份到指定目錄下。 xtrabackup --user=mysqlbak --password='root@1234T5' --backup --target-dir=/root/workspace/mysqlbackup/XtraBack_base/還原
還原前
-- Step 1 :插入新數(shù)據(jù)對比 -- 還原前先在trial數(shù)據(jù)庫里往test_04251019表里插入一條記錄、來與還原前的數(shù)據(jù)庫進(jìn)行對比。具體腳本見下: INSERT INTO test_04251019 VALUES(6,'doris','Hefei','After XtraBack'); COMMIT; SELECT * FROM test_04251019; #Step 2 :關(guān)閉數(shù)據(jù)庫 mysqladmin -uroot -p'root1234' shutdown#Step 3 :備份數(shù)據(jù)文件 mv /data/mysql /data/mysql_0429還原中
#Step 1 :預(yù)恢復(fù)數(shù)據(jù)庫 xtrabackup --prepare --target-dir=/root/workspace/mysqlbackup/XtraBack_base/ #Step 2: 創(chuàng)建數(shù)據(jù)目錄 mkdir -p /data/mysql#Step 3: 還原數(shù)據(jù)庫 xtrabackup --copy-back --target-dir=/root/workspace/mysqlbackup/XtraBack_base/注: 1 這里數(shù)據(jù)目錄/data/mysql需事先為空。
? ? ? ? 2 通過show variables查看數(shù)據(jù)目錄的命令
-- 查看數(shù)據(jù)目錄的位置 SHOW VARIABLES LIKE 'datadir'; #Step 4 賦權(quán)數(shù)據(jù)文件mysql用戶能訪問。 chown -R mysql:mysql /data/mysql #注:如果這里不賦權(quán),后續(xù)mysq數(shù)據(jù)庫重啟時(shí)會(huì)報(bào)錯(cuò)。還原后
#Step 1 重啟mysql數(shù)據(jù)庫服務(wù) service mysqld start#Step 2 還原前后對比 還原前還原后
?由此可見數(shù)據(jù)庫已經(jīng)還原到之前備份時(shí)的狀態(tài)。
問題
數(shù)據(jù)目錄不為空
Issue 1:該問題是因?yàn)檫€原數(shù)據(jù)庫時(shí)原有的數(shù)據(jù)目錄未清空。
解決方法:清空原有數(shù)據(jù)目錄里的內(nèi)容。
總結(jié)
以上是生活随笔為你收集整理的mysql 备份工具xtrabackup全备与还原图解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何清洗盖章的猪肉?
- 下一篇: linux cmake编译源码,linu