資料庫組態
瞭解 Oracle GoldenGate for Db2 z/OS 的資料庫組態設定值。Oracle GoldenGate 需要資料庫設定值。
在 Db2 z/OS 上安裝擷取元件
Oracle GoldenGate Db2 z/OS Extract 使用 SQL 物件來存取及讀取 Db2 日誌。這些 Oracle GoldenGate Db2 z/OS 物件至少需要 zEC12 的最低硬體平台、2.4 的最低作業系統版本,以及 12.1 的最低 Db2 版本。這些元件包含可執行載入模組、SQL 預存程序和函數,以及透過預存程序呼叫的外部程式。這些元件為:
-
外部授權程式包含下列項目:
-
oggib001– 初始化與公用程式 -
oggrb001– 記錄讀取程式功能 -
oggmt001– 監視 ECSA 和 64 位元記憶體的獨立程式 -
oggjt001– 從oggib001程式執行oggmt001啟動 JCL 的設定程式 -
oggfr001– DBA 依據 Oracle Support 指南使用的公用程式
-
-
SQL 預存程序和函數樣板包含在 SQL 命令檔
zOS_OGG_Setup_Template.sql與OGGINITB和OGGREADB SQL中。 -
JCL 程序,
oggtask.jcl
注意: SQL 和 JCL 名稱值的外部名稱為預設值,您可以編輯和更新這些值。後續章節將探討此處理程序。
Db2 z/OS Extract 的複製處理作業圖說明 Db2 z/OS Extract 及其大型主機元件的複製處理作業。
圖 1:Db2 z/OS 擷取的複製處理作業

