日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Mysqlbackup备份还原初识

發布時間:2024/9/27 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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
?

#Step 3 賦權數據文件mysql用戶能訪問。 chown -R mysql:mysql /data/mysql

:如果這里不賦權,后續mysq數據庫重啟時會報錯,詳見問題處分析。

還原后

Step 1 重啟mysql數據庫服務

#重啟mysql數據庫 service mysqld start

Step 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备份还原初识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。