Replication

AWS DMS(數據庫遷移服務)中的心跳頻率?

  • November 7, 2019

在“PostgreSQL 源 WAL 心跳https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReleaseNotes.html#CHAP_ReleaseNotes.DMS230 ”中,心跳頻率代表什麼?AWS 文件沒有解釋這個時間單位的確切含義。乍一看,這應該是 WAL 文件在發布之前保存在磁碟上的時間嗎?

關於 DMS 如何根據心跳頻率參數更新 restart_lsn 的文件不多。

令人憤怒的是,唯一提到這個看似關鍵的配置部分是在一個主要版本之前的發行說明中……

為從 PostgreSQL 源複製添加了預寫日誌 (WAL) 心跳(即執行虛擬查詢)。添加了此功能,以便空閒的邏輯複製槽不會保留舊的 WAL 日誌,這可能導致源上的儲存已滿。此心跳保持 restart_lsn 移動並防止儲存已滿情況。

我正在使用 DMS 將 CDC 數據從 RDS (postgres) 轉換為 Redshift。心跳間隔目前設置為預設值 5 分鐘。

RDS 實例正在經歷沉重的(對我們而言)寫入負載。因此,我們正在以更高的速度積累事務日誌。

我注意到 RDS 上事務日誌磁碟使用的鋸齒模式。奇怪的是,鋸齒似乎有 5 分鐘的間隔(與間隔匹配?)。

我有一個 RDS 實例在測試時用完了磁碟,因為它處於“空閒”狀態,正在建構複製日誌。

測試時心跳設置似乎已經解決了這個問題。然而,在生產中,由於 5 分鐘的鋸齒狀,我想知道 Postgres 持有 WAL 的時間是否超過了它實際需要的時間……

它設置虛擬查詢的執行頻率。我啟用了預設頻率為 5 分鐘的心跳,並且在我的 DMS 任務日誌中,我在任務啟動時看到了這一行:

[SOURCE_CAPTURE ]I: Heartbeat mechanism is set to 5 minutes at schema 'public' (postgres_endpoint_util.c:1502)

然後每5分鐘以下一行:

[SOURCE_CAPTURE ]I: Heartbeat was signaled successfully (postgres_endpoint_util.c:1566)

請注意,如果 DMS​​ 任務停止或失敗,心跳也會停止,Postgres 實例上的磁碟使用量將開始快速增長。

我實際上不確定心跳何時有用,因為如果任務正在執行,我希望restart_lsn在有或沒有心跳查詢的情況下經常更新。

引用自:https://dba.stackexchange.com/questions/229469