MariaDB-Backup 在線備份服務
因公司的服務是 24 小時運行在備份資料庫的時候希望別影響到線上的服務,剛好之前公司有用 xtrabackup
來執行備份服務,但在 MariaDB
在 10 之後已無法使用, MariaDB
有分支 xtrabackup
服務另外自己在做維護使用,那本記篇會記錄一下基本操作
運行環境
環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
- 系統環境: Debian 12
- 資料庫服務: MariaDB 11.4
安裝過程
- 先安裝官方所使用的套件
apt install mariadb-backup -y
- 可以先建立一個
vim .my.cnf
來設定連線資訊
[client]
# 登入帳號
user=backup_user
# 登入密碼
password='password'
# 連線位置
host=127.0.0.1
# 連線 Port
port=3306
- 完整備份
mariadb-backup --defaults-file=/xx/.my.cnf --backup --prepare --target-dir=/xxx/fuill
- 差異備份,要先確認是否有完整的備份
mariadb-backup --defaults-file=/xx/.my.cnf --backup --prepare --target-dir=/xxx/fuill --incremental-basedir=/xxx/diff
- 還原資料之前要先停止資料庫服務
systemctl stop mariadb
- 完整還原,您要先確認有關於
my.cnf
的位置,系統會依據此設定檔做資料還原
mariadb-backup --defaults-file=/xxx/my.cnf --copy-back --target-dir=/xxx/full
- 差異還原,要先讀一次完整備份後,然後再把差異的備份進行做合拼
# 先讀一次完整備份
mariadb-backup --prepare --use-memory=4G --target-dir=/xxx/full
# 再跟差異做合拼
mariadb-backup --prepare --use-memory=4G --target-dir=/xxxx/full --incremental-dir=/xxxx/diff
- 執行還原
mariadb-backup --defaults-file=/xxx/my.cnf --copy-back --target-dir=/xxx/full
- 還原完後需設定該目錄權限
chown -R mysql: /xxx/mysql
- 啟動服務
systemctl start mariadb