2010-07-07 124 views
5

我正在通過binlog設置MySQL複製。這是一個主/從設置。MySQL複製最佳實踐

我對如何以最佳方式做到這一點有幾個問題。

  1. 應該複製information_schema,如果是/否,爲什麼?
  2. 應該複製mysql db,如果是/否,爲什麼?
  3. 如果全部都應該被複制,那麼不需要設置binlog-do-db?

乾杯。

回答

13
  1. 不,信息架構不應該被複制。這是關於您的表,dbs,例程,觸發器等的元數據。讓服務器填充它自己的information_schema。
  2. mysql db可以很好的複製,特別是在你要設置許多用戶的情況下。如果您的主服務器出現故障,您需要在從服務器上提供相同的用戶信息才能故障切換。如果發生這種情況,您需要擁有相同的權限。
  3. 僅列出要用binlog-do-db複製的數據庫。如果您沒有列出任何內容,則默認情況下會複製所有內容。
+0

那麼意思'binlog-do-db'必須定義?我有大量的數據庫需要複製,我不希望將它們列出 – conandor 2011-12-27 02:55:31

+6

對INFORMATION_SCHEMA的更改不會寫入二進制日誌。它不是一個「真正的」數據庫,它只是一個關於內部元數據的方便的表格封裝,所以沒有發生實際的INSERT/UPDATE/DELETE操作。絕對沒有理由爲INFORMATION_SCHEMA包含binlog-ignore-db或relay-ignore-db,並且許多原因*不包含複製過濾器,尤其是不必要的複製過濾器。 – 2012-01-22 23:42:33

+0

如果實際使用binlog-do-db,請記住跨數據庫查詢不起作用。 如果我不需要在只共享一個生產數據庫的服務器上,我更喜歡不使用binlog-do-db。 請參閱文檔以獲取解釋:http://dev.mysql.com/doc/refman/5.5/en/replication-options-binary-log.html#option_mysqld_binlog-do-db – warden 2012-08-22 21:39:39