處理程序會啟動並執行,如上圖所示,使用數字 1 到 9。這些步驟列示如下:
-
Extract 會從安裝期間建立的參數檔讀取參數 (包括 JCL 參數)。
-
Extract 會報告啟動資訊,並準備寫入歷程檔。
-
ODBC 用於從 Db2 資料庫收集資訊並啟動複製。
-
OGGINITBSQL 預存程序開始準備共用記憶體並收集複製所需的其他資料。 -
SQL 預存程序呼叫的
OGGIB001外部程式會使用OGGJT001工作設定程式來啟動記憶體監督器工作。 -
OGGMT001記憶體監督器工作開始監督 ECSA 和 64 位元共用記憶體。 -
OGGREADBSQL 函數會呼叫外部程式OGGRB001。 -
OGGRB001外部程式會重複呼叫 Db2 日誌讀取程式,以建立將 1 對多個日誌記錄緩衝區傳回至 Extract 的結果集。 -
當日誌記錄結果集完成時,
OGGRB001會在將結果集傳送至 Extract 之後結束。
擷取重複步驟 7 到 9,直到關閉或異常終止為止。如果記憶體工作無法啟動,OGGIB001 程式會傳回指示發生 JCL 錯誤或設定問題的旗標,且 Extract 會開始管理其記憶體。如果記憶體工作正確啟動,記憶體工作會測試 48 位元組 ECSA 共用記憶體中的欄位不斷變更。如果 Extract 因任何原因而終止,這些欄位便會停止變更。此時,記憶體管理員會等待 Extract 或網路的速度變慢,並在設定的時間限制之後關閉記憶體。
若要安裝 Oracle GoldenGate for Db2 z/OS Extract 所需的元件:
-
請確定 Db2 z/OS 系統上有程式庫 (PDSE),並確定已在授權的程式庫清單中為其建立項目。此程式庫是 Oracle GoldenGate 外部程式物件所在的位置。
-
確定 APF 授權的 WLM 程序參照先前步驟中的 PDSE。Oracle 建議預存程序的 WLM 環境的
NUMTCB值為 10-40。NUMTCB值取決於同時針對資料庫執行的 Extract 數目上限,以及每個 Extract 所需的傳輸量。如果您想要彈性設定NUMTCB,請在啟動 JCL 中指定 WLM,但不要在建立面板中指定。 -
您可以為 WLM 應用程式環境設定安全性,並完成下列步驟來建立預存程序:
-
(選擇性) 指定哪些 WLM 建立的位址空間可以執行預存程序。如果您未完成此步驟,則任何 WLM 建立的位址空間都可以執行預存程序。
-
授予使用者在特定 WLM 位址空間中建立程序的存取權。
-
授予使用者在特定綱要中建立程序的存取權。針對適當的綱要使用
GRANT敘述句和CREATIN選項。 -
授予使用者在特定集合中建立程序套件的存取權。針對適當的集合使用
GRANT敘述句與CREATE選項。 -
將重新整理 WLM 環境的存取權授予適當的人員。
-
新增其他 RACF 授權給適當的人員,允許 WLM 程序啟動記憶體管理程式工作。
-
-
確定用於執行 WLM 啟動 JCL 程序的 ID 具有使用 RRSAF 的權限。每次啟動一個 Db2 WLM 位址空間時,會使用 RRSAF 來附加至 Db2。請參閱 Db2 12 for z/OS Installation and Migration Guide 。
-
在安裝 Oracle GoldenGate for Db2 z/OS 的 Linux 或 UNIX 中,有一個 ZIP 檔案位於名為
zOSutils.zip的 Oracle GoldenGate 安裝目錄中,其中包含一個名為zOSPrograms.zip的檔案。將zOSPrograms.zip解壓縮至zOSPrograms.tar,然後以二進位模式將zOSPrograms.tar複製到您的 Db2 z/OS 系統中到 HFS 目錄中。 -
在 USS 或 OMVS 的 Db2 z/OS 系統上,將目錄變更為包含
zOSPrograms.tar的目錄。 -
使用以下命令回復物件:
tar -xovf zOSPrograms.tar。 -
將物件複製到授權的 PDSE。使用
cp -X ogg[irmj][abt][0-9]* "//'authorized_PDSE_name'",其中authorized_PDSE_name是適用於 Oracle GoldenGate 物件的 APF 授權 PDSE 名稱。使用此指令會使用預設名稱來安裝物件。注意:在此命令中,複製目標為雙引號正斜線單引號授權的 PDSE 名稱單引號雙引號。
-X是大寫的 X,不是小寫的 x。 -
安裝不同名稱的命令檔可讓您符合系統協定,或允許您執行多個版本的 Oracle GoldenGate。若要以不同的名稱安裝命令檔,建議您先建立重新命名程式的 Shell 命令檔,再將它們複製到 PDSE。下列程式碼片段提供一個 Shell 命令檔範例。
#!/bin/bash # Copy new programs renaming them to version 21.12 names. cp oggib001 oggi2112 cp oggrb001 oggr2112 cp oggmt001 oggm2112 cp oggjt001 oggj2112 cp -X oggi2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggr2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggm2112 "//'SYS4.WLMDSNA.AUTHLOAD'" cp -X oggj2112 "//'SYS4.WLMDSNA.AUTHLOAD'"您可以使用
chmod +x scriptname命令來執行命令檔。您可以將此程序檔複製並重複用於新版本。 -
您必須使用選擇的 SQL 工具建立 SQL 程序,讓 Oracle GoldenGate 可以呼叫 Extract 物件。Oracle GoldenGate 預存程序應僅授予使用它們進行複製的使用者權限。
Oracle GoldenGate 安裝目錄中的 SQL 命令檔樣板範例包含 SQL 敘述句,可設定 Db2 z/OS 執行處理上的預存程序和函數。
zOSutils.zip中包含的 SQL 命令檔zOS_OGG_Setup_Template.sql適用於 Db2 v12.1 和更新的版本,可以從可連線至 Db2 z/OS 執行處理之任何平台上的任何 SQL 工具執行。此命令檔必須在您搭配 Extract 使用的 Db2 執行處理上執行。遠端安裝目錄中提供的程序檔格式為 ASCII。請先編輯以下這一行,再執行命令檔:
- 請修改
WLM ENVIRONMENT行,為將用於 Oracle GoldenGate 的 WLM 環境使用正確的名稱。
- 請修改
注意:您可以使用 TRANLOGOPTIONS REMOTESCHEMA schemaname Extract 參數來設定 oggifi0001 綱要名稱。無法設定範本中的程序和函數名稱 OGGINITB 和 OGGREADB。如果命令檔名稱和 PDSE 物件名稱相符,您可以重新命名命令檔和 PDSE 中的每個外部名稱。變更這些名稱是允許移轉至新版本或必須遵循 Db2 z/OS 上特定命名程序之程序的一部分。
下表包含您可能想要編輯和 (或) 更新的元件檢查清單:
表格 2 可編輯元件清單
| 元件 | 來源 | 重新命名 | 其中 |
|---|---|---|---|
oggib001 |
tar 檔案 | 授權 PDSE | |
oggrb001 |
tar 檔案 | 授權 PDSE | |
oggmt001 |
tar 檔案 | 授權的 PDSE 和 proc 程式庫 | |
oggjt001 |
tar 檔案 | 授權的 PDSE 和擷取參數 | |
oggpr001 |
tar 檔案 | 程序庫與擷取參數 | |
| 前頸 | MVS | 視需要新增擷取參數 | |
| 步驟程式庫 | MVS | WLM 和 oggpr001 程序程式庫 |
|
| 遠端綱要 | zOS_OGG_Setup_Template.sql 與擷取參數 |
||
| WLM 名稱 | MVS | zOS_OGG_Setup_Template.sql |
|
| 外部課程 | zOS_OGG_Setup_Template.sql |
注意:請記得在每次安裝新的修正程式後,執行所有這些步驟。
使用共用的記憶體管理程式進行擷取
Oracle GoldenGate Extract 會從 WLM 啟動個別工作或工作,以監督共用記憶體使用狀況。此工作是在 MVS 中執行的最少任務,但不是 WLM。從 WLM 啟動時,必須要有權限才能執行此命令檔的使用者名稱 (通常使用 RACF 之類的使用者)。此受監督的共用記憶體包含小型的 48 到 64 位元組 ECSA 區域,以及根據 Extract 緩衝區大小的較大 64 位元區域。
共用記憶體中的特定欄位會針對 Extract 執行的每個讀取進行更新。不論命令檔是否傳回任何資料,都會更新這些欄位。監控器會檢查這些欄位,以確保 Extract 未變成非作用中。如果 Extract 為非作用中狀態,則會釋出共用記憶體並結束監督器。您可以使用 Extract 參數檔中的 remote_memory_options 參數來控制「記憶體管理程式」。
您可以指定多個子參數來設定監督工作。您可以指定遠端記憶體選項的子參數,來設定監督器使用的等待間隔與非作用中時間,如下列範例所示:
remote_memory_options wait_interval 2000 inactive_time 01:00
範例中的等待間隔以百分之一秒表示,並讓監督器在每次記憶體檢查之間等待 20 秒。如果監視器已檢查 1 小時 (格式 HH:MM),且 Extract 仍處於非作用中狀態,則監視器會在釋出共用記憶體後關閉。如果 Extract 在該小時內回到作用中狀態,監督器將會重設其狀態並繼續監督。
wait_interval 可以有 100 到 6000 的值,且預設值為 1000。inactive_time 可以從 00:10 到 12:00,且預設值為 00:30。如果監視器未正確啟動,則「擷取」會在「擷取」報表中顯示警告訊息,且「擷取」會繼續處理。Extract 將會在關閉時嘗試釋出 ECSA 記憶體。
遠端記憶體參數有三個選項可執行此功能。這些參數的語法為:
-
task_procedure proc name -
task_library proc library -
task_setup task setup program
範例:
remote_memory_options task_procedure OGGPR001
remote_memory_options task_library TEST.PROCLIB
remote_memory_options task_setup OGGJT001
您可以在單一指令中指定多個選項,如下所示:
remote_memory_options task_procedure OGGPR001 task_library TEST.PROCLIB task_setup OGGJT001
注意:遠端記憶體參數的值不區分大小寫。
預設值為程序名稱 OGGPR001 與任務設定程式 OGGJT001。工作庫沒有預設,因為程序可能會安裝在其中一個 MVS 系統預設程序庫中。只有程序不在系統預設磁帶櫃中時,才需要使用工作庫參數。
記憶體工作將從簡單的 JOB 卡和 EXEC 程序名稱開始,其中包含從 Extract 傳送的參數。某些 z/OS 系統可能需要工作卡上的各種其他參數。您也可以使用遠端記憶體參數修改 JOB 參數,如下方提供的範例所示。
remote_memory_options task_jobname [valid MVS job name (see below)]
remote_memory_options task_acct_info [valid MVS acct value (see below)]
remote_memory_options task_programmer [valid MVS programmer name, Can use single quotes]
remote_memory_options task_class [valid MVS job class A to Z or 0 to 9]
remote_memory_options task_msgclass [valid MVS msgclass A to Z or 0 to 9]
remote_memory_options task_msglevel [valid MVS message level n or (,n) or (n,n) n=valid digit]
remote_memory_options task_priority [valid MVS priority 0-15]
您可以使用兩個有效的字元和星號來指定 JOB 名稱,例如 AA*。預設的 JOB 名稱為 GG*。指定星號時,星號會由六個隨機數字取代。否則,如果您指定一到八個位元組字元名稱,它必須是有效的 MVS 工作名稱。
指定下列任一有效 MVS 格式的帳戶值:
-
OTXI -
'MY ACCT' -
(ACCT,1234,ABC)
對於允許特殊字元的參數 (例如 acct_info 和 programmer),請以單引號括住這些參數。此外,有關在引號中使用雙引號或 & 符號的 MVS 規則仍會繼續適用。「摘錄」會對這些參數進行最少的驗證,並將完整驗證保留給 MVS 處理程序。如果您指定重複的參數,則 Extract 將接受第一個參數並忽略任何重複項目。
zOSPrograms.zip 檔案中將會包含範例程序 JCL 檔案。此 JCL 不會取代 WLM 程序。在 WLM 中建立的監視器會使用 JCL 在 MVS 中執行。如果您新增支援工作輸出存檔或其他程序的命令或 JCL,JCL 程序就可以提供更多的彈性。
注意:在安裝及設定記憶體管理程式時,如果必須等待 RACF 設定問題、啟動器使用狀況、工作類別使用狀況或其他與記憶體管理程式相關的類似問題,則可能需要暫時關閉記憶體管理程式。Extract 將在此執行處理中以其舊有模式運作,並釋出 ECSA 和 64 位元共用記憶體。Extract 顯示 Extract 報表結束時的共用記憶體釋出。
Oracle 不建議此為永久解決方案。使用時,使用者必須負責監督 ECSA 和 64 位元記憶體的發行版本。開啟此功能的參數會以底線開始,以提醒使用者系統正在此模式中執行。其他遠端記憶體選項則可以保留並移除關閉記憶體管理的選項。遠端記憶體管理參數預設為開啟,並以下列方式指定:
remote_memory_options _remote_memory_on
remote_memory_options _remote_memory_off
JCL 的格式如下:
//*====================================================================
//* EXAMPLE JCL FOR RUNNING THE COMMON MEMORY MONITOR PROCEDURE
//* ADDRESS SPACE NEEDING AN AUTHORIZED LOAD LIBRARY
//* NOTE: THE PROGRAM OGGMT001 CAN BE RENAMED IN THE LIBRARY BUT THE
//* NEW NAME MUST MATCH THE PROGRAM NAME IN THIS JCL
//*====================================================================
//OGGDSNNA PROC RGN=0K TR=,EX=,MEM=,LEN=,SEC=,DUR=,VER=
//OGGDSNNX EXEC PGM=OGGMT001,REGION=&RGN,TIME=NOLIMIT,
// PARM='&TR &EX &MEM &LEN &SEC &DUR &VER'
//*--------------------------------------------------------------------
//* REPLACE &PREFIX.**.AUTHLOAD LIBRARIES WITH SITE SPECIFIC FILE(S)
//* ALSO REPLACE THE CEE LIBRARY WITH SITE SPECIFIC FILE
//* DSNN COULD REPRESENT A DB2 SPECIFIC LOAD LIBRARY IF ONE EXISTS
//*--------------------------------------------------------------------
//STEPLIB DD DISP=SHR,DSN=&PREFIX..WLMDSNN.USER.AUTHLOAD
// DD DISP=SHR,DSN=CEE.SCEERUN
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
修改標記為 PREFIX 的程式庫,使其可在您的系統中運作。如果您將從 zOSPrograms.tar 檔案複製的 OGGMT001 程式重新命名,就必須在 JCL 中變更該程式。PROC 敘述句上的空值參數會用於提供資訊。工作 OGGJT001 設定程式使用從 Extract 傳送的資訊提供這些值。您也可以視需要指定任意數目的步驟庫資料集名稱。zOSPrograms.tar 檔案中提供的 JCL 程序提供多個步驟磁帶櫃的範例。