MySQL的有備無患
首先我對MYSQL數據庫的備份計劃分為二個步驟,第一步為時時備份,就是MYSQL的 MASTER,SLAVE模式,此模式的優勢就在可以從MASTER數據庫即時的備份到SLAVE上,對于硬盤損壞導致的數據庫問題可以有效的進行預防, 同時在配置文件中可聲明生成二進制日志文件,又可以在任意時間進行數據恢復。第二部完全備份,有了時時備份,仍不可掉以輕信,大家都知道計算機這東西沒準 什么時間就會給你冒個異常,作為一名合格的系統管理員,我們要盡量做到萬無一失誤,那么我的計劃是在本地的CRONTAB中添加每日的MYSQLDUMP 命令,用來導出數據庫,并傳送到一臺備份服務器。
下面來具體的為大家說明如何來實施我的計劃:
1.主從模式:
MASTER:
配置my.cnf,在[mysqld]中添加
server-id=1
log-bin#(啟動二進制備份)
binlog-do-db=database1 #(選擇需要備份的本地數據庫)
log#(記錄本地LOG日志)
log-update#(更新本地LOG日志)
在MYSQL中執行:
GRANT SELECT,REPLICATION SLAVE ON database1.* TO backup@123.123.123.123 IDENTIFIED BY 'backuppwd';
解釋:
log-bin#(啟動二進制備份)
binlog-do-db=database1,database2#(選擇需要備份的本地數據庫)
將本地的數據存儲轉換為二進制模式,方便傳送至SLAVE,本地查看數據庫日志不方便。
log#(記錄本地LOG日志)
log-update#(更新本地LOG日志)
直接將二進制日志記錄在本地,本地會在數據庫目錄生成以主機名命名的log文件,方便本地查看。
GRANT SELECT,REPLICATION SLAVE ON database1.* TO backup@123.123.123.123 IDENTIFIED BY 'backuppwd';
為SLAVER添加一個可以訪問的用戶
SLAVER:
server-id=2
master-host=123.123.123.123#(MASTER的IP)
master-user=backup
master-password=backuppwd
master-port=3306
master-connect-retry=60
set-variable=replicate-do-db=database1
log-bin
log-slave-updates
解釋:
server-id=2
master-host=123.123.123.123#(MASTER的IP)
master-user=backup
master-password=backuppwd
master-port=3306
master-connect-retry=60
配置MASTER的相關信息
log-bin
log-slave-updates
本地記錄二進制日志并更新
2.完全模式
在CRONTAB中寫入
0 0 * * * mysqldump database > /sqlbak/database_`date +%Y%m%d`.sql
完整數據庫文件被導出后可以用SCP拷貝到備份服務器(可參考SSH無密碼認證方法),這里就不說了。
解釋:
在每天0點的時候對DATABASE數據庫進行備份并以當天日期作為文件名,例如今天會生成database_20090218.sql
有了這雙層保險,相信大家在數據庫管理方便可以輕松很多吧。本文只是介紹了MYSQL備份策略的冰山一角,更多的應用還需要大家自己琢磨,若有解釋不當的地方還請大家海涵,愿和各位系統愛好者一同進步。
附:通過二進制文件恢復數據:
mysqlbinlog --stop-date="2009-02-18 00:00:00" /var/lib/mysql/commail-bin.000001 > /sqlbak/090218.sql
恢復2009年2月18日0點前的完整數據庫信息到/sqlbak/090218.sql
關鍵字:MySQL、數據庫、備份、服務器
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解