使用Amanda ZRM备份远程MySQL数据库
本文寫道最后的時(shí)候,我才發(fā)現(xiàn)ZRM for MySQL的一個(gè)致命問題,就我目前的理解和測試來看,它恢復(fù)數(shù)據(jù)的時(shí)候是采取覆蓋的方式,舉個(gè)例子,假定某臺(tái)數(shù)據(jù)庫服務(wù)器上有兩個(gè)數(shù)據(jù)庫test1,test2,你備份了這兩個(gè)數(shù)據(jù)庫,某一天,test2數(shù)據(jù)庫里的某一個(gè)表壞了,那么它無法做到僅僅只是恢復(fù)損壞的表,甚至無法做到僅僅恢復(fù)test2,而是直接把test1,test2都恢復(fù)。那這絕對是一個(gè)噩夢。
但愿我目前的理解是錯(cuò)誤的,只是我實(shí)在找不到控制恢復(fù)粒度的地方。下面的文字就當(dāng)閑著無聊看看吧。
Zmanda Recovery Manager(ZRM)提供了備份MySQL數(shù)據(jù)庫的能力,并且支持兩種備份模式:邏輯備份和裸備份,有關(guān)詳細(xì)的介紹,可以看官方的介紹。下面給出一個(gè)備份的實(shí)例。
先介紹備份的環(huán)境,如果大家看過之前的那篇Amanda集中備份實(shí)例,那么大概就知道是什么樣的一個(gè)網(wǎng)絡(luò)架構(gòu)了,承接上文,這里備份服務(wù)器還是cp1.domain.com,MySQL數(shù)據(jù)庫分別運(yùn)行在cp2.domain.com和cp3.domain.com上,需要備份其所有的數(shù)據(jù)庫。
一、服務(wù)端的安裝和配置
首先從官方站點(diǎn)下載對應(yīng)系統(tǒng)的服務(wù)端程序,然后安裝。注意:服務(wù)端與perl-DBI,MySQL-client程序庫有依賴關(guān)系,安裝之前先安裝這個(gè)兩個(gè)包。
安裝完后,/etc/mysql-zrm/是其配置文件的所在地。/etc/mysql-zrm/目錄下有一個(gè)mysql-zrm.conf文件,這是最重要的配置文件。在/etc/mysql-zrm/目錄下,你可以創(chuàng)建一些目錄,每一個(gè)目錄就是一個(gè)備份集的名稱,我這里為了直觀,采取了主機(jī)名的方式來創(chuàng)建備份集
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可以做為全局配置文件,針對每一臺(tái)需要備份的數(shù)據(jù)庫的不同,可以在備份集目錄里的mysql-zrm.conf再定義,這里的定義可以覆蓋全局定義。
首先,我們把一些全局定義信息配置在/etc/mysql-zrm/mysql-zrm.conf文件里
#cat /etc/mysql-zrm/mysql-zrm.conf backup-level=0 backup-mode=logical backup-type=regular destination=/yourpath/db compress=1 compress-plugin=/bin/gzip encrypt=1 encrypt-plugin="/usr/share/mysql-zrm/plugins/encrypt.pl" decrypt-option="-d" all-databases=1 user="backup-user" password="securepassword" mailto="your@domain.com"上面的配置信息應(yīng)該比較直觀。
然后配置每一臺(tái)MySQL服務(wù)器的一些特有參數(shù)
創(chuàng)建加密的密碼文件
[root@cp1:~# touch /etc/mysql-zrm/.passphrase [root@cp1:~# echo encryptpass > /etc/mysql-zrm/.passphrase [root@cp1:~# chmod 700 /etc/mysql-zrm/.passphrase二、配置客戶端
這里有兩臺(tái)機(jī)器,cp2和cp3,因?yàn)槲覀儌浞莸念愋鸵粯?#xff0c;所以cp2的配置過程和cp3的配置過程一樣,這里只描述cp2的配置過程
1.登錄cp2服務(wù)器
2.用MySQL的管理員帳號(hào)(一般是root)登錄MySQL數(shù)據(jù)庫
3.創(chuàng)建一個(gè)用戶備份的帳號(hào)并授予一定的權(quán)限,帳號(hào)的定義在備份服務(wù)器的/etc/mysql-zrm/mysql-zrm.conf文件里有定義,這里帳號(hào)是backup-user,密碼是securepassword
mysql> GRANT SELECT, INSERT, UPDATE, CREATE, DROP, reload, shutdown,-> ALTER, super, LOCK TABLES, replication client ON *.* TO-> 'backup-user'@'cp1.domain.com' IDENTIFIED BY 'securepassword';提示:如果你需要備份的數(shù)據(jù)庫不是全部,那么在授權(quán)的時(shí)候,最好是指定,而不是上面的*.*方式,安全為主!
三、測試備份
配置還是比較簡單的,現(xiàn)在我們開始測試。
首先的用root帳號(hào)登錄cp1機(jī)器,然后執(zhí)行下面的指令:
以上是備份cp3.domain.com的數(shù)據(jù)庫,用同樣的指令可以備份cp2.domain.com數(shù)據(jù)庫。
4、檢驗(yàn)
如果上述備份過程沒有報(bào)錯(cuò),那么接下來就要看看備份的數(shù)據(jù)是不是有效了。在cp1機(jī)器上執(zhí)行下面的指令
校驗(yàn)都沒有報(bào)錯(cuò),我們還可以看看備份的性能,備份的詳細(xì)信息等,更多的使用方式,可以查看mysql-zrm(1)
root@cp1:~# mysql-zrm --action report --show backup-performance-info REPORT TYPE : backup-performance-info backup_set backup_date backup_level backup_size backup_size_compressed backup_time ---------------------------------------------------------------------------------------------------------------------------------------------------------------- cp3.domain.com Wed 15 Apr 2009 06:03:21 0 4.04 MB 0.46 MB 00:00:02 cp3.domain.com Wed 15 Apr 2009 06:02:26 0 4.04 MB 0.46 MB 00:00:02 cp3.domain.com Wed 15 Apr 2009 06:01:38 0 4.04 MB 0.46 MB 00:00:03 cp2.domain.com Wed 15 Apr 2009 05:19:57 0 315.05 MB 121.38 MB 00:02:36 cp3.domain.com Wed 15 Apr 2009 05:19:33 0 4.03 MB 0.46 MB 00:00:02 root@cp1:~# mysql-zrm --action list --backup-set cp3.domain.com list:INFO: ZRM for MySQL Community Edition - version 2.1 0 /csdata/backup/db/cp3.domain.com/20090415180321 Index File { decrypt-option=-dbackup-status=Backup succeededmysql-version=5.0.45backup-date=20090415180321mysql-zrm-version=ZRM for MySQL Community Edition - version 2.1compress-encrypt-time=00:00:02backup-type=regularlogical-databases=apachelogs dtc fireyang hnnoritz mysql s567 wordpressmysql-server-os=Linux/Unixbackup-level=0last-backup=/csdata/backup/db/cp3.domain.com/20090415180226backup-size-compressed=0.46 MBbackup-size=4.04 MBencrypt=/usr/share/mysql-zrm/plugins/encrypt.plbackup-set=cp3.domain.combackup-time=00:00:02host=cp3.3yidc.cnbackup-directory=/csdata/backup/db/cp3.domain.com/20090415180321flush-logs-time=00:00:00read-locks-time=00:00:02compress=/bin/gzipbackup-date-epoch=1239789801 } root@cp1:~#五、恢復(fù)
假定cp2服務(wù)器上的數(shù)據(jù)庫ehcpbackup20090403170240丟失了(這里是我人工刪除了這個(gè)庫),我們看看如何從備份里恢復(fù)。
1.登錄cp1機(jī)器
2.執(zhí)行下面的命令,看看cp2機(jī)器上的數(shù)據(jù)庫現(xiàn)在備份在哪里(為了顯示直觀,輸出結(jié)果有處理)
3.然后執(zhí)行真正的備份指令:
root@cp1:~#mysql-zrm --action restore --backup-set cp2.domain.com --source-directory \ > /yourpath/db/cp2.domain.com/20090415171957 INFO: ZRM for MySQL Enteprise Edition - version 1.1 WARNING: Binary logging is off. Incremental backups cannot be done. INFO: Restore done in 169 seconds. MySQL server has been shutdown. Please restart after verification.4.重啟cp2機(jī)器上的MySQL服務(wù)。
到此恢復(fù)完成。
轉(zhuǎn)載于:https://www.cnblogs.com/DataArt/p/10210513.html
總結(jié)
以上是生活随笔為你收集整理的使用Amanda ZRM备份远程MySQL数据库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一年前3-1对应阿里P7,贬值得有点快,
- 下一篇: MyCAT+MySQL 搭建高可用企业级