在 Aurora 中使用寫轉發我的SQL全域資料庫 - Amazon Aurora

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

在 Aurora 中使用寫轉發我的SQL全域資料庫

我的 Aurora 中寫入轉發的區域和版本可用性 SQL

Aurora My SQL 2.08.1 及更高版本支援寫入轉送,在每個可使用 Aurora 我SQL的全域資料庫的區域中。

如需 Aurora My SQL 全域資料庫的版本和區域可用性的相關資訊,請參閱Aurora 全球數據庫與我的 Aurora SQL

在我的 Aurora 中啟用寫轉發 SQL

根據預設,當您將次要叢集新增至 Aurora 全域資料庫時,不會啟用寫入轉送。

若要使用啟用寫入轉送 AWS Management Console,請在新增全域資料庫的區域時,選取 [僅供讀取複本寫入轉送] 下的 [開啟全域寫入轉送] 核取方塊。對於現有的次要叢集,請將叢集修改為開啟全域寫入轉送。若要關閉寫入轉送,請在新增區域或修改次要叢集時,清除開啟全域寫入轉送核取方塊。

若要使用啟用寫入轉寄功能 AWS CLI,請使用--enable-global-write-forwarding選項。當您使用 create-db-cluster 命令建立新的次要叢集時,此選項會起作用。當您使用 modify-db-cluster 命令修改現有的次要叢集時,此選項也會起作用。其要求全域資料庫使用支援寫入轉送的 Aurora 版本。您可以使用這些相同CLI指令的--no-enable-global-write-forwarding選項來關閉寫入轉寄功能。

若要使用 Amazon 啟用寫入轉送功能 RDSAPI,請將EnableGlobalWriteForwarding參數設定為true。當您使用 CreateDBCluster 操作建立新的次要叢集時,此參數會起作用。當您使用 ModifyDBCluster 操作修改現有的次要叢集時,此選項也會起作用。其要求全域資料庫使用支援寫入轉送的 Aurora 版本。您可以將 EnableGlobalWriteForwarding 參數設定為 false 來關閉寫入轉送。

注意

若要讓資料庫執行階段使用寫入轉送,請指定 aurora_replica_read_consistency 組態參數的設定。在使用寫入轉送功能的每個工作階段中執行這項操作。如需此參數的相關資訊,請參閱 在 Aurora My 中寫入轉發的隔離和一致性 SQL

RDS代理功能不支援aurora_replica_read_consistency變數的SESSION值。設定此值可能會導致未預期的行為。

下列CLI範例顯示如何在啟用或停用寫入轉送的情況下設定 Aurora 全域資料庫。反白顯示的項目代表在設定 Aurora 全域資料庫的基礎設施時,要保持一致的重要指定指令和選項。

下列範例會建立 Aurora 全域資料庫、主要叢集和啟用寫入轉送的次要叢集。將您自己的選擇替換為使用者名稱、密碼以及主要和次要 AWS 區域。

# Create overall global database. aws rds create-global-cluster --global-cluster-identifier write-forwarding-test \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-east-1 # Create primary cluster, in the same AWS Region as the global database. aws rds create-db-cluster --global-cluster-identifier write-forwarding-test \ --db-cluster-identifier write-forwarding-test-cluster-1 \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --master-username user_name --master-user-password password \ --region us-east-1 aws rds create-db-instance --db-cluster-identifier write-forwarding-test-cluster-1 \ --db-instance-identifier write-forwarding-test-cluster-1-instance-1 \ --db-instance-class db.r5.large \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-east-1 aws rds create-db-instance --db-cluster-identifier write-forwarding-test-cluster-1 \ --db-instance-identifier write-forwarding-test-cluster-1-instance-2 \ --db-instance-class db.r5.large \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-east-1 # Create secondary cluster, in a different AWS Region than the global database, # with write forwarding enabled. aws rds create-db-cluster --global-cluster-identifier write-forwarding-test \ --db-cluster-identifier write-forwarding-test-cluster-2 \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-east-2 \ --enable-global-write-forwarding aws rds create-db-instance --db-cluster-identifier write-forwarding-test-cluster-2 \ --db-instance-identifier write-forwarding-test-cluster-2-instance-1 \ --db-instance-class db.r5.large \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-east-2 aws rds create-db-instance --db-cluster-identifier write-forwarding-test-cluster-2 \ --db-instance-identifier write-forwarding-test-cluster-2-instance-2 \ --db-instance-class db.r5.large \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-east-2

