《Mysql應用Mysql實時備份實現方法》要點:
本文介紹了Mysql應用Mysql實時備份實現方法,希望對您有用。如果有疑問,可以聯系我們。
MYSQL數據庫目前成熟的實時備份為雙機(master/slave),是基于同步日志事件來實現,那單機如何實現具有增量的備份呢?可以借用雙機的原理,非常簡單,實施步驟如下:
Mysql版本:mysql4.0+
MYSQL數據庫1、vi my.cfg
MYSQL數據庫2、service mysql restart
MYSQL數據庫會在/home/backup/update00001文件,內容為數據庫變化的所有SQL(沒有select)
MYSQL數據庫3、每天的全備,mysql4.0+最簡單就是備份data目錄.
MYSQL數據庫4、數據還原
MYSQL數據庫如想還原昨天、前天的數據只需要找相應的update0000*來還原即可:)
MYSQL數據庫以下是補充:
MYSQL數據庫1、MYSQL數據庫提供了一種主從備份的機制,其實就是把主數據庫的所有的數據同時寫到備份數據庫里面,從而實現MYSQL數據庫的實時備份.
2、版本要求,首先要保證主服務器和從服務器的MYSQL版本都高于3.2,另外,從數據庫的版本可以高于主服務器,但不能低于主服務器.
3、主服務器設置:
A、先修改MY.INI中有關log-bin的設置,這是記錄數據庫更改的日志,由于MYSQL的復制機制,是基于日志的,所以主服務器必須要支持更改日志才可以.
接著設置要寫入日志的數據庫,或者不要寫入日志的數據庫,這是為了告訴MYSQL,那個庫需要備份,哪個不需要.
下面是配置詳情:
MYSQL數據庫server-id=1 //數據庫的id這個應該默認是1就不用改動
log-bin=log_name //日志文件的名稱,這里可以制定日志到別的目錄 如果沒有設置則默認主機名的一個日志名稱
binlog-do-db=db_name //記錄日志的數據庫
binlog-ignore-db=db_name //不記錄日志的數據庫
MYSQL數據庫上面的binlog-do-db和binlog-ignore-db可以設置成多個數據庫,每個數據庫名稱之間用“,”分割開.
下一步是設置同步數據庫的用戶賬號
mysql> GRANT REPLICATION SLAVE ON *.*
-> TO ‘備份用戶名'@'只能從這個IP登錄' IDENTIFIED BY ‘備份用戶密碼';
MYSQL數據庫設置好以后,重啟一下數據庫服務.
B、鎖定現有的數據,并將數據備份
數據庫鎖定的命令是:
mysql> FLUSH TABLES WITH READ LOCK;
然后進入mysql的data目錄,然后打包你需要備份的數據庫目錄.
C、現在可以查看主服務器的狀態了:
命令如下:
mysql> show master status\G;
返回結果會是這樣的
+―――――+―――-+――――C+――――――+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+―――――+―――-+――――C+――――――+
| mysql-bin.003 | 73 | test | manual,mysql |
+―――――+―――-+――――C+――――――+
當然,這個表,顯示了你剛才在MY.INI中寫入的配置.
然后解鎖數據庫:
mysql> UNLOCK TABLES;
MYSQL數據庫4、從服務器設置
還是和剛才一樣,修改數據庫配置文件,即MY.INI
配置詳情如下:
server-id=n //設置數據庫id默認主服務器是1可以隨便設置但是如果有多臺從服務器則不能重復.
master-host=db-master.mycompany.com //主服務器的IP地址或者域名
master-port=3306 //主數據庫的端口號
master-user=pertinax //同步數據庫的用戶
master-password=freitag //同步數據庫的密碼
master-connect-retry=60 //如果從服務器發現主服務器斷掉,重新連接的時間差
report-host=db-slave.mycompany.com //報告錯誤的服務器
MYSQL數據庫然后將你剛才打包的數據庫文件拷貝到你的從數據庫目錄中.
重啟從數據庫服務器.
然后停止SLAVE的服務
MYSQL數據庫mysql> slave stop; //停止slave的服務
MYSQL數據庫停止之后,還是在mysql提示符下,設置主服務器的各種參數
命令如下:
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服務器的IP地址
-> MASTER_USER='replication_user_name', //同步數據庫的用戶
-> MASTER_PASSWORD='replication_password', //同步數據庫的密碼
-> MASTER_LOG_FILE='recorded_log_file_name', //主服務器二進制日志的文件名(前面要求記住的參數)
-> MASTER_LOG_POS=recorded_log_position; //日志文件的開始位置(前面要求記住的參數)
MYSQL數據庫然后啟動同步數據庫的進程
mysql> slave start;
MYSQL數據庫沒有意外的話基本上到這一步,雙庫同步就已經實現了.
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/6355.html