# DB 系統備份
TIP
特別感謝 此為 rainlay
大分享技術筆記, 在此感謝! @https://github.com/rainlay
- mysql/mariadb/percona
# Mysql系 DB 分支
- Mysql (但已被Oracle買下...)
- MariaDB (Mysql後的開源fork)
- Percona (Mysql的另外一個fork, 有公司營運)
# 備份方式的說明
邏輯性備份: 類似 mysqldump
- 逐項export出來, 類似匯出
- 需時較久, 資料量一大之後, 很容易Fail
- 過程中會影響到Prod Database
物理性備份: 類似 xtrabackup
- 類似DB檔案直接Copy
- 需時較短, 較不影響 Prod Database
# MysqlDump
- 待補上
# XtraBackup
- Percona 所出的一個DB備份功能
- 物理性備份
# Mariadb backup
- Percona XtraBackup 再 fork 出來的版本
# 安裝 mariadb backup
- 建議將 MariaDB升到 10.3以上版本
- 安裝方式
apt-get install mariadb-backup
1
# 完整備份
mariabackup --user=keeper \
--password=PASSWORD \
--backup \
--target-dir=/data/dbbackup/;
1
2
3
4
2
3
4
- --user 你的DB User
- --password 你的DB Password
- --backup 使用完整備份
- --target-dir 備份資料放置的目錄
# 還原
# Prepare
回復資料庫之前,需先進行 "Prepare" 的動作
# 先將 MySQL 停止
service mysql stop
# Prepare
mariabackup --prepare --target-dir=/data/dbbackup/
1
2
3
4
5
2
3
4
5
# Restore
# 刪除 mysql 資料庫位置的資料
rm -r /var/lib/mysql/*
# 還原資料庫
mariabackup --copy-back --target-dir=/data/dbbackup/
# 如果資料 owner 非 mysql 須改為 mysql 否則會有權限問題
sudo chown -R mysql:mysql /var/lib/mysql
# 備份完成,啟動 MySQL
sudo service mysql start
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11