設定和顯示二進位日誌組態 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定和顯示二進位日誌組態

下列預存程序會設定並顯示組態參數,例如二進位日誌檔案保留。

mysql.rds_set_configuration

指定保留二進位日誌的小時數,或延遲複寫的秒數。

語法

CALL mysql.rds_set_configuration(name,value);

參數

name

要設定之組態參數的名稱。

value

組態參數的值。

使用須知

mysql.rds_set_configuration 程序支援下列組態參數:

組態參數會永久存放,且在任何資料庫執行個體重新啟動或容錯移轉後依然存在。

binlog 保留 (小時)

binlog retention hours 參數用於指定保留二進位日誌檔的小時數。Amazon RDS通常會盡快清除二進位日誌,但使用 外部的 MySQL 資料庫進行複寫時,仍可能需要二進位日誌RDS。

binlog retention hours 的預設值為 NULL。對於 RDS for MySQL, NULL表示不會保留二進位日誌 (0 小時)。

若要指定在資料庫執行個體上保留二進位日誌的時數,請使用 mysql.rds_set_configuration 預存程序,並指定讓複寫有足夠時間進行的期間,如下列範例所示。

call mysql.rds_set_configuration('binlog retention hours', 24);

注意

不可針對 binlog retention hours 使用值 0

對於我的SQL資料庫執行個體,binlog retention hours最大值為 168 (7 天)。

設定保留期間之後,請監控資料庫執行個體的儲存體用量,確定保留的二進位日誌沒有佔用太多儲存體。

對於多可用區域資料庫叢集部署,您只能從寫入器資料庫執行個體設定二進位日誌保留,而且設定會以非同步方式傳播到所有讀取器資料庫執行個體。如果資料庫叢集上的二進位日誌超過本機儲存空間總數的一半,Amazon RDS會自動將過時日誌移至EBS磁碟區。不過,最新的日誌會保留在本機儲存體中,因此如果發生需要主機替換的故障,或者您向上或向下擴展資料庫,它們可能會遺失。

來源延遲

在僅供讀取複本中使用 source delay 參數,來指定延遲幾秒後僅供讀取複本才會複寫至其來源資料庫執行個體。Amazon RDS通常會盡快複寫變更,但您可能希望某些環境延遲複寫。例如,當延遲複寫時,您可以將延遲的僅供讀取複本向前捲動到災難發生的時間點之前。若資料表被意外的捨棄,您可以使用延遲的複寫快速將其復原。target delay 的預設值為 0 (不延遲複寫)。

當您使用此參數時,它會執行mysql.rds_set_source_delay並套用CHANGE主要 TO MASTER_DELAY = 輸入值。如果成功,程序會將 source delay 參數儲存到 mysql.rds_configuration 資料表。

若要指定 Amazon RDS延遲複寫至來源資料庫執行個體的秒數,請使用mysql.rds_set_configuration預存程序並指定延遲複寫的秒數。在下列範例中,複寫會延遲至少一小時 (3,600 秒)。

call mysql.rds_set_configuration('source delay', 3600);

此程序接著執行 mysql.rds_set_source_delay(3600)

source delay 參數的限制為一日 (86400 秒)。

目標延遲

使用 target delay 參數指定資料庫執行個體與從此執行個體建立的任何未來 RDS受管僅供讀取複本之間的延遲複寫秒數。僅供 non-RDS-managed讀取複本會忽略此參數。Amazon RDS通常會盡快複寫變更,但您可能希望某些環境延遲複寫。例如,當延遲複寫時,您可以將延遲的僅供讀取複本向前捲動到災難發生的時間點之前。若資料表被意外的捨棄,您可以使用延遲的複寫快速將其復原。target delay 的預設值為 0 (不延遲複寫)。

進行災難復原時,您可以使用此組態參數搭配 mysql.rds_start_replication_until 預存程序或 mysql.rds_start_replication_until_gtid 預存程序。若要將延遲的僅供讀取複本向前捲動到災難發生前的時間點,您可執行 mysql.rds_set_configuration 程序搭配此參數集。在 mysql.rds_start_replication_untilmysql.rds_start_replication_until_gtid 程序停止複寫後,您可使用提升僅供讀取複本為獨立的資料庫執行個體中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。

若要使用 mysql.rds_rds_start_replication_until_gtid 程序,必須啟用 GTID型複寫。若要略過已知會導致災難的特定 GTID型交易,您可以使用mysql.rds_skip_transaction_with_gtid 預存程序。如需使用 GTID型複寫的詳細資訊,請參閱 使用 GTID型複寫

若要指定 Amazon RDS延遲複寫至僅供讀取複本的秒數,請使用mysql.rds_set_configuration預存程序並指定延遲複寫的秒數。下列範例指定了已延遲至少一小時 (3600 秒) 的複寫。

call mysql.rds_set_configuration('target delay', 3600);

target delay 參數的限制為一日 (86400 秒)。

mysql.rds_show_configuration

保留二進位日誌的時數。

語法

CALL mysql.rds_show_configuration;

使用須知

若要驗證 Amazon RDS保留二進位日誌的時數,請使用mysql.rds_show_configuration預存程序。

範例

下列範例顯示保留期間:

call mysql.rds_show_configuration; name value description binlog retention hours 24 binlog retention hours specifies the duration in hours before binary logs are automatically deleted.