下列範例會從前一個範例繼續。此範例會建立一個沒有啟用寫入轉送的次要叢集,然後啟用寫入轉送。完成此範例之後,全域資料庫中的所有次要叢集都已啟用寫入轉送。

# Create secondary cluster, in a different AWS Region than the global database, # without write forwarding enabled. aws rds create-db-cluster --global-cluster-identifier write-forwarding-test \ --db-cluster-identifier write-forwarding-test-cluster-2 \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-west-1 aws rds create-db-instance --db-cluster-identifier write-forwarding-test-cluster-2 \ --db-instance-identifier write-forwarding-test-cluster-2-instance-1 \ --db-instance-class db.r5.large \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-west-1 aws rds create-db-instance --db-cluster-identifier write-forwarding-test-cluster-2 \ --db-instance-identifier write-forwarding-test-cluster-2-instance-2 \ --db-instance-class db.r5.large \ --engine aurora-mysql --engine-version 5.7.mysql_aurora.2.11.1 \ --region us-west-1 aws rds modify-db-cluster --db-cluster-identifier write-forwarding-test-cluster-2 \ --region us-east-2 \ --enable-global-write-forwarding

檢查次要叢集是否已在我的 Aurora 中啟用寫入轉送 SQL

若要判斷是否可以從次要叢集使用寫入轉送,您可以檢查叢集是否具有屬性 "GlobalWriteForwardingStatus": "enabled"

在 AWS Management Console叢集詳細資料頁面的 [組態] 索引標籤上,您會看到 [已啟用全域僅供讀取複本寫入轉送] 狀態。

若要查看所有叢集的全域寫入轉送設定狀態,請執行下列 AWS CLI 命令。

次要叢集會顯示值 "enabled""disabled",指出寫入轉送是開啟或關閉。null 值表示該叢集無法使用寫入轉送。此叢集不屬於全域資料庫,或是主要叢集,而是次要叢集。如果寫入轉送處於開啟或關閉的程序中,此值也可以 "enabling""disabling"

aws rds describe-db-clusters \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,GlobalWriteForwardingStatus:GlobalWriteForwardingStatus}' [ { "GlobalWriteForwardingStatus": "enabled", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-1" }, { "GlobalWriteForwardingStatus": "disabled", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-2" }, { "GlobalWriteForwardingStatus": null, "DBClusterIdentifier": "non-global-cluster" } ]

若要尋找已啟用全域寫入轉送的次要叢集,請執行下列命令。此命令也會傳回叢集的讀取者端點。當您使用寫入轉送從 Aurora 全域資料庫的次要叢集到主要叢集時,您可以使用次要叢集的讀取者端點。

範例
aws rds describe-db-clusters --query 'DBClusters[].{DBClusterIdentifier:DBClusterIdentifier,GlobalWriteForwardingStatus:GlobalWriteForwardingStatus,ReaderEndpoint:ReaderEndpoint} | [?GlobalWriteForwardingStatus == `enabled`]' [ { "GlobalWriteForwardingStatus": "enabled", "ReaderEndpoint": "aurora-write-forwarding-test-replica-1.cluster-ro-cnpexample.us-west-2.rds.amazonaws.com", "DBClusterIdentifier": "aurora-write-forwarding-test-replica-1" } ]

應用程序和SQL與 Aurora 我的寫轉發的兼容性 SQL

您可以使用下列種類的SQL陳述式搭配寫入轉送:

  • 資料操作語言 (DML) 陳述式INSERT,例如DELETE、和UPDATE。這些陳述式的屬性有一些限制,您可以將這些屬性與寫入轉送搭配使用,如下所述。

  • SELECT ... LOCK IN SHARE MODESELECT FOR UPDATE 陳述式。

  • PREPAREEXECUTE 陳述式。

