本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
與 Amazon Aurora 我的複製 SQL
Aurora My SQL 複寫功能是叢集高可用性和效能的關鍵。Aurora 可讓您輕鬆建立最多可有 15 Aurora 個複本的叢集,或調整其大小。
所有複本都從相同的基礎資料運作。如果部分資料庫執行個體離線,則其他資料庫執行個體仍可繼續用來處理查詢,或在需要時以寫入器的方式接管。Aurora 會自動將您的唯讀連線分散至多個資料庫執行個體,協助 Aurora 叢集以支援查詢密集的工作負載。
在下列主題中,您可以找到 Aurora 我的複寫如何運作,以及如何微調SQL複寫設定以獲得最佳可用性和效能的相關資訊。
主題
使用 Aurora 複本
Aurora 複本是 Aurora 資料庫叢集中的獨立端點,最適合用於擴展讀取操作和提高可用性。資料庫叢集跨越的可用區域最多可分散 15 個 Aurora 複本 AWS 區域。 雖然資料庫叢集磁碟區是由資料庫叢集的多個資料副本所組成,但叢集磁碟區中的資料會以單一邏輯磁碟區表示給主執行個體,以及資料庫叢集中的 Aurora 複本。如需 Aurora 複本的詳細資訊,請參閱 Aurora 複本。
Aurora 複本很適用於讀取擴展,因為完全專用於叢集磁碟區上的讀取操作。寫入操作由主要執行個體管理。由於叢集磁碟區是在 Aurora My SQL DB 叢集中的所有執行個體之間共用的,因此不需要額外的工作即可複寫每個 Aurora 複本的資料副本。相反地,我的僅供SQL讀取複本必須在單一執行緒上,重新執行個體從來源資料庫執行個體到其本機資料存放區的所有寫入作業。此限制可能會影響「我的僅供SQL讀取複本」支援大量讀取流量的能力。
使用 Aurora My 時SQL,刪除 Aurora 複本時,其執行個體端點會立即移除,並從讀取器端點移除 Aurora 複本。如果在要刪除的 Aurora 複本上有陳述式正在執行,則會有三分鐘的寬限期。現有陳述式在寬限期期間可以從容地完成。在寬限期結束時,Aurora 複本會關閉並刪除。
重要
Aurora 的 Aurora 副本我SQL始終使用 InnoDB 表上的操作的REPEATABLE READ
默認事務隔離級別。您只能使用此SET TRANSACTION ISOLATION LEVEL
命令來變更 Aurora My SQL DB 叢集主要執行個體的交易層級。此限制可避免 Aurora 複本上的使用者層級鎖定,並允許 Aurora 複本擴展來支援上千個作用中使用者的連線,同時將複本延遲保持在最小值。
注意
DDL在主要執行個體上執行的陳述式可能會中斷關聯 Aurora 複本上的資料庫連線。如果 Aurora 複本連線主動使用資料庫物件 (例如表格),且使用DDL陳述式在主要執行個體上修改該物件,則 Aurora Replica 連線會中斷。
注意
中國 (寧夏) 區域不支援跨區域的僅供讀取複本。
Amazon Aurora 我的複寫選項 SQL
您可以設定下列任何選項之間的複寫:
-
兩個 Aurora 我的SQL數據庫集群在不同 AWS 區域,透過建立 Aurora 我的SQL資料庫叢集的跨區域僅供讀取複本。
如需詳細資訊,請參閱複寫 Amazon Aurora 我的SQL資料庫叢集 AWS 區域。
-
兩個 Aurora 我的SQL資料庫叢集在同一個 AWS 區域,通過使用我的SQL二進制日誌(binlog)複製。
如需詳細資訊,請參閱在 Aurora 和我之間SQL或 Aurora 與另一個 Aurora 資料庫叢集之間的複寫 (二進位記錄複寫。
-
透過RDS為 My SQL 資料庫執行個體建立 Aurora 僅供讀取複本,將我的SQL資料庫執行個體用作來源和 Aurora My RDS 資SQL料庫叢集。
SQL在移轉至 Aurora 期間,您可以使用此方法將現有和持續中的資料變更導入 Aurora My。如需詳細資訊,請參閱使用 Aurora 僅RDS供讀取複本,將資料從「我SQL的資料SQL庫」執行個體移轉至 Amazon Aurora 我的資料庫叢集。
您還可以使用此方法,來增加資料讀取查詢的可擴展性。您可以透過使用唯讀 Aurora My SQL 叢集中的一或多個資料庫執行個體來查詢資料。如需詳細資訊,請參閱使用 Amazon Aurora 擴展您的我的SQL資料庫的讀取。
-
Aurora 我的SQL資料庫叢集於一體 AWS 區域 透過建立 Aurora 全域資料SQL庫,以及在不同區域中最多五個 Aurora 唯讀 Aurora 我的資料庫叢集。
您可以使用 Aurora 全域資料庫,來支援具有全球覆蓋的應用程式。主要 Aurora 我的SQL資料庫叢集具有一個寫入器執行個體和最多 15 個 Aurora 複本。唯讀次要 Aurora「我的SQL資料庫」叢集最多可由 16 個 Aurora 複本組成。如需詳細資訊,請參閱使用 Amazon Aurora Global Database。
注意
重新啟動 Amazon Aurora 資料庫叢集的主要執行個體時,也會自動重新啟動該資料庫叢集的 Aurora 複本,以重新建立進入點來保證整個資料庫叢集的讀取/寫入一致性。
Amazon Aurora 的效能考量我的SQL複寫
下列功能可協助您微調 Aurora 我的SQL複寫的效能。
複本日誌壓縮功能會自動減少複寫訊息的網路頻寬。因為每則訊息都會傳輸至所有 Aurora 複本,所以叢集越大,得到的好處就越大。此功能涉及寫入器節點上執行壓縮的一些CPU額外負荷。它始終在 Aurora 我的SQL版本 2 和版本 3 中啟用。
binlog 篩選功能會自動減少複寫訊息的網路頻寬。因為 Aurora 複本不會使用複寫訊息中包含的 binlog 資訊,所以傳送至那些節點的訊息中會省略該資料。
在 Aurora 我的SQL版本 2 中,您可以通過更改aurora_enable_repl_bin_log_filtering
參數來控制此功能。此參數預設為開啟。因為此最佳化旨在透明化,所以您可能只在對複寫相關問題進行診斷或故障診斷期間才會關閉此設定。例如,您可以這樣做以符合無法使用此功能的舊版 Aurora My SQL 叢集的行為。
在 Aurora 我的SQL版本 3 中始終啟用 Binlog 過濾。
監控 Amazon Aurora 我的SQL複寫
讀取擴展和高可用性取決於最短延遲時間。您可以監控 Amazon CloudWatch AuroraReplicaLag
指標,監視 Aurora 複本落後於 Aurora My SQL 資料庫叢集主要執行個體的距離。AuroraReplicaLag
指標會記錄在每個 Aurora 複本中。
主資料庫執行個體也會記錄AuroraReplicaLagMaximum
和 AuroraReplicaLagMinimum
Amazon CloudWatch 指標。AuroraReplicaLagMaximum
指標會記錄主要執行個體與資料庫叢集中各個 Aurora 資料庫執行個體之間的最大延遲量。AuroraReplicaLagMinimum
指標會記錄主要執行個體與資料庫叢集中各個 Aurora 資料庫執行個體之間的最小延遲量。
如果您需要 Aurora 複本延遲的最新值,則可以在 Amazon 中查看AuroraReplicaLag
指標 CloudWatch。Aurora 複本延遲也會記錄在表格中的 Aurora 我的SQL資料庫叢集的每個 Aurora 複本information_schema.replica_host_status
上。如需此資料表的詳細資訊,請參閱 information_schema.replica_host_status。
如需監視RDS執行個體和 CloudWatch 指標的詳細資訊,請參閱在 Amazon Aurora 叢集中監控指標。