為我的 Aurora 設定增強型的 Binlog SQL - Amazon Aurora

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

為我的 Aurora 設定增強型的 Binlog SQL

增強型 Binlog 可減少開啟 Binlog 所造成的運算效能額外負荷,在某些情況下最高可達 50%。使用增強型 Binlog,此額外負荷可以減少至大約 13%。為了減少額外負荷,增強型 Binlog 會將二進位和交易日誌平行寫入至儲存體,這會將交易認可時寫入的資料降到最低。

與社區 My SQL binlog 相比,使用增強型 binlog 還可以將重新啟動和容錯移轉後的數據庫恢復時間提高多達 99%。增強的 binlog 與現有的 binlog 型工作負載相容,而且您與社群 My binlog 互動的方式與它互動的方式相同。SQL

Aurora 我的SQL版本 3.03.1 及更高版本上提供增強型備忘記錄。

設定增強型 Binlog 參數

您可以通過打開/關閉增強的 SQL binlog 參數在社區我的 binlog 和增強型 binlog 之間切換。現有的 Binlog 取用者可以繼續讀取和取用 Binlog 檔案,而不會在 Binlog 檔案序列中有任何間隙。

若要開啟增強型 binlog,請設定下列參數:

參數 預設 描述
binlog_format binlog_format 參數設定為您選擇的二進位記錄格式,以開啟增強型 Binlog。請確定binlog_format parameter未設定為OFF。如需詳細資訊,請參閱設定 Aurora 我的SQL二進位記錄
aurora_enhanced_binlog 0 1在與 Aurora My SQL 叢集關聯的資料庫叢集參數群組中,將此參數的值設定為。當您變更此參數的值時,必須在 DBClusterParameterGroupStatus 值顯示為 pending-reboot 時重新啟動寫入器執行個體。
binlog_backup 1 關閉此參數以開啟增強型 Binlog。若要這樣做,請將此參數的值設定為 0
binlog_replication_globaldb 1 關閉此參數以開啟增強型 Binlog。若要這樣做,請將此參數的值設定為 0
重要

僅在使用增強型 Binlog 時,您才能關閉 binlog_backupbinlog_replication_globaldb 參數。

若要關閉增強型 binlog,請設定下列參數:

參數 描述
aurora_enhanced_binlog 0在與 Aurora My SQL 叢集關聯的資料庫叢集參數群組中,將此參數的值設定為。每當您變更此參數的值時,就必須在 DBClusterParameterGroupStatus 值顯示為 pending-reboot 時重新啟動寫入器執行個體。
binlog_backup 在您關閉增強型 Binlog 時開啟此參數。若要這樣做,請將此參數的值設定為 1
binlog_replication_globaldb 在您關閉增強型 Binlog 時開啟此參數。若要這樣做,請將此參數的值設定為 1

若要檢查是否已開啟增強型 binlog,請在 [我的用SQL戶端] 中使用下列命令:

mysql>show status like 'aurora_enhanced_binlog'; +------------------------+--------+ | Variable_name | Value | +------------------------+--------+ | aurora_enhanced_binlog | ACTIVE | +------------------------+--------+ 1 row in set (0.00 sec)

當增強型 Binlog 開啟時,輸出會針對 aurora_enhanced_binlog 顯示 ACTIVE

其他相關參數

當您開啟增強型 Binlog 時,下列參數會受到影響:

  • max_binlog_size 參數可見,但無法修改。當增強型 Binlog 開啟時,它的預設值 134217728 會自動調整為 268435456

  • 與我的 SQL binlog 社區不同,在binlog_checksum打開增強的 binlog 時,不會充當動態參數。若要使對此參數所做的變更生效,您必須手動重新啟動資料庫叢集,即使 ApplyMethodimmediate 也是如此。

  • 增強型 Binlog 開啟時,您在 binlog_order_commits 參數上設定的值不會影響認可的順序。認可總是排序,沒有任何進一步的效能隱憂。

增強的 binlog 和社區之間的差異我的 SQL binlog

與社群 My binlog 相比,增強型 binlog 與複製、備份和 Aurora 全域資料庫的互動方式不同。SQL建議您在使用增強型 Binlog 之前先了解下列差異。

  • 來源資料庫叢集中的增強型 binlog 檔案無法在複製的資料庫叢集上使用。

  • Aurora 備份中不包含增強型的 Binlog 檔案。因此,在還原資料庫叢集之後,儘管在其上設定了任何保留期間,仍無法使用來源資料庫叢集中的增強型 Binlog 檔案。

  • 與 Aurora 全球資料庫搭配使用時,主要資料庫叢集的增強型 Binlog 檔案不會複寫至次要區域中的資料庫叢集。

範例

下列範例說明增強型 binlog 和社群 [我的 binlog] 之間的SQL差異。

在還原或複製的資料庫叢集上

當增強型 Binlog 開啟時,在已還原或複製的資料庫叢集中無法使用歷史 Binlog 檔案。在還原或複製作業之後,如果開啟 binlog,新的資料庫叢集會從 1 (mysql-bin-changelog.000001) 開始寫入自己的 binlog 檔案序列。

若要在還原或複製操作之後開啟增強型 Binlog,請在還原或複製的資料庫叢集上設定所需的資料庫叢集參數。如需詳細資訊,請參閱設定增強型 Binlog 參數

