close
實驗情境
Start immediate backup or postpone scheduled backups based on thresholds
defined by you.
Choose to do more flexible logical or faster raw backups of your database.
更詳細說明請參考: http://www.zmanda.com/backup-mysql.html
本Lab將例用ZRM For MySQL 實現~排程"增量備份"與"完整備份"
實驗情境
Oracle Linux Enterprise 6 * 1 (.188) >
MySQL Version: MySQL 5.6.2
ZRM For MySQL Version: Version 2.2
(A.) Orcl6(.188): ZRM For MySQL 相依套件之安裝
> yum -y install perl-XML-Parser perl-DBI perl-DBD-MySQL
> rpm -ivh MySQL-zrm-2.2.0- 1 .noarch.rpm #下載RPM Version
(B.) LVM 規劃儲存設計:
[Test]
# 使用兩顆10 G HDD,組成VG,並已劃分10G LV空間給MySQL備份DATA用
# 企業 真實環境建議使用mfs,nfs,或iscsi mount 該目錄空間(異地備份)
> lvdisplay #檢視LV 設計
> mke2.fs -T ext4 /dev/vg0/zrm_mysql #格式為Ext4模式
> reboot #重新開機,生效設定
> mkdir /akb48 #建立掛載LV之目錄
> mount /dev/vg0/zrm_mysql /akb48 #掛在lv 至/akb48 目錄下
> vi /etc/fstab #填入開機自動掛載Lv組態如下儲存後離開
/dev/vg0/zrm_mysql /akb48 ext4 defaults 1 2
> mount -a # Check 組態Mount 設定是否有誤
> df -h #Check LVM 是否已成功掛載
(C.) 組態ZRM 備份設定
當安裝好ZRM後,其全域設定檔位 /etc/mysql-zrm/mysql-zrm.conf
筆者好少去動到改寫它, 習慣在 /etc/mysql-zrm/ 目錄下建立一個資料夾
本例取名為 near-full 再將原位於 /etc/mysql-zrm/mysql-zrm.conf 檔案
copy 一份至/etc/mysql-zrm/mear-full 下修改組態 (類似自己備份集做法)
> mkdir -p /etc/mysql-zrm/near-full
> cp /etc/mysql-zrm/mysql-zrm.conf /etc/mysql-zrm/near-full
> vi near-full/mysql-zrm.conf #開始編輯ZRM之組態
############Backup Config###############
MySQL Backup and Recovery #截錄官網部份敘述
Zmanda Recovery Manager for MySQL
Zmanda Recovery Manager (ZRM) for MySQL simplifies the life of a Database
Administrator who needs an easy-to-use yet flexible and robust backup
and recoverysolution for MySQL server. With ZRM for MySQL you can:
Administrator who needs an easy-to-use yet flexible and robust backup
and recoverysolution for MySQL server. With ZRM for MySQL you can:
Schedule full and incremental backups of your MySQL database.
Start immediate backup or postpone scheduled backups based on thresholds
defined by you.
Choose to do more flexible logical or faster raw backups of your database.
更詳細說明請參考: http://www.zmanda.com/backup-mysql.html
實驗情境
Oracle Linux Enterprise 6 * 1 (.188) >
MySQL Version: MySQL 5.6.2
ZRM For MySQL Version: Version 2.2
(A.) Orcl6(.188): ZRM For MySQL 相依套件之安裝
> yum -y install perl-XML-Parser perl-DBI perl-DBD-MySQL
> rpm -ivh MySQL-zrm-2.2.0- 1 .noarch.rpm #下載RPM Version
(B.) LVM 規劃儲存設計:
[Test]
# 使用兩顆10 G HDD,組成VG,並已劃分10G LV空間給MySQL備份DATA用
# 企業 真實環境建議使用mfs,nfs,或iscsi mount 該目錄空間(異地備份)
> lvdisplay #檢視LV 設計
> mke2.fs -T ext4 /dev/vg0/zrm_mysql #格式為Ext4模式
> reboot #重新開機,生效設定
> mkdir /akb48 #建立掛載LV之目錄
> mount /dev/vg0/zrm_mysql /akb48 #掛在lv 至/akb48 目錄下
> vi /etc/fstab #填入開機自動掛載Lv組態如下儲存後離開
/dev/vg0/zrm_mysql /akb48 ext4 defaults 1 2
> mount -a # Check 組態Mount 設定是否有誤
> df -h #Check LVM 是否已成功掛載
(C.) 組態ZRM 備份設定
當安裝好ZRM後,其全域設定檔位 /etc/mysql-zrm/mysql-zrm.conf
筆者好少去動到改寫它, 習慣在 /etc/mysql-zrm/ 目錄下建立一個資料夾
本例取名為 near-full 再將原位於 /etc/mysql-zrm/mysql-zrm.conf 檔案
copy 一份至/etc/mysql-zrm/mear-full 下修改組態 (類似自己備份集做法)
> mkdir -p /etc/mysql-zrm/near-full
> cp /etc/mysql-zrm/mysql-zrm.conf /etc/mysql-zrm/near-full
> vi near-full/mysql-zrm.conf #開始編輯ZRM之組態
############Backup Config###############
backup-level= 0 #0為完整備份,1 為增量備份
backup-mode=logical #使用邏輯方式備份
backup-type=quick #快速備份
destination = /akb48 #備份檔案儲存目錄,下圖有誤/alb48請修正為/akb48
retention-policy=30D #保留舊備份DATA 30日
compress = 1 #備份Data壓縮
database = "Demo" #指定單一備份資料庫,可使用 -all-database=1 全資料庫備份
user = "root" #備份時MySQLUser
password = "12345" #備份時MySQL User PWD
port = 3306 #指定mysql port
socket = /var/lib/mysql/mysql.sock #指定sock路徑
mysql-binpath= "/usr/bin/" #指定binpath
mysql-binlog-path= "/var/lib/mysql/" #指定binlog
(D.) 登入MySQL 檢視將要備份Demo資料庫現況(為了接下來測試備份)
#目前Demo 資料庫存在一表單 UserData
(E.) 測試備份: 完整備份與增量備份
#1st 完整備份 DEMO
> mysql-zrm --action verify-backup --backup-set near-full #下圖已驗證OK
[實驗情境A] : 假設Demo 資料庫損毀! 我們以完整備份手動還原Demo資料庫
#剛剛完成完整備份檔案將建立於/akb48/near-full/ 此資料夾以下,我們檢視看看
#以時間戳記建立備份資料夾: 20110628113002 20110628120619
THEN ,我們登入MySQL 主機, 刪除Demo資料庫
> DROP database Demo;
[手動還原Demo資料庫] 完整備份
#下圖中我們僅指定還原單一Demo資料庫
> mysql-zrm-restore --backup-set near-full --source-directory /akb48/near-full/20110628120619/ --database Demo --user root --password 12345
#還原程序OK
登入MySQL 驗證Demo DB 是否已還原OK #下圖中,完整備份之還原已成功[實驗情境B] :
於現有Demo資料庫,插入幾筆新資料,並做一次增量備份,最後並測試增量備份是否OK
#下圖多了一筆Q韻(QYUN)紀錄
\
[著手進行增量備份]
> mysql-zrm-backup --backup-set near-full --backup-level=1 --backup-mode=logical --database =Demo
[增量備份成功]
[測試增量備份還原]
登入MySQL , 預先刪除Q韻(QYUN此筆資料)
[增量備份還原]
>mysql-zrm-restore --backup-set near-full --source-directory /akb48/near-full/20110628200715/
再次登入MySQL驗證,原先第二筆資料是否,還原成功 #下圖測試已OK
[排程執行備份工具]
#排程每日 3:00 a.m 執行一次,備份集 near-full 完整備份,若需增量請加 --backp-leve 1
> mysql-zrm-scheduler --add --interval daily --start 03:00 --backup-set near-full
#查尋已存在排程備份: mysql-zrm-scheduler --query
#刪除已存在排程備份: mysql-zrm-scheduler --delete -interval daily --start 03:00
原先建立排程備份已刪除
#查看備份報告歷程: mysql-zrm-reporter --where backup-set=near-full --show backup-status-info
#查看詳盡數據報告:
mysql-zrm-reporter --where backup-set=near-full --show backup-performance-info
TIP: 若需要編寫詳細排程備份, 本人較慣用修改/etc/crontab , cronta -e 直接修改較具彈性
下圖中,本人修改了增量備份 9-30 ~18:30 每隔半小時執行增量備份,倘若使用
mysql-zrm-scheduler 工具組態排程,就無法達到,多時段執行功效
backup-mode=logical #使用邏輯方式備份
backup-type=quick #快速備份
destination = /akb48 #備份檔案儲存目錄,下圖有誤/alb48請修正為/akb48
retention-policy=30D #保留舊備份DATA 30日
compress = 1 #備份Data壓縮
database = "Demo" #指定單一備份資料庫,可使用 -all-database=1 全資料庫備份
user = "root" #備份時MySQLUser
password = "12345" #備份時MySQL User PWD
port = 3306 #指定mysql port
socket = /var/lib/mysql/mysql.sock #指定sock路徑
mysql-binpath= "/usr/bin/" #指定binpath
mysql-binlog-path= "/var/lib/mysql/" #指定binlog
(D.) 登入MySQL 檢視將要備份Demo資料庫現況(為了接下來測試備份)
#目前Demo 資料庫存在一表單 UserData
(E.) 測試備份: 完整備份與增量備份
#1st 完整備份 DEMO
> mysql-zrm-backup --backup-set near-full #下圖中備份ok
[驗證備份數據是否OK]> mysql-zrm --action verify-backup --backup-set near-full #下圖已驗證OK
[實驗情境A] : 假設Demo 資料庫損毀! 我們以完整備份手動還原Demo資料庫
#剛剛完成完整備份檔案將建立於/akb48/near-full/ 此資料夾以下,我們檢視看看
#以時間戳記建立備份資料夾: 20110628113002 20110628120619
THEN ,我們登入MySQL 主機, 刪除Demo資料庫
> DROP database Demo;
[手動還原Demo資料庫] 完整備份
#下圖中我們僅指定還原單一Demo資料庫
> mysql-zrm-restore --backup-set near-full --source-directory /akb48/near-full/20110628120619/ --database Demo --user root --password 12345
#還原程序OK
登入MySQL 驗證Demo DB 是否已還原OK #下圖中,完整備份之還原已成功
於現有Demo資料庫,插入幾筆新資料,並做一次增量備份,最後並測試增量備份是否OK
#下圖多了一筆Q韻(QYUN)紀錄
\
[著手進行增量備份]
> mysql-zrm-backup --backup-set near-full --backup-level=1 --backup-mode=logical --database =Demo
[增量備份成功]
[測試增量備份還原]
登入MySQL , 預先刪除Q韻(QYUN此筆資料)
[增量備份還原]
>mysql-zrm-restore --backup-set near-full --source-directory /akb48/near-full/20110628200715/
再次登入MySQL驗證,原先第二筆資料是否,還原成功 #下圖測試已OK
[排程執行備份工具]
#排程每日 3:00 a.m 執行一次,備份集 near-full 完整備份,若需增量請加 --backp-leve 1
> mysql-zrm-scheduler --add --interval daily --start 03:00 --backup-set near-full
#查尋已存在排程備份: mysql-zrm-scheduler --query
#刪除已存在排程備份: mysql-zrm-scheduler --delete -interval daily --start 03:00
原先建立排程備份已刪除
#查看備份報告歷程: mysql-zrm-reporter --where backup-set=near-full --show backup-status-info
#查看詳盡數據報告:
mysql-zrm-reporter --where backup-set=near-full --show backup-performance-info
TIP: 若需要編寫詳細排程備份, 本人較慣用修改/etc/crontab , cronta -e 直接修改較具彈性
下圖中,本人修改了增量備份 9-30 ~18:30 每隔半小時執行增量備份,倘若使用
mysql-zrm-scheduler 工具組態排程,就無法達到,多時段執行功效
全站熱搜
留言列表