當您在具有寫入轉送的全域資料庫中使用某些陳述式時,系統不允許使用這些陳述式或這些陳述式可能會產生過時的結果。因此,次要叢集的 EnableGlobalWriteForwarding 設定預設為關閉。在開啟此功能之前,請檢查以確定您的應用程式程式碼不受上述任何限制的影響。

下列限制適用於您用於寫入轉送的SQL陳述式。在某些情況下,您可以在叢集層級,在啟用寫入轉送的次要叢集上使用陳述式。如果在工作階段中的寫入轉送開啟方式不是透過 aurora_replica_read_consistency 組態參數,則此方法有效。在不允許此方法時嘗試使用陳述式,因為寫入轉送會導致以下格式的錯誤訊息。

ERROR 1235 (42000): This version of MySQL doesn't yet support 'operation with write forwarding'.
資料定義語言 (DDL)

Connect 至主要叢集以執行DDL陳述式。您無法從讀取器資料庫執行個體執行。

使用臨時資料表中的資料更新永久資料表

您可以在啟用寫入轉送的次要叢集上使用臨時資料表。不過,如果DML陳述式參照暫存資料表,就無法使用陳述式來修改永久資料表。例如,您不能使用從臨時資料表取得資料的 INSERT ... SELECT 陳述式。臨時資料表存在於次要叢集上,且當陳述式在主要叢集上執行時無法使用該資料表。

XA 交易

在工作階段中開啟寫入轉送時,您無法在次要叢集上使用下列陳述式。您可以在未啟用寫入轉送的次要叢集上,或在 aurora_replica_read_consistency 設定為空的工作階段中使用這些陳述式。在工作階段中開啟寫入轉送之前,請檢查您的程式碼是否使用這些陳述式。

XA {START|BEGIN} xid [JOIN|RESUME] XA END xid [SUSPEND [FOR MIGRATE]] XA PREPARE xid XA COMMIT xid [ONE PHASE] XA ROLLBACK xid XA RECOVER [CONVERT XID]
LOAD永久資料表的陳述式

您無法在啟用寫入轉送的次要叢集上使用下列陳述式。

LOAD DATA INFILE 'data.txt' INTO TABLE t1; LOAD XML LOCAL INFILE 'test.xml' INTO TABLE t1;

您可以將資料載入次要叢集上的臨時資料表。不過,請確定您執行的任何 LOAD 陳述式只參照主要叢集上的永久資料表。

外掛程式陳述式

您無法在啟用寫入轉送的次要叢集上使用下列陳述式。

INSTALL PLUGIN example SONAME 'ha_example.so'; UNINSTALL PLUGIN example;
SAVEPOINT陳述

在工作階段中開啟寫入轉送時,您無法在次要叢集上使用下列陳述式。您可以在未啟用寫入轉送的次要叢集上,或在 aurora_replica_read_consistency 設定為空的工作階段中使用這些陳述式。在工作階段中開啟寫入轉送之前,請檢查您的程式碼是否使用這些陳述式。

SAVEPOINT t1_save; ROLLBACK TO SAVEPOINT t1_save; RELEASE SAVEPOINT t1_save;

在 Aurora My 中寫入轉發的隔離和一致性 SQL

在使用寫入轉送的工作階段中,您只能使用 REPEATABLE READ 隔離層級。雖然您也可以在次要 READ COMMITTED 區域中使用具唯讀叢集的 AWS 隔離層級,但該隔離層級不適用於寫入轉送。如需 REPEATABLE READREAD COMMITTED 隔離層級的相關資訊,請參閱 Aurora 我的SQL隔離等級

您可以控制次要叢集上的讀取一致性程度。讀取一致性層級會決定次要叢集在每次讀取操作之前的等待時間,以確保從主要叢集複寫部分或全部變更。您可以調整讀取一致性層級,以確保在任何後續查詢之前,您都可以在次要叢集中看見工作階段中的所有轉送寫入操作。您也可以使用此設定,確保次要叢集上的查詢永遠會看到主要叢集的最新更新。即使是由其他工作階段或其他叢集所提交的更新。若要為應用程式指定這種行為類型,請選擇工作階段層級參數 aurora_replica_read_consistency 的值。

重要

