本文寫道最後的時候,我才發現ZRM for MySQL的一個致命問題,就我目前的理解和測試來看,它恢複資料的時候是採取覆蓋的方式,舉個例子,假定某台資料庫伺服器上有兩個資料庫test1,test2,你備份了這兩個資料庫,某一天,test2資料庫裡的某一個表壞了,那麼它無法做到僅僅只是恢複損壞的表,甚至無法做到僅僅恢複test2,而是直接把test1,test2都恢複。那這絕對是一個噩夢。
但願我目前的理解是錯誤的,只是我實在找不到控制恢複粒度的地方。下面的文字就當閑著無聊看看吧。
Zmanda Recovery Manager(ZRM)提供了備份MySQL資料庫的能力,並且支援兩種備份模式:邏輯備份和裸備份,有關詳細的介紹,可以看官方的介紹。下面給出一個備份的執行個體。
先介紹備份的環境,如果大家看過之前的那篇Amanda集中備份執行個體,那麼大概就知道是什麼樣的一個網路架構了,承接上文,這裡備份伺服器還是cp1.domain.com,MySQL資料庫分別運行在cp2.domain.com和cp3.domain.com上,需要備份其所有的資料庫。
一、服務端的安裝和配置
首先從官方網站下載對應系統的服務端程式,然後安裝。注意:服務端與perl-DBI,MySQL-client程式庫有依賴關係,安裝之前先安裝這個兩個包。
安裝完後,/etc/mysql-zrm/是其設定檔的所在地。/etc/mysql-zrm/目錄下有一個mysql-zrm.conf檔案,這是最重要的設定檔。在/etc/mysql-zrm/目錄下,你可以建立一些目錄,每一個目錄就是一個備份組的名稱,我這裡為了直觀,採取了主機名稱的方式來建立備份組
mkdir /etc/mysql-zrm/{cp2.domain.com,cp3.domain.com}cp /etc/mysql-zrm/{mysql-zrm.conf,cp2.domain.com/,cp3.domain.com/}
/etc/mysql-zrm/mysql-zrm.conf可以做為全域設定檔,針對每一台需要備份的資料庫的不同,可以在備份組目錄裡的mysql-zrm.conf再定義,這裡的定義可以覆蓋全域定義。
首先,我們把一些全域定義資訊配置在/etc/mysql-zrm/mysql-zrm.conf檔案裡
#cat /etc/mysql-zrm/mysql-zrm.confbackup-level=0backup-mode=logicalbackup-type=regulardestination=/yourpath/dbcompress=1compress-plugin=/bin/gzipencrypt=1encrypt-plugin="/usr/share/mysql-zrm/plugins/encrypt.pl"decrypt-option="-d"all-databases=1user="backup-user"password="securepassword"mailto="your@domain.com"
上面的配置資訊應該比較直觀。
然後配置每一台MySQL伺服器的一些特有參數
#cat /etc/mysql-zrm/cp2.domain.com/mysql-zrm.confhost="cp2.domain.com"destination=/yourpath/db #cat /etc/mysql-zrm/cp3.domain.com/mysql-zrm.confhost="cp3.domain.com"destination=/yourpath/db
建立加密的密碼檔案
[root@cp1:~# touch /etc/mysql-zrm/.passphrase[root@cp1:~# echo encryptpass > /etc/mysql-zrm/.passphrase[root@cp1:~# chmod 700 /etc/mysql-zrm/.passphrase
【內容導航】 |
第1頁:服務端的安裝和配置 |
第2頁:配置用戶端 |
第3頁:測試備份 |
第4頁:檢驗 |
第5頁:恢複 |
|