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