務必為您要轉送寫入的任何工作階段設定 aurora_replica_read_consistency 參數。否則,Aurora 不會啟用該工作階段的寫入轉送。此參數預設為空值,因此當您使用此參數時,請選擇特定值。該 aurora_replica_read_consistency 參數只會對啟用寫入轉送的次要叢集產生影響。

對於 Aurora 我的SQL版本 2 和版本 3 低於 3.04,請用aurora_replica_read_consistency作會話變量。對於 Aurora My 3.04 SQL 版本及更高版本,您可以用aurora_replica_read_consistency作工作階段變數或做為資料庫叢集參數。

對於 aurora_replica_read_consistency 參數,您可以指定值 EVENTUALSESSIONGLOBAL

當您提高一致性層級時,應用程式會花費更多時間等待變更在區域之間 AWS 傳播。您可以選擇在快速回應時間之間的平衡,並確保在查詢執行之前,在其他位置所做的變更完全可用。

將讀取一致性設定為時EVENTUAL,次要 AWS 區域中使用寫入轉送的查詢可能會看到由於複寫延遲而稍微過時的資料。在主要區域上執行寫入操作並複寫到目前的區域之前,不會顯示相同工作階段中寫入操作的結果。查詢不會等待更新的結果變成可用。因此,它可能會擷取較舊的資料或更新的資料,視陳述式的時間和複寫延遲量而定。

讀取一致性設定為時SESSION,次要 AWS 區域中使用寫入轉送的所有查詢都會看到在該工作階段中所做的所有變更的結果。無論交易是否已遞交,這些變更都是可見的。如有必要,查詢會等待轉送寫入操作的結果複寫到目前的區域。其不會等待來自寫入操作的更新結果,這些寫入操作的執行位置位於其他區域或目前區域內其他工作階段。

將讀取一致性設定為時GLOBAL,次要 AWS 區域中的工作階段會看到該工作階段所做的變更。它還可以看到來自主要區域和其他次要 AWS 區 AWS 域的所有已提交的更改。每個查詢可能會等待一段時間,長短取決於工作階段的延遲量。當次要叢集與來自主要叢集的所 up-to-date 有已認可資料 (截至查詢開始的時間為止),查詢會繼續進行。

如需寫入轉送中所含所有參數的詳細資訊,請參閱 在我的 Aurora 寫轉發的配置參數 SQL

使用寫入轉送的範例

這些範例使用 aurora_replica_read_consistency 作為工作階段變數。對於 Aurora My 3.04 SQL 版本及更高版本,您可以用aurora_replica_read_consistency作工作階段變數或做為資料庫叢集參數。

在以下範例中,主要叢集位於美國東部 (維吉尼亞北部) 區域。次要叢集位於美國東部 (俄亥俄) 區域中。此範例顯示在執行 INSERT 陳述式後接著執行 SELECT 陳述式的效果。視 aurora_replica_read_consistency 設定的值而定,結果可能會因陳述式的時間而有所不同。為了實現更高的一致性,在發出 SELECT 陳述式之前,您可能需要稍作等待。或者,Aurora 可以自動等待結果完成複寫,然後再繼續進行 SELECT

在此範例中,具有讀取一致性設定 eventual。立即執行 INSERT 陳述式,然後執行 SELECT 陳述式,仍會傳回 COUNT(*) 的值。該值反映插入新列之前的列數。稍後再次執行 SELECT 會傳回更新的資料列計數。這些 SELECT 陳述式不會等待。

mysql> set aurora_replica_read_consistency = 'eventual'; mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 5 | +----------+ 1 row in set (0.00 sec) mysql> insert into t1 values (6); select count(*) from t1; +----------+ | count(*) | +----------+ | 5 | +----------+ 1 row in set (0.00 sec) mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 6 | +----------+ 1 row in set (0.00 sec)

如果讀取一致性設定為 session,則在 SELECT 陳述式中的變更顯示前,INSERT 陳述式會在 INSERT 等待後立即執行。後續的 SELECT 陳述式不會等待。

