追蹤
NEIL's_學而時習之x不學無術~私藏IT技術經驗分享部落
關於部落格
NEIL. Cheng....寫作只是為了日後工作之備忘操作參考

本部落格文章撰寫前進邁向第五年(since 2009 ~至今)仍繼續推進分享IT學習!!About Windows/Linux Server,Virtualization


分享網誌: 由於,本人預先完成LAB後,才補上撰寫文章與截圖,若發現文圖對照說明有誤..本人將盡快校正,也請不吝指教! Thanks!

  • 168105

    累積人氣

  • 35

    今日人氣

    0

    追蹤人氣

ZRM For MySQL 實現簡易排程備份(完整+增量)By Near


 (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-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         #下圖中,完整備份之還原已成功 
[實驗情境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 工具組態排程,就無法達到,多時段執行功效
 

相簿設定
標籤設定
相簿狀態