本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 My 設定延遲複寫SQL
您可以將延遲複寫做為災難復原的策略。利用延遲複寫功能來指定最短時間 (以秒為單位),即可延遲來源到僅供讀取複本的複寫作業。在發生損毀之時 (例如不小心刪除資料表),若要快速完成事後復原作業,則請執行下列步驟:
-
停止僅供讀取複本的複寫作業,以免系統將造成損毀的變更內容傳送到該複本。
使用 mysql.rds_stop_replication 預存程序來停止複寫作業。
-
啟動複寫作業並指定日誌檔案位置,則當系統複寫到該位置時,即會自動停止作業。
透過 mysql.rds_start_replication_until 預存程式,藉此在發生損毀前指定日誌檔案位置。
-
若要將僅供讀取複本提升為新的來源資料庫執行個體,請參照提升僅供讀取複本為獨立的資料庫執行個體中的指示。
注意
-
在 RDS for MySQL 8.4 上,MySQL 8.4.3 和更新版本支援延遲複寫。在 RDS for MySQL 8.0 上,MySQL 8.0.28 和更新版本支援延遲複寫。在 RDS for MySQL 5.7 上,MySQL 5.7.44 和更新版本支援延遲複寫。
-
使用預存程序來設定延遲複寫。您無法使用 AWS Management Console、 AWS CLI或 Amazon RDS 設定延遲複寫API。
-
您可以在下列版本的延遲複寫組態中使用基於全域交易識別符 (GTIDs) 的複寫:
-
RDS 適用於 MySQL 5.7.44 版和更新的 5.7 版
-
RDS for MySQL 8.0.28 版和更新版本 8.0
-
RDS for MySQL 8.4.3 版和更新版本 8.4
如果您使用 GTID型複寫,請使用mysql.rds_start_replication_until_gtid 預存程序,而非預mysql.rds_start_replication_until 存程序。如需 GTID型複寫的詳細資訊,請參閱 使用 GTID型複寫。
-
在僅供讀取複本建立期間設定延遲複寫
若要為任何未來從資料庫執行個體建立的僅供讀取複本設定延遲複寫,請利用 mysql.rds_set_configuration 參數來執行 target delay
預存程序。
在僅供讀取複本建立期間設定延遲複寫
-
使用 MySQL 用戶端,連線至 MySQL 資料庫執行個體,以做為主要使用者的僅供讀取複本來源。
-
利用 mysql.rds_set_configuration 參數來執行
target delay
預存程序。例如,您可以執行下列預存程序,藉此設定複寫至少會延遲一小時 (3600 秒),並將該設定套用至目前資料庫執行個體所建立的任何僅供讀取複本。
call mysql.rds_set_configuration('target delay', 3600);
注意
執行此預存程序後,您使用 AWS CLI 或 Amazon 建立的任何僅供讀取複本RDSAPI都會設定為複寫延遲指定的秒數。
修改現有僅供讀取複本的延遲複寫
若要修改現有僅供讀取複本的延遲複寫,請執行 mysql.rds_set_source_delay 預存程序。
修改現有僅供讀取複本的延遲複寫
-
使用 MySQL 用戶端,以主要使用者身分連線至僅供讀取複本。
-
使用 mysql.rds_stop_replication 預存程序來停止複寫作業。
-
執行 mysql.rds_set_source_delay 預存程序。
例如,您可以執行下列預存程序,藉此設定複寫至少會延遲一小時 (3600 秒),並將該設定套用至僅供讀取複本。
call mysql.rds_set_source_delay(3600);
-
使用 mysql.rds_start_replication 預存程序來啟動複寫作業。
設定位置以停止僅供讀取複本的複寫作業
停止僅供讀取複本的複寫作業後,您可以使用 mysql.rds_start_replication_until 預存程序來啟動複寫,然後在特定的二進位日誌檔案位置停止複寫。
啟動僅供讀取複本的複寫作業,並在特定位置停止複寫
-
使用 MySQL 用戶端,以主要使用者身分連線至來源 MySQL 資料庫執行個體。
-
執行 mysql.rds_start_replication_until 預存程序。
以下範例會啟動複寫並複寫變更,直到達到
120
二進位日誌檔案中的位置mysql-bin-changelog.000777
為止。若要使用災難復原功能,請在發生損毀前將位置預設為120
。call mysql.rds_start_replication_until( 'mysql-bin-changelog.000777', 120);
達到停止點時,複寫作業即會自動停止。會產生下列RDS事件:Replication has been stopped since the replica reached the stop point specified by the rds_start_replication_until stored procedure
。
提升僅供讀取複本
使用災難復原功能時,您可以參照中的指示,在複寫作業停止後將僅供讀取複本提升為新的來源資料庫執行個體。如需提升僅供讀取複本的相關資訊,請參閱 提升僅供讀取複本為獨立的資料庫執行個體。