2013-12-19 59 views
0

我可以爲主服務器中的每個數據庫提供不同類型的複製嗎? 例如:在同一個MySQL服務器中有兩個數據庫(DB 1,DB 2)..我需要給予DB 1 - >基於語句的複製和DB 2 - >基於行的複製。每個數據庫的不同複製類型MySQL

PS:我試圖使用混合複製..但我有一些問題..因爲有很多觸發器(所以我需要基於語句),我需要在某些情況下基於行。

回答

0

您不能對數據庫級別進行此類設置,此設置僅在服務器級別工作,您必須在my.cnf文件中指定。

優點基於語句複製寫入日誌文件

  • 較少的數據。當更新或刪除操作影響很多行時,這會導致日誌文件所需的存儲空間少得多。這也意味着可以更快地完成備份和恢復。

  • 日誌文件包含所有進行更改的語句,因此它們可用於審計數據庫。基於行的複製

優勢

  • 所有更改都可以被複制。這是最安全的複製形式。

對於MySQL版本5.1.14相比更早,DDL(數據定義語言)語句,例如CREATE TABLE使用基於語句的複製被複制,而DML語句,以及GRANT和REVOKE語句,使用行復制基於複製。

  • 在MySQL 5.1.14和更高版本中,不會複製mysql數據庫。 mysql數據庫被視爲一個特定於節點的數據庫。此數據庫中的表不支持基於行的複製。相反,通常會更新此信息的語句(例如GRANT,REVOKE和觸發器的操作,存儲例程(包括存儲過程)以及視圖)都將使用基於語句的複製複製到從屬設備。
  • 對於像CREATE TABLE ... SELECT這樣的語句,將從表定義中生成CREATE語句,並使用基於語句的格式進行復制,而行插入則使用基於行的格式進行復制。
  • 該技術與大多數其他數據庫管理系統相同;關於其他系統轉移到MySQL的知識。
  • 對於以下類型的語句,主節點上需要更少的行鎖,從而實現更高的併發性:INSERT ... SELECT 帶有AUTO_INCREMENT的INSERT語句 使用WHERE子句的UPDATE或DELETE語句不使用鍵或做不會改變大多數被檢查的行。 對於任何INSERT,UPDATE或DELETE語句,從站都需要更少的行鎖。

欲瞭解更多信息,請參閱: http://dev.mysql.com/doc/refman/5.1/en/replication-sbr-rbr.html

相關問題