MySQL數(shù)據(jù)庫(kù)備份工具mylvmbackup的使用解讀
mylvmbackup 工具介紹
mylvmbackup 是一個(gè)專門用于 MySQL 數(shù)據(jù)庫(kù)備份的工具,它結(jié)合了 LVM 快照 和 MySQL 備份 的優(yōu)點(diǎn),可以在幾乎不影響數(shù)據(jù)庫(kù)性能的情況下創(chuàng)建一致的備份。
1. mylvmbackup 的核心特點(diǎn)
- 基于 LVM 快照:利用 LVM 的寫時(shí)復(fù)制(COW)機(jī)制,快速創(chuàng)建數(shù)據(jù)庫(kù)的凍結(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ù)庫(kù) |
| MySQL Enterprise Backup | Oracle 官方工具,功能強(qiáng)大但收費(fèi) |
總結(jié)
mylvmbackup 是一個(gè)高效的 MySQL 備份工具,特別適合 大型數(shù)據(jù)庫(kù) 和 需要快速備份 的場(chǎng)景。它結(jié)合了 LVM 快照的速度 和 MySQL 的數(shù)據(jù)一致性,是 DBA 工具箱中的一個(gè)實(shí)用選擇。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Ubuntu15下mysql5.6.25不支持中文的解決辦法
Ubuntu15下mysql5.6.25出現(xiàn)亂碼,不支持中文,該問題如何解決呢?下面看看小編是怎么解決此問題的,需要的朋友可以參考下2015-09-09
詳解標(biāo)準(zhǔn)mysql(x64) Windows版安裝過程
這篇文章主要介紹了標(biāo)準(zhǔn)mysql(x64) Windows版安裝過程,需要的朋友可以參考下2017-08-08
mysql報(bào)錯(cuò)1033 Incorrect information in file: ‘xxx.frm’問題的解決方法
這篇文章主要介紹了關(guān)于mysql報(bào)錯(cuò)1033 Incorrect information in file: 'xxx.frm'問題的解決方法,文中通過示例代碼介紹的很詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-03-03
mysql如何查詢某一時(shí)間段內(nèi)沒有賣出的商品
室友拿來一道關(guān)于mysql查詢的問題,利用mysql查詢某一時(shí)間段內(nèi)沒有賣出的商品,需要的朋友可以參考下2014-02-02
mysql的bigint?和?bigint(20)?主鍵自增的區(qū)別解析
bigint和bigint(20)在MySQL中作為主鍵自增時(shí),功能完全相同,本文介紹mysql的bigint和bigint(20)主鍵自增的區(qū)別,感興趣的朋友跟隨小編一起看看吧2026-01-01
mysql group by having 實(shí)例代碼
mysql中g(shù)roup by語句用于分組查詢,可以根據(jù)給定數(shù)據(jù)列的每個(gè)成員對(duì)查詢結(jié)果進(jìn)行分組統(tǒng)計(jì),最終得到一個(gè)分組匯總表, 經(jīng)常和having一起使用,需要的朋友可以參考下2016-11-11
mysql模糊查詢like與REGEXP的使用詳細(xì)介紹
每位程序員們應(yīng)該都知道,增刪改查是mysql最基本的功能,而其中查是最頻繁的操作,模糊查找是查詢中非常常見的操作,于是模糊查找成了必修課。下面這篇文章就給大家詳細(xì)介紹了mysql模糊查詢like與REGEXP的使用,有需要的朋友們可以參考學(xué)習(xí)。2016-12-12
MySQL explain獲取查詢指令信息原理及實(shí)例
這篇文章主要介紹了MySQL explain獲取查詢指令信息原理及實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