mysql> set aurora_replica_read_consistency = 'session'; mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 6 | +----------+ 1 row in set (0.01 sec) mysql> insert into t1 values (6); select count(*) from t1; select count(*) from t1; Query OK, 1 row affected (0.08 sec) +----------+ | count(*) | +----------+ | 7 | +----------+ 1 row in set (0.37 sec) +----------+ | count(*) | +----------+ | 7 | +----------+ 1 row in set (0.00 sec)

將讀取一致性設定仍設為 session 後,執行 INSERT 陳述式後稍等一下,讓更新的資料列計數可在下一個 SELECT 陳述式執行時使用。

mysql> insert into t1 values (6); select sleep(2); select count(*) from t1; Query OK, 1 row affected (0.07 sec) +----------+ | sleep(2) | +----------+ | 0 | +----------+ 1 row in set (2.01 sec) +----------+ | count(*) | +----------+ | 8 | +----------+ 1 row in set (0.00 sec)

將讀取一致性設定設為 global 後,每個 SELECT 陳述式都會等待,以確保自陳述式開始時間起的所有資料變更都可見,然後再執行查詢。等待每個 SELECT 陳述式的時間會根據主要和次要叢集之間的複寫延遲量而有所不同。

mysql> set aurora_replica_read_consistency = 'global'; mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 8 | +----------+ 1 row in set (0.75 sec) mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 8 | +----------+ 1 row in set (0.37 sec) mysql> select count(*) from t1; +----------+ | count(*) | +----------+ | 8 | +----------+ 1 row in set (0.66 sec)

在 Aurora My 中使用寫轉發運行多部分語句 SQL

DML陳述式可能包含多個部分,例如INSERT ... SELECT陳述式或DELETE ... WHERE陳述式。在這種情況下,系統會將整個陳述式轉送到主要叢集並在該處執行陳述式。

與寫轉發在我的 Aurora 交易 SQL

交易是否被轉送到主要叢集取決於交易的存取模式。您可以使用 SET TRANSACTION 陳述式或 START TRANSACTION 陳述式,來指定交易的存取模式。您也可以透過變更 Aurora My SQL 工作階段變數的值來指定交易存取模式tx_read_only。您只能在連線至已啟用寫入轉送的次要叢集時,變更此工作階段值。

如果長時間執行的交易經過很長一段時間內都未發出任何陳述式,則可能會超過閒置逾時期間。此期間的預設值為一分鐘。您最多可以增加一天。超過閒置逾時的交易會被主要叢集取消。您提交的下一個後續陳述式會收到逾時錯誤。然後 Aurora 會復原交易。

當寫入轉送變成無法使用時,可能會發生這種類型的錯誤。例如,如果您重新啟動主要叢集或關閉寫入轉送組態設定,Aurora 就會取消任何使用寫入轉送的交易。

在我的 Aurora 寫轉發的配置參數 SQL

Aurora 叢集參數群組包含寫入轉送功能的設定。因為這些是叢集參數,所以每個叢集中的所有資料庫執行個體都有這些變數的相同值。下表列出了有關這些參數的詳細資訊,並在表格後面附有使用注意事項。

名稱 範圍 類型 預設值 有效值
aurora_fwd_master_idle_timeout(Aurora 我的SQL版本 2) 全球服務 不帶正負號整數 60 1–86,400
aurora_fwd_master_max_connections_pct(Aurora 我的SQL版本 2) 全球服務 不帶正負號長整數 10 0–90
aurora_fwd_writer_idle_timeout(Aurora 我的SQL版本 3) 全球服務 不帶正負號整數 60 1–86,400
aurora_fwd_writer_max_connections_pct(Aurora 我的SQL版本 3) 全球服務 不帶正負號長整數 10 0–90
aurora_replica_read_consistency 工作階段 (Session) 列舉 '' (null) EVENTUAL, SESSION, GLOBAL

