ADD HEARTBEATTABLE
適用於所有支援的資料庫。如需支援資料庫的詳細資訊,請參閱認證矩陣。
此命令需要使用 DBLOGIN 進行資料庫登入。
使用 ADD HEARTBEATTABLE 來建立使用自動活動訊號功能所需的物件。此命令會執行下列作業
-
建立活動訊號內建值表格、活動訊號表及活動訊號歷史記錄表格。
-
建立
GG_LAG與GG_LAG_HISTORY檢視。 -
建立排程器工作所呼叫的
GG_UPDATE_HB_TAB和GG_PURGE_HB_TAB程序。 -
建立定期更新活動訊號與內建值表格並將歷史記錄表格永久清除的排程器工作。然而,它不會為 Azure SQL Database、PostgreSQL、Teradata 及 TimesTen 建立這些工作。
-
填入內建值表格。
-
若為 Oracle 多租用戶資料庫:
-
活動訊號物件和工作是在使用
DBLOGIN命令連線到資料庫的使用者綱要中建立。Oracle GoldenGate Extract 和 Replicat 會尋找USERID或USERIDALIAS綱要中的活動訊號物件。使用DBLOGIN進行連線時,請確定已將連線設為 Extract 與 Replicat 處理作業將使用的適當USERID或USERIDALIAS綱要。 -
Extract:使用每個 PDB 中的綱要名稱。已註冊 Extract 的每個 PDB 都必須有自己的活動訊號表。
-
Replicat:每個 Replicat 都必須有自己的活動訊號表,以供其 PDB 使用。
-
若為雙向、作用中/作用中的複製,活動訊號表所屬的綱要,必須與每個位置的外送 Extract 及內送 Replicat 的綱要相同。例如,請查看下列使用案例:
網站 A 網站 B
EAB———— > ` RAB`RBA———— > ` EBA`在此範例,
EAB和RBA活動訊號表格必須使用相同的綱要。但是,EAB和RAB也可以使用不同的綱要。
-
-
除了有限的情況下,Oracle GoldenGate for Oracle 活動訊號表管理已經過簡化,不需要
GGSCHEMA(或HEARTBEATTABLE參數)。活動訊號表格管理作業只會在DBLOGIN使用者的綱要中執行。除了 Oracle CDB 根 Extract 之外,Extract 及 Replicat 處理作業會在 ER 連線使用者的綱要中尋找活動訊號表。下表顯示 Oracle AI Database 的 Extract 與 Replicat 行為:Extract/Replicat 處理作業 行為 非根 Extract (非 CDB,及 PDB) 如果是第一個 Extract 使用者,則使用
GGSCHEMA或如果是 Autonomous AI 資料庫,則使用者必須是ggadmin。如果活動訊號是在 Extract 啟動之後建立的,就只需要查看 Extract 使用者。
CDB 根 Extract 已使用 GGSCHEMA。Replicat 若是第一個 Replicat 使用者,則使用
GGSCHEMA。若為 ADB,使用者必須是ggadmin。如果活動訊號是在 Replicat 啟動之後建立的,就只需要查看 Replicat 使用者。
DELETE EXTRACT/REPLICAT若是第一個 Extract 或 Replicat 使用者,則會使用 GGSCHEMA。若為 ADB,使用者必須是ggadmin。此功能可讓您在 Oracle GoldenGate 中心部署中使用活動訊號表,該部署含有使用不同 Oracle GoldenGate 管理員綱要管理的多個資料庫。
注意:活動訊號表物件一律不應建立在 Oracle Multitenant Database 的根 CDB 中。
- 對於異質或非 Oracle 資料庫,活動訊號物件和工作會建立在 GLOBALS 檔案中所列的
GGSCHEMA值中。
預設的原始內建值、活動活動訊號和歷史記錄表格名稱分別為 GG_HEARTBEAT_SEED、GG_HEARTBEAT 和 GG_HEARTBEAT_HISTORY。
在「微服務架構」中,綱要是使用複製設定值來設定。
-
您可以在
GLOBALS檔案中指定HEARTBEATTABLEhbschemaname.hbtablename,以覆寫預設名稱。 -
表格、程序與工作會在綱要
hbschemaname中建立。 -
內建和歷史記錄表格是藉由將
_SEED和_HISTORY附加至表格hbtablename來建立的。
若為 Db2 LUW,則必須使用 db2set DB2_ATS_ENABLE=yes 指令設定 DB2_ATS_ENABLE 特性。
對於 Db2 for i,若要處理活動指標表功能的升級或組態錯誤,您可以再次執行 ADD HEARTBEATTABLE 命令,以修復現有活動指標設定的功能,而無需刪除現有的活動指標資料。
若為 Db2,則必須安裝授權程式 5770SS1 Option 39 International Components for Unicode。
若為 Db2 for i,活動訊號表必須與使用該活動訊號表在 Extract 中複製的物件排定記錄至同一個日記帳中。如果不這麼做,則 Extract 會異常中止,指出有多個日記帳可供使用。此外,特定 Oracle GoldenGate 安裝中未讀取相同日記帳的任何其他 Extract,都無法為其啟用活動訊號表。
若為 Amazon Aurora MySQL,必須在參數群組中啟用全域變數 event_scheduler,因為 Amazon RDS 不允許設定全域變數。資料庫重新啟動後,event_scheduler 會返回停用中。為了避免此情況,您必須在 my.cnf/ini 檔案中啟用 event_scheduler。
若為 PostgreSQL,必須手動建立系統工作,以定期呼叫活動活動訊號記錄更新與歷史記錄清除功能 gg_hb_job_run。例如,您可以建立每分鐘執行一次的 cron 工作。該功能會在活動訊號組態中,查看實際的活動訊號記錄更新及永久清除頻率設定值,然後只處理在這些界限內的作業:
PGPASSWORD="$passwd" psql -U gguser -d dbname -h dbhostname -p dbport# -c "select <ggschema.gg_hb_job_run();" >/dev/null 2>&1
若為 Azure SQL Database,只支援 ADD HEARTBEATTABLE TARGETONLY,而且沒有具備 Azure SQL 資料庫的 SQL Server 代理程式,因此無法建立永久清除常式。因此,使用者必須定期執行 GG_PURGE_HB_TAB 預存程序以移除舊的活動訊號記錄。
語法
ADD HEARTBEATTABLE
[, FREQUENCY number_in_seconds]
[, RETENTION_TIME number_in_days] |
[, PURGE_FREQUENCY number_in_days]
[, PARTITIONED]
[, TARGETONLY]
FREQUENCY number_in_seconds
指定活動訊號記錄的產生頻率。預設值為 60 秒。
請考量下列限制:
-
若為 Oracle AI Database,最小值為 0,最大值為 7999。
-
若為 Db2 for i 系列,最小值為 0,最大值為 7999。
-
若為 Db2 LUW 及 Db2 z/OS,最小值為 60,最大值為 7999。
-
對於 Db2 /zOS 及 Db2 LUW 的頻率,若該值小於 3600,就必須是 60 的倍數;若該值大於或等於 3600,就必須是 3600 的倍數。
-
若為 MySQL,最小值為 0,最大值為 7999。
-
若為 SQL Server,最小值為 10,最大值為 7999。
-
若為 PostgreSQL,最小值為 60,最大值為 7999。
-
對於 Sybase,最小值為 1 分鐘 (60 秒),最大值為 133 分鐘 (7999 秒)。
-
支援將
FREQUENCY設為 0 的資料庫會暫停活動訊號記錄排程器。
RETENTION_TIME number_in_days
指定要把活動訊號歷史記錄表格中,比保留時間舊的活動訊號項目永久清除。預設為 30 日。
所有資料庫的最小值都是 1,最大值都是 2147483646。
PURGE_FREQUENCY number_in_days
指定永久清除排程器的執行頻率,以便刪除活動訊號歷史記錄表格中,比保留時間舊的表格項目。預設值為 1 天。
若為 Db2 LUW 及 Db2 z/OS,最小值為 1,最大值為 31。
若為受支援的所有其他資料庫,最小值為 1,最大值為199。
PARTITIONED
適用於 Oracle。
在活動訊號歷史記錄表格上啟用分割。所接收活動訊號時戳的資料欄會用來分割表格,間隔為一天。活動訊號歷史記錄表格預設為不分割。
TARGETONLY
Oracle AI Database、Db2 i Series、Db2 LUW、Db2 z/OS、MySQL、PostgreSQL 及 SQL Server 均適用。
不會同時啟用活動訊號內建值表格及活動訊號表上的補充日誌記錄功能,也不會建立排程器工作來更新活動訊號表。
範例
下列命令會建立預設活動訊號表、程序及工作。
ADD HEARTBEATTABLE
下列命令會使用自訂頻率、保留時間和永久清除頻率,來建立活動訊號表、程序及工作。
ADD HEARTBEATTABLE, FREQUENCY 120, RETENTION_TIME 10, PURGE_FREQUENCY 2
下列命令會建立活動訊號表、程序及工作,其中會在活動訊號歷史記錄表格中啟用分割,但不在活動訊號表與活動訊號內建值表格中啟用補充日誌記錄。
ADD HEARTBEATTABLE, partitioned, TARGETONLY