InnoDB和MySQL復(fù)制 |
發(fā)布時間: 2012/8/26 15:59:22 |
MySQL復(fù)制就像對MyISAM表一樣,也對InnoDB表起作用。以某種方式使用復(fù)制也是可能的,在這種方式中從服務(wù)器上表的類型不同于主服務(wù)器上原始表的類型。例如,你可以復(fù)制修改到主服務(wù)器上一個InnoDB表,到從服務(wù)器上一個MyISAM表里。
要為一個主服務(wù)器建立一個新服務(wù)器,你不得不復(fù)制InnoDB表空間和日志文件,以及InnoDB表的.frm文件,并且移動復(fù)件到從服務(wù)器。關(guān)于其恰當(dāng)步驟請參閱15.2.9節(jié),“移動InnoDB數(shù)據(jù)庫到另一臺機器”。
如果你可以關(guān)閉主服務(wù)器或者一個存在的從服務(wù)器。你可以采取InnoDB表空間和日志文件的冷備份,并用它來建立一個從服務(wù)器。要不關(guān)閉任何服務(wù)器來建立一個新的從服務(wù)器,你也可以使用非免費(商業(yè)的)InnoDB熱備份工具。
InnoDB復(fù)制里一個小的限制是LOAD TABLE FROM MASTER不對InnoDB類型表起作用。有兩種可能的工作區(qū): · 轉(zhuǎn)儲主服務(wù)器上的表并導(dǎo)入轉(zhuǎn)儲文件到從服務(wù)器。 · 在用LOAD TABLE tbl_name FROM MASTER建立復(fù)制之前,在主服務(wù)器上使用ALTER TABLEtbl_name TYPE=MyISAM,并且隨后使用ALTER TABLE把主表轉(zhuǎn)換回InnoDB。
在主服務(wù)器失敗的事務(wù)根本不影響復(fù)制。MySQL復(fù)制基于二進制日志,MySQ在那里寫修改數(shù)據(jù)的SQL語句。從服務(wù)器讀主服務(wù)器的二進制日志,并執(zhí)行同樣的SQL語句。盡管如此,在事務(wù)里發(fā)生的語句不被寫進二進制日志直到事務(wù)提交,在那一刻,事務(wù)里所有語句被一次性寫進日志。如果語句失敗了,比如,因為外鍵違例,或者,如果事務(wù)被回滾,沒有SQL語句被寫進二進制日志,并且事務(wù)根本不在從服務(wù)器上執(zhí)行。 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |