將 MySQL 5.0 Master 複製到 5.5 Slave?
我們正在計劃進行一系列伺服器/軟體升級並且很好奇。
我們有一個執行 MySQL 5.0 的 RHEL5 安裝,我們希望將其複製到執行 CentOS 6 和 MySQL 5.5 的新(虛擬化)伺服器。然後,在未來,我們會將 RHEL5 機器升級到 CentOS6 和 MySQL5.5。如果可能,我們希望首先進行此複製。
所以簡短的問題是,有沒有人嘗試將 MySQL 5.0 主伺服器複製到 5.5 從伺服器?
我已經為我雇主的客戶做了幾十次。事實上,我一周前才這樣做。客戶端使用的是 MySQL 5.0.81,並且在 InnoDB 中性能下降。
我創建了一個新的數據庫集群
- 執行 MySQL 5.5.27
- 兩個數據庫伺服器(ServerA 和 ServerB)
- 為多核參與配置 InnoDB
主/從(ServerA Master 和 ServerB Slave)
我在生產的 Slave 上啟用了二進制日誌記錄和log_slave_updates
mysqldump 所有數據庫(除了 mysql 模式)從生產的 Slave 到 /root/MySQLData.sql
在生產的主伺服器上執行pt-show-grants到 /root/MySQLGrants.sql
使用 /root/MySQLGrants.sql 載入 ServerA
使用 /root/MySQLData.sql 載入 ServerA
我從生產的 Slave (MySQL 5.0.81) 複製到 ServerA (MySQL 5.5.27)
剩下要做的就是
- 讓客戶端關閉應用程序
- 從執行 MySQL 5.0.81 的 Master 中刪除 DBVIP
- 在執行 MySQL 5.5.27 的 Master 上啟動 DBVIP
- 讓客戶端啟動應用程序
結論
MySQL 5.5 可以處理以前主要版本的複制,而不是相反。
我以前討論過這個
Feb 04, 2011
: MySQL master binlog 損壞Jun 09, 2011
: Yum 將 mysql 從 5.1 更新到 5.5Feb 08, 2012
:從 5.5.20 到 5.0.XX 伺服器的複制會起作用嗎?好消息 !!!
我已經在 2012 年 2 月 6 日回復了一篇文章(如何在 MySQL 5.5.20 中設置複製(主/從)?),其中包含您需要的所有步驟。
順便說一句,關於將 MYSQL 授權轉儲為 SQL 命令的步驟,這是我個人對 pt-show-grants 的模擬:
mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user<>''" | mysql -hhostaddr -umyuserid -pmypassword --skip-column-names -A | sed 's/$/;/g' > MySQLUserGrants.sql
試一試 !!!
更新 2012-11-27 11:07 EDT
如果您決定將兩個數據庫伺服器設置為主/主伺服器,我想添加我為設置循環複製所做的其他文章
Sep 24, 2012
:在現有的複制拓撲中設置 MySQL 循環複製?May 07, 2012
:在 mysql 中設置循環複製