Mysql
MySql 複製與原始數據和 InnoDB 表
我想在具有許多 InnoDB 表和 MyISAM 表的數據庫上開始複製。我按照手冊Creating a Data Snapshot Using Raw Data Files做了所有事情。
首先,我嘗試在沒有ib_logfile和ibdata的情況下複製所有帶有中繼日誌等的表文件。複製不起作用,它找不到 InnoDB 表,之後我嘗試對ib_logfile和ibdata做同樣的事情,它失敗並出現錯誤消息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 以最少的停機時間執行伺服器的文章。
- 如何將數據庫從一台伺服器移動到另一台伺服器?
- MySQL 社區版:我可以一次將我的整個伺服器與另一台伺服器複製嗎?
- https://serverfault.com/questions/257394/create-a-mysql-slave-from-another-slave-but-point-it-at-the-master/257426#257426
- MySQL InnoDB 日誌“將來”有什麼更好的方法嗎?(見選項 02)
只要確保
- 在 Master 上啟用二進制日誌記錄
- 你將 /etc/my.cnf 從 master 複製到新的 slave
- 更改從屬伺服器的 my.cnf 中的 server-id