若要控制次要叢集的傳入寫入請求,請在主要叢集上使用這些設定:

  • aurora_fwd_master_idle_timeoutaurora_fwd_writer_idle_timeout:主要叢集在關閉從次要叢集轉送的連線前等待活動的秒數。如果工作階段在此期間之後仍處於閒置狀態,則 Aurora 會取消工作階段。

  • aurora_fwd_master_max_connections_pctaurora_fwd_writer_max_connections_pct:可在寫入器資料庫執行個體上,用來處理從讀取器轉送之查詢的資料庫連線上限。此上限的表示方式是主要叢集中寫入器資料庫執行個體的 max_connections 設定百分比。例如,如果 max_connections 是 800,且 aurora_fwd_master_max_connections_pctaurora_fwd_writer_max_connections_pct 是 10,則寫入器允許最多 80 個同時轉送的工作階段。這些連線來自 max_connections 設定所管理的相同連線集區。

    當一或多個次要叢集已啟用寫入轉送時,此設定僅適用於主要叢集。如果您減少此值,現有的連線不會受到影響。Aurora 在嘗試從次要叢集建立新連線時,會考慮設定的新值。預設值為 10,代表該 max_connections 值的 10%。如果您在任何次要叢集上啟用查詢轉送,此設定必須為非零值,才能成功從次要叢集進行寫入操作。如果值為零,則寫入操作會收到含有訊息 ER_CON_COUNT_ERROR 的錯誤碼 Not enough connections on writer to handle your request

aurora_replica_read_consistency 參數啟用寫入轉送的工作階段層級參數。您可以在每個工作階段中使用。您可以指定 EVENTUAL SESSIONGLOBAL 以實現讀取一致性層級。若要進一步了解一致性層級,請參閱在 Aurora My 中寫入轉發的隔離和一致性 SQL。下列規則適用於此參數:

  • 這是工作階段層級參數。預設值為 '' (空白)。

  • 只有在 aurora_replica_read_consistency 設定為 EVENTUALSESSIONGLOBAL 時,才能在工作階段中使用寫入轉送。此參數僅在啟用寫入轉送之次要叢集的讀取器執行個體中,且該次要叢集位於 Aurora 全域資料庫中才有意義。

  • 您無法在多陳述式交易中設定此變量 (當為空時) 或取消設定 (當已經設定時)。但是,您可以在此類交易期間將其從一個有效值 (EVENTUALSESSION、或 GLOBAL) 變更為另一個有效值 (EVENTUALSESSION、或 GLOBAL)。

  • 當次要叢集上未啟用寫入轉送時,此變數不得是 SET

  • 在主要叢集上設定工作階段變數不會產生任何影響。如果您嘗試修改主要叢集上的這個變數,您會收到錯誤。

Amazon CloudWatch 指標在 Aurora 我的寫轉發 SQL

當您在一或多個次要叢集上使用寫入轉送時,下列 Amazon CloudWatch 指標和 Aurora My SQL 狀態變數會套用至主要叢集。這些指標都是在主要叢集中寫入器資料庫執行個體上測量的。

CloudWatch 公制 Aurora 我的SQL狀態變量 單位 描述

AuroraDMLRejectedMasterFull

計數

因為寫入器資料庫執行個體上的工作階段已滿而遭拒的轉送查詢數目。

對於 Aurora 我的SQL版本 2。

AuroraDMLRejectedWriterFull

計數

因為寫入器資料庫執行個體上的工作階段已滿而遭拒的轉送查詢數目。

對於 Aurora 我的SQL版本 3。

ForwardingMasterDMLLatency

毫秒

處理寫入器資料庫執行個體上每個轉寄DML敘述句的平均時間。

它不包括次要叢集轉送寫入請求的時間,或將變更複寫至次要叢集的時間。

對於 Aurora 我的SQL版本 2。

ForwardingMasterDMLThroughput

每秒計數

此寫入器資料庫執行個體每秒處理的轉寄DML敘述句數目。

對於 Aurora 我的SQL版本 2。

ForwardingMasterOpenSessions

Aurora_fwd_master_open_sessions 計數

寫入器資料庫執行個體上轉送的工作階段數目。

對於 Aurora 我的SQL版本 2。

Aurora_fwd_master_dml_stmt_count 計數

轉寄至此寫入器資料庫執行個體的DML敘述句總數。

對於 Aurora 我的SQL版本 2。

Aurora_fwd_master_dml_stmt_duration 微秒

轉寄至此寫入器資料庫執行個體的DML敘述句總持續時間

對於 Aurora 我的SQL版本 2。

Aurora_fwd_master_select_stmt_count 計數

