本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Aurora MySQL 全球資料庫中使用寫入轉送
主題
Aurora MySQL 中寫入轉發的區域和版本可用性
在每個可使用 Aurora MySQL 全球資料庫的區域中,Aurora MySQL 2.08.1 及更高版本都支援寫入轉送。
如需 Aurora MySQL 全球資料庫的版本和區域可用性的詳細資訊,請參閱 使用 Aurora MySQL 的 Aurora 全域資料庫。
在 Aurora MySQL 中啟用寫入轉送
根據預設,當您將次要叢集新增至 Aurora 全域資料庫時,不會啟用寫入轉送。
若要使用 啟用寫入轉送 AWS Management Console,請在為全域資料庫新增區域時,選取讀取複本寫入轉送下的開啟全域寫入轉送核取方塊。 對於現有的次要叢集,請將叢集修改為開啟全域寫入轉送。若要關閉寫入轉送,請在新增區域或修改次要叢集時,清除開啟全域寫入轉送核取方塊。
若要使用 啟用寫入轉送 AWS CLI,請使用 --enable-global-write-forwarding
選項。當您使用 create-db-cluster
命令建立新的次要叢集時,此選項會起作用。當您使用 modify-db-cluster
命令修改現有的次要叢集時,此選項也會起作用。其要求全域資料庫使用支援寫入轉送的 Aurora 版本。您可以使用 --no-enable-global-write-forwarding
選項搭配這些相同的 CLI 命令來關閉寫入轉送。
若要使用 Amazon RDS API 啟用寫入轉送,請將 EnableGlobalWriteForwarding
參數設定為 true
。當您使用 CreateDBCluster
操作建立新的次要叢集時,此參數會起作用。當您使用 ModifyDBCluster
操作修改現有的次要叢集時,此選項也會起作用。其要求全域資料庫使用支援寫入轉送的 Aurora 版本。您可以將 EnableGlobalWriteForwarding
參數設定為 false
來關閉寫入轉送。
注意
若要讓資料庫執行階段使用寫入轉送,請指定 aurora_replica_read_consistency
組態參數的設定。在使用寫入轉送功能的每個工作階段中執行這項操作。如需此參數的相關資訊,請參閱 Aurora MySQL 中寫入轉送的隔離與一致性。
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-usernameuser_name
--master-user-passwordpassword
\ --regionus-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 \ --regionus-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 \ --regionus-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 \ --regionus-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 \ --regionus-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 \ --regionus-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 \ --regionus-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 \ --regionus-west-1
aws rds modify-db-cluster --db-cluster-identifier write-forwarding-test-cluster-2 \ --regionus-east-2
\ --enable-global-write-forwarding
在 Aurora MySQL 中檢查次要叢集是否已啟用寫入轉送
若要判斷是否可以從次要叢集使用寫入轉送,您可以檢查叢集是否具有屬性 "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" } ]
Aurora MySQL 中應用程式和 SQL 與寫入轉送的相容性
您可以使用以下類型的 SQL 陳述式搭配寫入轉送:
-
資料操作語言 (DML) 陳述式,例如
INSERT
、DELETE
和UPDATE
。這些陳述式的屬性有一些限制,您可以將這些屬性與寫入轉送搭配使用,如下所述。 -
SELECT ... LOCK IN SHARE MODE
和SELECT FOR UPDATE
陳述式。 -
PREPARE
和EXECUTE
陳述式。
當您在具有寫入轉送的全域資料庫中使用某些陳述式時,系統不允許使用這些陳述式或這些陳述式可能會產生過時的結果。因此,次要叢集的 EnableGlobalWriteForwarding
設定預設為關閉。在開啟此功能之前,請檢查以確定您的應用程式程式碼不受上述任何限制的影響。
下列限制適用於您與寫入轉送搭配使用的 SQL 陳述式。在某些情況下,您可以在叢集層級,在啟用寫入轉送的次要叢集上使用陳述式。如果在工作階段中的寫入轉送開啟方式不是透過 aurora_replica_read_consistency
組態參數,則此方法有效。在不允許此方法時嘗試使用陳述式,因為寫入轉送會導致以下格式的錯誤訊息。
ERROR 1235 (42000): This version of MySQL doesn't yet support '
operation
with write forwarding'.
- 資料定義語言 (DDL)
-
連線至主要叢集以執行 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;
- 儲存點陳述式
-
在工作階段中開啟寫入轉送時,您無法在次要叢集上使用下列陳述式。您可以在未啟用寫入轉送的次要叢集上,或在
aurora_replica_read_consistency
設定為空的工作階段中使用這些陳述式。在工作階段中開啟寫入轉送之前,請檢查您的程式碼是否使用這些陳述式。SAVEPOINT t1_save; ROLLBACK TO SAVEPOINT t1_save; RELEASE SAVEPOINT t1_save;
Aurora MySQL 中寫入轉送的隔離與一致性
在使用寫入轉送的工作階段中,您只能使用 REPEATABLE READ
隔離層級。雖然您也可以在次要 READ COMMITTED
區域中使用具唯讀叢集的 AWS 隔離層級,但該隔離層級不適用於寫入轉送。如需 REPEATABLE READ
和 READ COMMITTED
隔離層級的相關資訊,請參閱 Aurora MySQL 隔離層級。
您可以控制次要叢集上的讀取一致性程度。讀取一致性層級會決定次要叢集在每次讀取操作之前的等待時間,以確保從主要叢集複寫部分或全部變更。您可以調整讀取一致性層級,以確保在任何後續查詢之前,您都可以在次要叢集中看見工作階段中的所有轉送寫入操作。您也可以使用此設定,確保次要叢集上的查詢永遠會看到主要叢集的最新更新。即使是由其他工作階段或其他叢集所提交的更新。若要為應用程式指定這種行為類型,請選擇工作階段層級參數 aurora_replica_read_consistency
的值。
重要
務必為您要轉送寫入的任何工作階段設定 aurora_replica_read_consistency
參數。否則,Aurora 不會啟用該工作階段的寫入轉送。此參數預設為空值,因此當您使用此參數時,請選擇特定值。該 aurora_replica_read_consistency
參數只會對啟用寫入轉送的次要叢集產生影響。
針對 Aurora MySQL 2 版和低於 3.04 的 3 版,請使用 aurora_replica_read_consistency
作為工作階段變數。針對 Aurora MySQL 3.04 版及更新版本,您可以使用 aurora_replica_read_consistency
作為工作階段變數或作為資料庫叢集參數。
對於 aurora_replica_read_consistency
參數,您可以指定值 EVENTUAL
、SESSION
和 GLOBAL
。
當您提高一致性層級時,您的應用程式會花費更多時間等待 AWS 區域之間傳播變更。您可以選擇在快速回應時間之間的平衡,並確保在查詢執行之前,在其他位置所做的變更完全可用。
在讀取一致性設為 的情況下EVENTUAL
,使用寫入轉送的次要 AWS 區域中的查詢可能會看到由於複寫延遲而稍微過時的資料。在主要區域上執行寫入操作並複寫到目前的區域之前,不會顯示相同工作階段中寫入操作的結果。查詢不會等待更新的結果變成可用。因此,它可能會擷取較舊的資料或更新的資料,視陳述式的時間和複寫延遲量而定。
在讀取一致性設為 的情況下SESSION
,使用寫入轉送的次要 AWS 區域中的所有查詢都會看到該工作階段中所有變更的結果。無論交易是否已遞交,這些變更都是可見的。如有必要,查詢會等待轉送寫入操作的結果複寫到目前的區域。其不會等待來自寫入操作的更新結果,這些寫入操作的執行位置位於其他區域或目前區域內其他工作階段。
讀取一致性設為 時GLOBAL
,次要 AWS 區域中的工作階段會看到該工作階段所做的變更。它也會看到主要 AWS 區域和其他次要 AWS 區域的所有遞交變更。每個查詢可能會等待一段時間,長短取決於工作階段的延遲量。自查詢開始的時間起,當次要叢集與主要叢集中的所有遞交資料都是最新時,查詢就會繼續。
如需寫入轉送中所含所有參數的詳細資訊,請參閱 Aurora MySQL 中寫入轉送的組態參數。
使用寫入轉送的範例
這些範例使用 aurora_replica_read_consistency
作為工作階段變數。針對 Aurora MySQL 3.04 版及更新版本,您可以使用 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 MySQL 中使用寫入轉送執行多部分陳述式
DML 陳述式可能包含多個部分,例如 INSERT ... SELECT
陳述式或 DELETE ... WHERE
陳述式。在這種情況下,系統會將整個陳述式轉送到主要叢集並在該處執行陳述式。
Aurora MySQL 中具有寫入轉送的交易
交易是否被轉送到主要叢集取決於交易的存取模式。您可以使用 SET TRANSACTION
陳述式或 START TRANSACTION
陳述式,來指定交易的存取模式。您也可以透過變更 transaction_read_only
如果長時間執行的交易經過很長一段時間內都未發出任何陳述式,則可能會超過閒置逾時期間。此期間的預設值為一分鐘。您最多可以增加一天。超過閒置逾時的交易會被主要叢集取消。您提交的下一個後續陳述式會收到逾時錯誤。然後 Aurora 會復原交易。
當寫入轉送變成無法使用時,可能會發生這種類型的錯誤。例如,如果您重新啟動主要叢集或關閉寫入轉送組態設定,Aurora 就會取消任何使用寫入轉送的交易。
Aurora MySQL 中寫入轉送的組態參數
Aurora 叢集參數群組包含寫入轉送功能的設定。因為這些是叢集參數,所以每個叢集中的所有資料庫執行個體都有這些變數的相同值。下表列出了有關這些參數的詳細資訊,並在表格後面附有使用注意事項。
名稱 | 範圍 | 類型 | 預設值 | 有效值 |
---|---|---|---|---|
aurora_fwd_master_idle_timeout (Aurora MySQL 第 2 版) |
全球服務 | 不帶正負號整數 | 60 | 1–86,400 |
aurora_fwd_master_max_connections_pct (Aurora MySQL 第 2 版) |
全球服務 | 不帶正負號長整數 | 10 | 0–90 |
aurora_fwd_writer_idle_timeout (Aurora MySQL 第 3 版) |
全球服務 | 不帶正負號整數 | 60 | 1–86,400 |
aurora_fwd_writer_max_connections_pct (Aurora MySQL 第 3 版) |
全球服務 | 不帶正負號長整數 | 10 | 0–90 |
aurora_replica_read_consistency |
第 2 版和第 3 版低於 3.04 的工作階段,第 3.04 版及更高版本的全球工作階段 | 列舉 | '' (null) | EVENTUAL , SESSION , GLOBAL |
若要控制次要叢集的傳入寫入請求,請在主要叢集上使用這些設定:
-
aurora_fwd_master_idle_timeout
、aurora_fwd_writer_idle_timeout
:主要叢集在關閉從次要叢集轉送的連線前等待活動的秒數。如果工作階段在此期間之後仍處於閒置狀態,則 Aurora 會取消工作階段。 -
aurora_fwd_master_max_connections_pct
、aurora_fwd_writer_max_connections_pct
:可在寫入器資料庫執行個體上,用來處理從讀取器轉送之查詢的資料庫連線上限。此上限的表示方式是主要叢集中寫入器資料庫執行個體的max_connections
設定百分比。例如,如果max_connections
是 800,且aurora_fwd_master_max_connections_pct
或aurora_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
SESSION
或 GLOBAL
以實現讀取一致性層級。若要進一步了解一致性層級,請參閱Aurora MySQL 中寫入轉送的隔離與一致性。下列規則適用於此參數:
-
預設值為 '' (空白)。
-
只有在
aurora_replica_read_consistency
設定為EVENTUAL
、SESSION
或GLOBAL
時,才能在工作階段中使用寫入轉送。此參數僅在啟用寫入轉送之次要叢集的讀取器執行個體中,且該次要叢集位於 Aurora 全域資料庫中才有意義。 -
您無法在多陳述式交易中設定此變量 (當為空時) 或取消設定 (當已經設定時)。但是,您可以在此類交易期間將其從一個有效值 (
EVENTUAL
、SESSION
、或GLOBAL
) 變更為另一個有效值 (EVENTUAL
、SESSION
、或GLOBAL
)。 -
當次要叢集上未啟用寫入轉送時,此變數不得是
SET
。
Aurora MySQL 中寫入轉送的 Amazon CloudWatch 指標
當您在一或多個次要叢集上使用寫入轉送時,下列 Amazon CloudWatch 指標適用於主要叢集。這些指標都是在主要叢集中寫入器資料庫執行個體上測量的。
CloudWatch 指標 | 單位 | 描述 |
---|---|---|
|
計數 |
由於寫入器資料庫執行個體上的工作階段已滿,因此拒絕的轉送查詢數量。 適用於 Aurora MySQL 第 2 版。 |
|
計數 |
由於寫入器資料庫執行個體上的工作階段已滿,因此拒絕的轉送查詢數量。 適用於 Aurora MySQL 3 版。 |
|
毫秒 |
處理寫入器資料庫執行個體上每個轉送 DML 陳述式的平均時間。 它不包括次要叢集轉送寫入請求的時間,或將變更複寫至次要叢集的時間。 適用於 Aurora MySQL 第 2 版。 |
|
每秒計數 |
此寫入器資料庫執行個體每秒處理的轉送 DML 陳述式數目。 適用於 Aurora MySQL 第 2 版。 |
|
計數 |
寫入器資料庫執行個體上轉送的工作階段數目。 適用於 Aurora MySQL 第 2 版。 |
|
毫秒 |
處理寫入器資料庫執行個體上每個轉送 DML 陳述式的平均時間。 它不包括次要叢集轉送寫入請求的時間,或將變更複寫至次要叢集的時間。 適用於 Aurora MySQL 3 版。 |
|
每秒計數 | 此寫入器資料庫執行個體每秒處理的轉送 DML 陳述式數目。 適用於 Aurora MySQL 3 版。 |
|
計數 | 寫入器資料庫執行個體上轉送的工作階段數目。 適用於 Aurora MySQL 3 版。 |
下列 CloudWatch 指標適用於每個次要叢集。這些指標的測量是在啟用寫入轉送的次要叢集中,每個讀取器資料庫執行個體上進行。
CloudWatch 指標 | 單位 | 描述 |
---|---|---|
|
毫秒 | 複本上轉送 DML 的平均回應時間。 |
|
每秒計數 | 每秒處理的轉送 DML 陳述式數目。 |
|
計數 | 在讀取器資料庫執行個體上使用寫入轉送的工作階段數目。 |
|
毫秒 |
讀取器資料庫執行個體上的 讀取器資料庫執行個體在處理查詢之前等待的程度取決於 |
|
每秒計數 | 轉寄寫入的所有工作階段中每秒處理的 SELECT 陳述式總數。 |
|
毫秒 | 轉送的 SELECT 延遲,平均計算監控期間內所有轉送的 SELECT 陳述式。 |
|
每秒計數 | 在監控期間內平均每秒轉送的 SELECT 輸送量。 |
用於寫入轉送的 Aurora MySQL 狀態變數
當您在一或多個次要叢集上使用寫入轉送時,下列 Aurora MySQL 狀態變數會套用至主要叢集。這些指標都是在主要叢集中寫入器資料庫執行個體上測量的。
Aurora MySQL 狀態變數 | 單位 | 描述 |
---|---|---|
Aurora_fwd_master_dml_stmt_count |
計數 | 轉送至此寫入器資料庫執行個體的 DML 陳述式總數。 適用於 Aurora MySQL 第 2 版。 |
Aurora_fwd_master_dml_stmt_duration |
微秒 |
轉送至此寫入器資料庫執行個體的 DML 陳述式總持續時間。 適用於 Aurora MySQL 第 2 版。 |
Aurora_fwd_master_open_sessions |
計數 |
寫入器資料庫執行個體上轉送的工作階段數目。 適用於 Aurora MySQL 第 2 版。 |
Aurora_fwd_master_select_stmt_count |
計數 |
轉送至此寫入器資料庫執行個體的 適用於 Aurora MySQL 第 2 版。 |
Aurora_fwd_master_select_stmt_duration |
微秒 |
轉送至此寫入器資料庫執行個體的 適用於 Aurora MySQL 第 2 版。 |
Aurora_fwd_writer_dml_stmt_count |
計數 | 轉送至此寫入器資料庫執行個體的 DML 陳述式總數。 適用於 Aurora MySQL 3 版。 |
Aurora_fwd_writer_dml_stmt_duration |
微秒 | 轉送至此寫入器資料庫執行個體的 DML 陳述式總持續時間。 |
Aurora_fwd_writer_open_sessions |
計數 | 寫入器資料庫執行個體上轉送的工作階段數目。 適用於 Aurora MySQL 3 版。 |
Aurora_fwd_writer_select_stmt_count |
計數 | 轉送至此寫入器資料庫執行個體的 |
Aurora_fwd_writer_select_stmt_duration |
微秒 |
轉送至此寫入器資料庫執行個體的 適用於 Aurora MySQL 3 版。 |
下列 Aurora MySQL 狀態變數適用於每個次要叢集。這些指標的測量是在啟用寫入轉送的次要叢集中,每個讀取器資料庫執行個體上進行。
Aurora MySQL 狀態變數 | 單位 | 描述 |
---|---|---|
Aurora_fwd_replica_dml_stmt_count |
計數 | 從此讀取器資料庫執行個體轉送的 DML 陳述式總數。 |
Aurora_fwd_replica_dml_stmt_duration |
微秒 | 從此讀取器資料庫執行個體轉送的所有 DML 陳述式總持續時間。 |
Aurora_fwd_replica_errors_session_limit |
計數 |
主要叢集因下列其中一個錯誤狀況拒絕的工作階段數目:
|
Aurora_fwd_replica_open_sessions |
計數 | 在讀取器資料庫執行個體上使用寫入轉送的工作階段數目。 |
Aurora_fwd_replica_read_wait_count |
計數 | 此讀取器資料庫執行個體上先寫後讀的等待總數。 |
Aurora_fwd_replica_read_wait_duration |
微秒 | 由於此讀取器資料庫執行個體的讀取一致性設定,而造成的等待總持續時間。 |
Aurora_fwd_replica_select_stmt_count |
計數 | 從此讀取器資料庫執行個體轉送的 SELECT 陳述式總數。 |
Aurora_fwd_replica_select_stmt_duration |
微秒 | 從此讀取器資料庫執行個體轉送的 SELECT 陳述式總持續時間。 |