MySQL數(shù)據(jù)庫備份工具mylvmbackup的使用解讀
mylvmbackup 工具介紹
mylvmbackup
是一個(gè)專門用于 MySQL 數(shù)據(jù)庫備份的工具,它結(jié)合了 LVM 快照 和 MySQL 備份 的優(yōu)點(diǎn),可以在幾乎不影響數(shù)據(jù)庫性能的情況下創(chuàng)建一致的備份。
1. mylvmbackup 的核心特點(diǎn)
- 基于 LVM 快照:利用 LVM 的寫時(shí)復(fù)制(COW)機(jī)制,快速創(chuàng)建數(shù)據(jù)庫的凍結(jié)副本。
- 保證數(shù)據(jù)一致性:在創(chuàng)建快照前自動(dòng)執(zhí)行
FLUSH TABLES WITH READ LOCK
,確保備份數(shù)據(jù)的一致性。 - 支持壓縮和加密:可結(jié)合
gzip
、bzip2
或openssl
進(jìn)行壓縮和加密。 - 靈活存儲(chǔ):支持本地存儲(chǔ)、遠(yuǎn)程備份(如
scp
、rsync
)或云存儲(chǔ)(如 AWS S3)。 - 自動(dòng)清理舊備份:可配置保留策略,避免磁盤空間耗盡。
2. 安裝 mylvmbackup
Debian/Ubuntu
sudo apt-get install mylvmbackup
RHEL/CentOS
sudo yum install mylvmbackup
從源碼安裝
wget https://github.com/mylvmbackup/mylvmbackup/archive/refs/tags/v0.16.tar.gz tar -xzvf v0.16.tar.gz cd mylvmbackup-0.16 perl Makefile.PL make sudo make install
3. 基本使用方法
(1) 基本備份
mylvmbackup --user=mysql_user --password=mysql_pass --lv=mysql_lv --vg=mysql_vg --backuptype=tar
--user
:MySQL 用戶名(需RELOAD
和LOCK TABLES
權(quán)限)--password
:MySQL 密碼--lv
:MySQL 數(shù)據(jù)所在的邏輯卷(如/dev/vg_mysql/lv_mysql
)--vg
:卷組名稱--backuptype
:備份格式(tar
、gzip
、bzip2
等)
(2) 備份到遠(yuǎn)程服務(wù)器
mylvmbackup --user=root --password=123456 --lv=mysql_lv --vg=vg_data --backuptype=tar --scp=user@backup-server:/backup/mysql/
(3) 自動(dòng)清理舊備份
mylvmbackup --user=root --password=123456 --lv=mysql_lv --vg=vg_data --backuptype=tar --keep=7
--keep=7
:保留最近 7 天的備份,自動(dòng)刪除舊的。
4. 配置文件(/etc/mylvmbackup.conf)
可以預(yù)先配置默認(rèn)選項(xiàng),避免每次輸入?yún)?shù):
[defaults] user = mysql_user password = mysql_pass host = localhost lv = /dev/vg_mysql/lv_mysql vg = vg_mysql backuptype = tar backupdir = /backup/mysql keep = 5 scp = backup@remote-server:/mysql_backups/
5. 恢復(fù)備份
(1) 解壓備份
tar -xvf /backup/mysql/mysql-backup-20231001.tar -C /tmp/mysql_restore
(2) 停止 MySQL
systemctl stop mysql
(3) 恢復(fù)數(shù)據(jù)
rsync -av /tmp/mysql_restore/ /var/lib/mysql/ chown -R mysql:mysql /var/lib/mysql
(4) 啟動(dòng) MySQL
systemctl start mysql
6. 優(yōu)缺點(diǎn)
? 優(yōu)點(diǎn)
- 幾乎零停機(jī):LVM 快照使備份過程極快,對(duì)生產(chǎn)影響小。
- 數(shù)據(jù)一致性:自動(dòng)鎖定表,避免備份損壞。
- 靈活存儲(chǔ):支持本地、遠(yuǎn)程和云存儲(chǔ)。
? 缺點(diǎn)
- 依賴 LVM:MySQL 數(shù)據(jù)必須存儲(chǔ)在 LVM 邏輯卷上。
- 快照空間管理:如果快照空間不足,可能導(dǎo)致備份失敗。
- 需要 ROOT 權(quán)限:因?yàn)樯婕?LVM 操作。
7. 替代方案
工具 | 特點(diǎn) |
---|---|
Percona XtraBackup | 物理備份,支持增量備份,無需 LVM |
mysqldump | 邏輯備份,適合小型數(shù)據(jù)庫 |
MySQL Enterprise Backup | Oracle 官方工具,功能強(qiáng)大但收費(fèi) |
總結(jié)
mylvmbackup
是一個(gè)高效的 MySQL 備份工具,特別適合 大型數(shù)據(jù)庫 和 需要快速備份 的場(chǎng)景。它結(jié)合了 LVM 快照的速度 和 MySQL 的數(shù)據(jù)一致性,是 DBA 工具箱中的一個(gè)實(shí)用選擇。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
高并發(fā)狀態(tài)下Replace Into造成的死鎖問題解決
本文主要介紹了高并發(fā)狀態(tài)下Replace Into造成的死鎖問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01MySQL創(chuàng)建數(shù)據(jù)庫和創(chuàng)建數(shù)據(jù)表
MySQL?是最常用的數(shù)據(jù)庫,在數(shù)據(jù)庫操作中,基本都是增刪改查操作,簡稱CRUD。但是,這篇文章主要介紹了數(shù)據(jù)庫和數(shù)據(jù)表如何創(chuàng)建,想詳細(xì)了解的小伙伴可以參考閱讀一下2023-03-03MySQL快速禁用賬戶登入及如何復(fù)制/復(fù)用賬戶密碼(最新推薦)
這篇文章主要介紹了MySQL如何快速禁用賬戶登入及如何復(fù)制/復(fù)用賬戶密碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01MySQL快速插入大量數(shù)據(jù)的解決方案和代碼示例
在這篇博客中,我們將深入探討如何高效插入大量數(shù)據(jù)到MySQL數(shù)據(jù)庫,無論你是數(shù)據(jù)庫新手還是經(jīng)驗(yàn)豐富的開發(fā)者,這篇文章都將為你提供實(shí)用的解決方案和代碼示例,幫助你解決插入3萬條數(shù)據(jù)需要20多秒的問題,需要的朋友可以參考下2024-08-08MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問題解決
本文主要介紹了MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03