本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 [我的] 啟用現有僅供讀取複本的GTIDRDS基礎複寫 SQL
對於具有不使用GTID基於複寫的僅供讀取複本的現有 My SQL DB 執行個體,您可以在資料庫執行個體和僅供讀取複本之間設定GTID基於複寫。
啟用現有僅供讀取複本的GTID基礎複寫
-
如果資料庫執行個體或任何僅供讀取複本使用 8.0 版本的 My SQL 版本低RDS於 8.0.26,請將資料庫執行個體或僅供讀取複本升級至 8.0.26 或更高版本的 My 8.0 版本。SQL「我RDS的 SQL 5.7」版本的全部支援GTID基於複寫。
如需詳細資訊,請參閱RDS 適用於 MySQL 資料庫引擎的 升級。
-
(選擇性) 重設GTID參數並測試資料庫執行個體和僅供讀取複本的行為:
-
確定與資料庫執行個體和每個僅供讀取複本相關聯的參數群組有設定為
enforce_gtid_consistency
的WARN
參數。如需使用參數群組設定組態參數的詳細資訊,請參閱 的參數組 RDS。
-
如果已變更資料庫執行個體的參數群組,請重新啟動資料庫執行個體。如果已變更僅供讀取複本的參數群組,請重新啟動僅供讀取複本。
如需更多詳細資訊,請參閱 重新啟動中的資料庫執行個體。
-
對於一般的工作負載執行資料庫執行個體和僅供讀取複本,並監視日誌檔案。
如果您看到與GTID不相容交易有關的警告,請調整您的應用程式,使其僅使用與相GTID容的功能。繼續進行下一個步驟之前,請確定資料庫執行個體未產生任何與不GTID相容交易有關的警告。
-
-
重設GTID基於型複寫的GTID參數,以允許匿名交易,直到僅供讀取複本處理完所有交易為止。
-
確定與資料庫執行個體有關的參數群組和每個僅供讀取複本有下列參數設定:
-
gtid_mode
–ON_PERMISSIVE
-
enforce_gtid_consistency
–ON
-
-
如果已變更資料庫執行個體的參數群組,請重新啟動資料庫執行個體。如果已變更僅供讀取複本的參數群組,請重新啟動僅供讀取複本。
-
-
等候全部的匿名交易完成複寫。若要檢查這些是否已複寫,請執行下列動作:
-
對於來源資料庫執行個體執行下列陳述式。
SHOW MASTER STATUS;
請注意
File
和Position
欄中的值。 -
對於每個僅供讀取複本,在上一個步驟中使用來源執行個體的檔案和位置資訊來執行下列查詢。
SELECT MASTER_POS_WAIT('
file
',position
);例如,如果檔案名稱是
mysql-bin-changelog.000031
,而且位置是107
,則執行下列陳述式。SELECT MASTER_POS_WAIT('mysql-bin-changelog.000031', 107);
如果僅供讀取複本已超過指定的位置,會立即傳回查詢。否則,該函式會等候一段時間。所有僅供讀取複本的查詢傳回時,繼續進行下一個步驟。
-
-
僅重設以GTID基礎為基礎之複製的GTID參數。
-
確定與資料庫執行個體有關的參數群組和每個僅供讀取複本有下列參數設定:
-
gtid_mode
–ON
-
enforce_gtid_consistency
–ON
-
-
重新啟動資料庫執行個體和每個僅供讀取複本。
-
-
在每個僅供讀取複本上,執行下列程序。
CALL mysql.rds_set_master_auto_position(1);