範例:開啟增強型 binlog 時執行的複製或還原作業

來源資料庫叢集:

mysql> show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | | mysql-bin-changelog.000003 | 156 | No | | mysql-bin-changelog.000004 | 156 | No | --> Enhanced Binlog turned on | mysql-bin-changelog.000005 | 156 | No | --> Enhanced Binlog turned on | mysql-bin-changelog.000006 | 156 | No | --> Enhanced Binlog turned on +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

在還原或複製的資料庫叢集上,增強型 Binlog 開啟時,不會備份 Binlog 檔案。為了避免 Binlog 資料中的不連續性,在開啟增強型 Binlog 之前寫入的 Binlog 檔案也無法使用。

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | --> New sequence of Binlog files +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
範例:關閉增強型 binlog 時所執行的複製或還原作業

來源資料庫叢集:

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000003 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

在還原或複製的資料庫叢集上,可以使用在關閉增強型 Binlog 之後寫入的 Binlog 檔案。

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)

在 Amazon Aurora 全球資料庫上

在 Amazon Aurora 全球資料庫上,主要資料庫叢集的 Binlog 資料不會複寫到次要資料庫叢集。在跨區域容錯移轉程序之後,Binlog 資料無法在新提升的主要資料庫叢集中使用。如果開啟 binlog,則新升級的資料庫叢集會從 1 (mysql-bin-changelog.000001) 開始啟動自己的 binlog 檔案序列。

若要在容錯移轉之後開啟增強型 Binlog,您必須在次要資料庫叢集上設定所需的資料庫叢集參數。如需詳細資訊,請參閱設定增強型 Binlog 參數

範例:開啟增強型 binlog 時,會執行全域資料庫容錯移轉作業

舊的主要資料庫叢集 (容錯移轉前):

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | | mysql-bin-changelog.000003 | 156 | No | | mysql-bin-changelog.000004 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000005 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000006 | 156 | No | --> Enhanced Binlog enabled +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

新的主要資料庫叢集 (容錯移轉後):

開啟增強型 Binlog 時,Binlog 檔案不會複寫到次要區域。為了避免 Binlog 資料中的不連續性,無法使用在開啟增強型 Binlog 之前寫入的 Binlog 檔案。

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | --> Fresh sequence of Binlog files +----------------------------+-----------+-----------+ 1 row in set (0.00 sec)
範例:關閉增強型 binlog 時,會執行全域資料庫容錯移轉作業

來源資料庫叢集:

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000001 | 156 | No | | mysql-bin-changelog.000002 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000003 | 156 | No | --> Enhanced Binlog enabled | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 6 rows in set (0.00 sec)

還原或複製的資料庫叢集:

在關閉增強型 Binlog 之後寫入的 Binlog 檔案會被複寫,並可在新提升的資料庫叢集中使用。

mysql>show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000004 | 156 | No | | mysql-bin-changelog.000005 | 156 | No | | mysql-bin-changelog.000006 | 156 | No | +----------------------------+-----------+-----------+ 3 rows in set (0.00 sec)

增強型分 CloudWatch 錄日誌的 Amazon 指標

只有在開啟增強型 BINLOG 時,才會發佈下列 Amazon CloudWatch 指標。

CloudWatch 公制 描述 個單位
ChangeLogBytesUsed 增強型 Binlog 使用的儲存體數量。 位元組
ChangeLogReadIOPs 增強型 Binlog 中 5 分鐘間隔內執行的讀取 I/O 操作次數。 每 5 分鐘計數
ChangeLogWriteIOPs 增強型 Binlog 中 5 分鐘間隔內執行的寫入磁碟 I/O 操作次數。 每 5 分鐘計數

增強型 Binlog 限制

當增強型 Binlog 開啟時,下列限制適用於 Amazon Aurora 資料庫叢集。

  • 只有 Aurora 我的SQL版本 3.03.1 及更高版本上才支援增強型 Binlog。

  • 在主要資料庫叢集上寫入的增強型 Binlog 檔案不會複製到複製或還原的資料庫叢集。

  • 與 Amazon Aurora 全球資料庫搭配使用時,主要資料庫叢集的增強型 Binlog 檔案不會複寫至次要資料庫叢集。因此,在容錯移轉程序之後,無法在新的主要資料庫叢集中使用歷史 Binlog 資料。

  • 系統會忽略下列 Binlog 組態參數:

    • binlog_group_commit_sync_delay

    • binlog_group_commit_sync_no_delay_count

    • binlog_max_flush_queue_time

  • 您無法捨棄或重新命名資料庫中損毀的資料表。要刪除這些表格,您可以聯繫 AWS Support.

  • 開啟增強型 Binlog 時,會停用 Binlog I/O 快取。如需詳細資訊,請參閱最佳化 Aurora 我的二進位記錄複寫 SQL

    注意

    增強型 Binlog 提供與 Binlog I/O 快取類似的讀取效能改進,以及更好的寫入效能改進。

  • 不支援恢復功能。無法在下列情況下的資料庫叢集中開啟增強型 Binlog:

    • 目前已啟用恢復功能的資料庫叢集。

    • 先前已啟用回溯功能,但現在已停用的資料庫叢集。

    • 從來源資料庫叢集或已啟用恢復功能的快照中還原的資料庫叢集。