InnoDB和MySQL復制 |
發布時間: 2012/8/26 15:59:22 |
MySQL復制就像對MyISAM表一樣,也對InnoDB表起作用。以某種方式使用復制也是可能的,在這種方式中從服務器上表的類型不同于主服務器上原始表的類型。例如,你可以復制修改到主服務器上一個InnoDB表,到從服務器上一個MyISAM表里。
要為一個主服務器建立一個新服務器,你不得不復制InnoDB表空間和日志文件,以及InnoDB表的.frm文件,并且移動復件到從服務器。關于其恰當步驟請參閱15.2.9節,“移動InnoDB數據庫到另一臺機器”。
如果你可以關閉主服務器或者一個存在的從服務器。你可以采取InnoDB表空間和日志文件的冷備份,并用它來建立一個從服務器。要不關閉任何服務器來建立一個新的從服務器,你也可以使用非免費(商業的)InnoDB熱備份工具。
InnoDB復制里一個小的限制是LOAD TABLE FROM MASTER不對InnoDB類型表起作用。有兩種可能的工作區: · 轉儲主服務器上的表并導入轉儲文件到從服務器。 · 在用LOAD TABLE tbl_name FROM MASTER建立復制之前,在主服務器上使用ALTER TABLEtbl_name TYPE=MyISAM,并且隨后使用ALTER TABLE把主表轉換回InnoDB。
在主服務器失敗的事務根本不影響復制。MySQL復制基于二進制日志,MySQ在那里寫修改數據的SQL語句。從服務器讀主服務器的二進制日志,并執行同樣的SQL語句。盡管如此,在事務里發生的語句不被寫進二進制日志直到事務提交,在那一刻,事務里所有語句被一次性寫進日志。如果語句失敗了,比如,因為外鍵違例,或者,如果事務被回滾,沒有SQL語句被寫進二進制日志,并且事務根本不在從服務器上執行。 本文出自:億恩科技【www.laynepeng.cn】 |