MySQL的主從復(fù)制Replication之MyIsam和InnoDB數(shù)據(jù)復(fù)制發(fā)布 |
發(fā)布時間: 2012/9/20 16:56:53 |
MyIsam發(fā)布相對簡單,把庫下面所有文件拷過去就好了。復(fù)制Innodb的做法和MyIsam類似,只不過Innodb引擎下的表的數(shù)據(jù)內(nèi)容不再是存在同一的數(shù)據(jù)庫目錄下(MyIsam就是這么做的),Innodb引擎下,數(shù)據(jù)文件存放在ibdata1這樣的文件里,而操作的log默認(rèn)存放在ib_logfile0、ib_logfile1、ib_logfile2這樣的文件中。 1、主庫上,執(zhí)行FLUSH TABLES WITH READ LOCK語句清空所有表和塊寫入語句:(當(dāng)然也可以把數(shù)據(jù)庫stop掉) 2、得到主庫當(dāng)前記錄點(diǎn)
4、主庫:確認(rèn)文件已經(jīng)生成拷貝了。
2.啟動從服務(wù)器 3.在從服務(wù)器上設(shè)置主服務(wù)器信息 4.啟動復(fù)制 5.查看復(fù)制狀態(tài) 在Innodb的情況下: 再重新啟動從庫的slave。 mysql> show slave status\G; Master_Log_File: mysql-netprws_test-bin.000010 …… 二者有為NO的,一般都是由于Master_Log_File或者Read_Master_Log_Pos的設(shè)置問題,還有就是網(wǎng)絡(luò)問題了。通常到這里應(yīng)該就OK了,如果還有問題,需要根據(jù)show slave status\G中看到的錯誤代碼和錯誤提示再進(jìn)行定位了。 另外從庫的my.cnf中有一個設(shè)置建議用上。 這個屬性打開很有必要,可以防止很多人為修改從庫導(dǎo)致從庫同步失敗的問題。 采用 binlog 的方法相對來說更靈活,省心省力,而且還可以支持增量備份。 啟用 binlog 時必須要重啟 mysqld。首先,關(guān)閉 mysqld,打開 my.cnf,加入以下幾行: server-id = 1 需要備份時,可以先執(zhí)行一下 SQL 語句,讓 mysqld 終止對當(dāng)前 binlog的寫入,就可以把文件直接備份,這樣的話就能達(dá)到增量備份的目的了: FLUSH LOGS;如果是備份復(fù)制系統(tǒng)中的從服務(wù)器,還應(yīng)該備份master.info 和 relay-log.info 文件。備份出來的 binlog 文件可以用 MySQL 提供的工具 mysqlbinlog 來查看,如:/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001該工具允許你顯示指定的數(shù)據(jù)庫下的所有SQL 語句,并且還可以限定時間范圍,相當(dāng)?shù)姆奖,詳?xì)的請查看手冊。 恢復(fù)時,可以采用類似以下語句來做到: /usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 | mysql -uyejr -pyejr db_name把 mysqlbinlog 輸出的 SQL 語句直接作為輸入來執(zhí)行它。
本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |