Mysqlbackup备份还原初识
? ? ? ? ? ? ? ? ? ? ? ? ? ?Mysqlbackup 8.0.23 備份還原圖解
Mysqlbackup簡(jiǎn)介
mysqlbackup是mysql 企業(yè)版里的一個(gè)數(shù)據(jù)庫(kù)備份還原工具。它是一個(gè)多平臺(tái),高性能的工具,提供豐富的功能,如熱(在線)備份,增量和差異備份,選擇性備份和恢復(fù),支持直接的云存儲(chǔ)備份,備份加密和壓縮等
注:當(dāng)前驗(yàn)證環(huán)境CentOS 8 X86 64、mysql 8.0.23、mysqlbackup 8.0.23
配置環(huán)境變量?
# 編輯用戶環(huán)境變量 vi ~/.bashrc #新增如下內(nèi)容(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#驗(yàn)證是否可以直接使用mysqlbackup命令 mysqlbackup --help | wc -l備份前準(zhǔ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_historyTO 'mysqlbak'@'localhost';數(shù)據(jù)庫(kù)全備
# 對(duì)數(shù)據(jù)庫(kù)進(jìn)行全備 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配置到環(huán)境變量里,當(dāng)前演示環(huán)境未配置。
備份文件校驗(yàn)
#通過(guò)校驗(yàn)命令查看備份的文件是否損壞。./mysqlbackup --backup-image=/root/workspace/mysqlbackup/bakSpace/mysqlbak_20210423.mbi validate備份內(nèi)容查看
#查看備份的內(nèi)容./mysqlbackup --backup-image=/root/workspace/mysqlbackup/bakSpace/mysqlbak_20210423.mbi list-image數(shù)據(jù)庫(kù)還原
還原前
-- 還原前先在trial數(shù)據(jù)庫(kù)里往tmp_test表里插入一條記錄、創(chuàng)建新表tmp_newOne以做還原的對(duì)比。具體腳本見(jiàn)下: use trial; SELECT * FROM tmp_test; INSERT INTO tmp_test VALUES(3,'Afterbak'); COMMIT;CREATE TABLE tmp_newOne(id int);?
還原中
# Step 1: 關(guān)閉數(shù)據(jù)庫(kù) 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注:這里因?yàn)槭怯迷瓉?lái)的數(shù)據(jù)目錄,所以加了參數(shù)--force
?
注:如果這里不賦權(quán),后續(xù)mysq數(shù)據(jù)庫(kù)重啟時(shí)會(huì)報(bào)錯(cuò),詳見(jiàn)問(wèn)題處分析。
還原后
Step 1 重啟mysql數(shù)據(jù)庫(kù)服務(wù)
#重啟mysql數(shù)據(jù)庫(kù) service mysqld startStep 2 還原前后對(duì)比
還原前:
還原后:
由此可見(jiàn)數(shù)據(jù)庫(kù)已經(jīng)還原到之前備份時(shí)的狀態(tài)。
問(wèn)題
版本兼容
Issue 1:該問(wèn)題是因?yàn)閙ysqlbackup與mysql版本不一致,這里需要嚴(yán)格保證兩軟件的版本號(hào)一致(大小版本都得一致)。
解決方法: 1 下載與mysql適配的mysqlbackup
? ? ? ? ? ? ? ? ? ?2 如果mysqlbackup版本較高,升級(jí)mysql來(lái)適配。
備份時(shí)權(quán)限不足
Issue 2:備份時(shí)提示權(quán)限不足
解決方法:該情況主要時(shí)前期備份準(zhǔn)備環(huán)節(jié)時(shí)未賦予BACKUP_ADMIN權(quán)限,參考準(zhǔn)備環(huán)節(jié)賦權(quán)即可。
無(wú)法連接Socket
Issue 3:備份時(shí)報(bào)錯(cuò)無(wú)法連接socket
解決方法:參數(shù)里指定 --socket=/var/lib/mysql/mysql.sock,詳見(jiàn)全備處命令。
還原后數(shù)據(jù)庫(kù)啟動(dòng)失敗
Issue 4:還原后啟動(dòng)數(shù)據(jù)庫(kù)報(bào)錯(cuò)。
解決方法:
Step 1 首先通過(guò) /etc/my.cnf找到mysql的日志所在目錄:log-error=/var/log/mysqld.log
Step 2 通過(guò)vi、tail命令或者其它文本文件分析日志文件,發(fā)現(xiàn)是權(quán)限問(wèn)題:
Step 3 對(duì)mysql數(shù)據(jù)文件賦權(quán) chown -R mysql:mysql /data/mysql即可。
注:如果按照上述操作無(wú)該錯(cuò)誤。
總結(jié)
以上是生活随笔為你收集整理的Mysqlbackup备份还原初识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Mysql 8 逻辑升级详解
- 下一篇: linux cmake编译源码,linu