Mysql

MySql 複製與原始數據和 InnoDB 表

  • September 7, 2017

我想在具有許多 InnoDB 表和 MyISAM 表的數據庫上開始複製。我按照手冊Creating a Data Snapshot Using Raw Data Files做了所有事情。

首先,我嘗試在沒有ib_logfileibdata的情況下複製所有帶有中繼日誌等的表文件。複製不起作用,它找不到 InnoDB 表,之後我嘗試對ib_logfileibdata做同樣的事情,它失敗並出現錯誤消息Error ‘Unknown table engine ‘InnoDB’’ on opening tables

當我試圖從原始伺服器複製 my.cnf 時,mysql 根本無法啟動(版本 5.1.41)。

我不確定是否可以使用原始數據和 InnoDb 文件開始複製。拜託,如果你有經驗,請與我分享。我該如何處理。

謝謝!

當你得到’Unknown table engine INNODB’時,這意味著啟動錯誤。如果您查看錯誤日誌,您應該能夠獲得更多資訊。

我的第一直覺是您的 ib_logfile 在您的主伺服器上的大小與從伺服器中配置的大小不同。如果您停止從伺服器,在設置從伺服器時從快照中刪除 ib_logfile,然後重新啟動 mysql,它應該會自行糾正。

**注意:**不要刪除 ibdata 文件!只有 ib_logfiles

嘗試使用 rysnc,而不是使用 tar 方法。

我寫過關於如何使用 rsync 以最少的停機時間執行伺服器的文章。

只要確保

  • 在 Master 上啟用二進制日誌記錄
  • 你將 /etc/my.cnf 從 master 複製到新的 slave
  • 更改從屬伺服器的 my.cnf 中的 server-id

引用自:https://dba.stackexchange.com/questions/10895