1、MySQL數據庫沒有增量備份的機制,當數據量太大的時候備份是一個很大的問題。還好MySQL數據庫提供了一種主從備份的機制,其實就是把主數據庫的所有的數據同時寫到備份數據庫中。實現MySQL數據庫的熱備份。
2、要想實現雙機的熱備首先要了解主從數據庫服務器的版本的需求。要實現熱備MySQL的版本都要高於3.2,還有一個基本的原則就是作為從數據庫的數據庫版本可以高於主服務器數據庫的版本,但是不可以低於主服務器的數據庫版本。
3、設置主數據庫服務器:
a.首先查看主服務器的版本是否是支持熱備的版本。然後查看my.cnf(類Unix)或者my.ini(Windows)中MySQLd配置塊的配置有沒有log-bin(記錄數據庫更改日志),因為MySQL的復制機制是基於日志的復制機制,所以主服務器一定要支持更改日志才行。然後設置要寫入日志的數據庫或者不要寫入日志的數據庫。這樣只有您感興趣的數據庫的更改才寫入到數據庫的日志中。
server-id=1 //數據庫的id這個應該默認是1就不用改動log-bin=log_name //日志文件的名稱,//這裡可以制定日志到別的目錄 如果沒有設置則默認主機名的一個日志名稱binlog-do-db=db_name //記錄日志的數據庫binlog-ignore-db=db_name //不記錄日志的數據庫
以上的如果有多個數據庫用","分割開
然後設置同步數據庫的用戶帳號
MySQL> GRANT REPLICATION SLAVE ON *.*-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
4.0.2以前的版本, 因為不支持REPLICATION 要使用下面的語句來實現這個功能
MySQL> GRANT FILE ON *.*-> TO 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
設置好主服務器的配置文件後重新啟動數據庫
b.鎖定現有的數據庫並備份現在的數據
鎖定數據庫
MySQL> FLUSH TABLES WITH READ LOCK;
備份數據庫有兩種辦法一種是直接進入到MySQL的data目錄然後打包你需要備份數據庫的文件夾,第二種是使用MySQLdump的方式來備份數據庫但是要加上"--master-data " 這個參數,建議使用第一種方法來備份數據庫
c.查看主服務器的狀態
MySQL> show master status\G;+---------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+---------------+----------+--------------+------------------+| MySQL-bin.003 | 73 | test | manual,MySQL |+---------------+----------+--------------+------------------+
function ImgZoom(Id)//重新設置圖片大小 防止撐破表格 { var w = $(Id).width; var m = 700; if(w < m) { return; } else { var h = $(Id).height; $(Id).height = parseInt(h*m/w); $(Id).title = "點擊小圖看大圖"; $(Id).width = m; $(Id).onclick = function(){ created($(Id).src)}; } } window.onload = function() { var Imgs = $("content").getElementsByTagName("img"); var i=0; for(;i