Mysqlbackup备份还原初识
? ? ? ? ? ? ? ? ? ? ? ? ? ?Mysqlbackup 8.0.23 備份還原圖解
Mysqlbackup簡介
mysqlbackup是mysql 企業版里的一個數據庫備份還原工具。它是一個多平臺,高性能的工具,提供豐富的功能,如熱(在線)備份,增量和差異備份,選擇性備份和恢復,支持直接的云存儲備份,備份加密和壓縮等
注:當前驗證環境CentOS 8 X86 64、mysql 8.0.23、mysqlbackup 8.0.23
配置環境變量?
# 編輯用戶環境變量 vi ~/.bashrc #新增如下內容(export MYSQLBACKUP...、${MYSQLBACKUP}/bin:): export MYSQLBACKUP=/root/softwares/mysql/mysqlbackup/mysql-commercial-backup-8.0.23-linux-glibc2.12-x86_64/bin export PATH="${MYSQLBACKUP}/bin:$PATH:/opt/mssql-tools/bin" source ?~/.bashrc#驗證是否可以直接使用mysqlbackup命令 mysqlbackup --help | wc -l備份前準備
-- 創建用戶并備份相關賦權 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_historyTO 'mysqlbak'@'localhost';數據庫全備
# 對數據庫進行全備 cd /root/softwares/mysql/mysqlbackup/mysql-commercial-backup-8.0.23-linux-glibc2.12-x86_64/bin./mysqlbackup --user=mysqlbak --password='root@1234T5' --socket=/var/lib/mysql/mysql.sock --backup-image=/root/workspace/mysqlbackup/bakSpace/mysqlbak_20210423.mbi --backup-dir=/root/workspace/mysqlbackup/bakSpace backup-to-image注:可將mysqlbackup配置到環境變量里,當前演示環境未配置。
備份文件校驗
#通過校驗命令查看備份的文件是否損壞。./mysqlbackup --backup-image=/root/workspace/mysqlbackup/bakSpace/mysqlbak_20210423.mbi validate備份內容查看
#查看備份的內容./mysqlbackup --backup-image=/root/workspace/mysqlbackup/bakSpace/mysqlbak_20210423.mbi list-image數據庫還原
還原前
-- 還原前先在trial數據庫里往tmp_test表里插入一條記錄、創建新表tmp_newOne以做還原的對比。具體腳本見下: use trial; SELECT * FROM tmp_test; INSERT INTO tmp_test VALUES(3,'Afterbak'); COMMIT;CREATE TABLE tmp_newOne(id int);?
還原中
# Step 1: 關閉數據庫 mysqladmin -uroot -p'root1234' shutdown# Step 2: 還原 ./mysqlbackup --defaults-file=/etc/my.cnf --user=mysqlbak --backup-image=/root/workspace/mysqlbackup/bakSpace/mysqlbak_20210423.mbi --backup-dir=/root/workspace/mysqlbackup/bakSpace_restore --datadir=/data/mysql --force copy-back-and-apply-log注:這里因為是用原來的數據目錄,所以加了參數--force
?
注:如果這里不賦權,后續mysq數據庫重啟時會報錯,詳見問題處分析。
還原后
Step 1 重啟mysql數據庫服務
#重啟mysql數據庫 service mysqld startStep 2 還原前后對比
還原前:
還原后:
由此可見數據庫已經還原到之前備份時的狀態。
問題
版本兼容
Issue 1:該問題是因為mysqlbackup與mysql版本不一致,這里需要嚴格保證兩軟件的版本號一致(大小版本都得一致)。
解決方法: 1 下載與mysql適配的mysqlbackup
? ? ? ? ? ? ? ? ? ?2 如果mysqlbackup版本較高,升級mysql來適配。
備份時權限不足
Issue 2:備份時提示權限不足
解決方法:該情況主要時前期備份準備環節時未賦予BACKUP_ADMIN權限,參考準備環節賦權即可。
無法連接Socket
Issue 3:備份時報錯無法連接socket
解決方法:參數里指定 --socket=/var/lib/mysql/mysql.sock,詳見全備處命令。
還原后數據庫啟動失敗
Issue 4:還原后啟動數據庫報錯。
解決方法:
Step 1 首先通過 /etc/my.cnf找到mysql的日志所在目錄:log-error=/var/log/mysqld.log
Step 2 通過vi、tail命令或者其它文本文件分析日志文件,發現是權限問題:
Step 3 對mysql數據文件賦權 chown -R mysql:mysql /data/mysql即可。
注:如果按照上述操作無該錯誤。
總結
以上是生活随笔為你收集整理的Mysqlbackup备份还原初识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql 8 逻辑升级详解
- 下一篇: 什么食物吃了能够放松心情?