轉送至此寫入器資料庫執行個體的 SELECT 陳述式總數。

對於 Aurora 我的SQL版本 2。

Aurora_fwd_master_select_stmt_duration 微秒

轉送至此寫入器資料庫執行個體的 SELECT 陳述式總持續時間。

對於 Aurora 我的SQL版本 2。

ForwardingWriterDMLLatency

毫秒

處理寫入器資料庫執行個體上每個轉寄DML敘述句的平均時間。

它不包括次要叢集轉送寫入請求的時間,或將變更複寫至次要叢集的時間。

對於 Aurora 我的SQL版本 3。

ForwardingWriterDMLThroughput

每秒計數

此寫入器資料庫執行個體每秒處理的轉寄DML敘述句數目。

對於 Aurora 我的SQL版本 3。

ForwardingWriterOpenSessions

Aurora_fwd_writer_open_sessions 計數

寫入器資料庫執行個體上轉送的工作階段數目。

對於 Aurora 我的SQL版本 3。

Aurora_fwd_writer_dml_stmt_count 計數

轉寄至此寫入器資料庫執行個體的DML敘述句總數。

對於 Aurora 我的SQL版本 3。

Aurora_fwd_writer_dml_stmt_duration 微秒 轉寄至此寫入器資料庫執行個體的DML敘述句總持續時間

Aurora_fwd_writer_select_stmt_count 計數

轉送至此寫入器資料庫執行個體的 SELECT 陳述式總數。

對於 Aurora 我的SQL版本 3。

Aurora_fwd_writer_select_stmt_duration 微秒

轉送至此寫入器資料庫執行個體的 SELECT 陳述式總持續時間。

對於 Aurora 我的SQL版本 3。

下列 CloudWatch 量度和 Aurora 我的SQL狀態變數會套用至每個次要叢集。這些指標的測量是在啟用寫入轉送的次要叢集中,每個讀取器資料庫執行個體上進行。

CloudWatch 公制 Aurora 我的SQL狀態變量 單位 描述

ForwardingReplicaDMLLatency

毫秒 在複本DMLs上轉送的平均回應時間。

ForwardingReplicaDMLThroughput

每秒計數 每秒處理的轉寄DML對帳單數目。

ForwardingReplicaOpenSessions

Aurora_fwd_replica_open_sessions 計數 在讀取器資料庫執行個體上使用寫入轉送的工作階段數目。

ForwardingReplicaReadWaitLatency

毫秒

讀取器資料庫執行個體上的 SELECT 陳述式等待以追上主要叢集的平均等待時間。

讀取器資料庫執行個體在處理查詢之前等待的程度取決於 aurora_replica_read_consistency 設定。

ForwardingReplicaReadWaitThroughput

每秒計數 轉寄寫入的所有工作階段中每秒處理的 SELECT 陳述式總數。

ForwardingReplicaSelectLatency

(–) 毫秒 轉送的 SELECT 延遲,平均計算監控期間內所有轉送的 SELECT 陳述式。

ForwardingReplicaSelectThroughput

每秒計數 在監控期間內平均每秒轉送的 SELECT 輸送量。

Aurora_fwd_replica_dml_stmt_count 計數 從此讀取器資料庫執行個體轉寄的DML敘述句總數。

Aurora_fwd_replica_dml_stmt_duration 微秒 從此讀取器資料庫執行個體轉寄的所有DML陳述式總持續時間

Aurora_fwd_replica_errors_session_limit 計數

主要叢集因下列其中一個錯誤狀況拒絕的工作階段數目:

  • 寫入器已滿

  • 處理過多的轉送陳述式

Aurora_fwd_replica_read_wait_count 計數 此讀取器資料庫執 read-after-write 行個體的等待總數。

Aurora_fwd_replica_read_wait_duration 微秒 由於此讀取器資料庫執行個體的讀取一致性設定,而造成的等待總持續時間。

Aurora_fwd_replica_select_stmt_count 計數 從此讀取器資料庫執行個體轉送的 SELECT 陳述式總數。

Aurora_fwd_replica_select_stmt_duration 微秒 從此讀取器資料庫執行個體轉送的 SELECT 陳述式總持續時間。