資料庫組態

瞭解 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 預存程序和函數,以及透過預存程序呼叫的外部程式。這些元件為:

  1. 外部授權程式包含下列項目:

    1. oggib001 – 初始化與公用程式

    2. oggrb001 – 記錄讀取程式功能

    3. oggmt001 – 監視 ECSA 和 64 位元記憶體的獨立程式

    4. oggjt001 – 從 oggib001 程式執行 oggmt001 啟動 JCL 的設定程式

    5. oggfr001 – DBA 依據 Oracle Support 指南使用的公用程式

  2. SQL 預存程序和函數樣板包含在 SQL 命令檔 zOS_OGG_Setup_Template.sql 與 OGGINITB 和 OGGREADB SQL 中。

  3. JCL 程序,oggtask.jcl

注意: SQL 和 JCL 名稱值的外部名稱為預設值,您可以編輯和更新這些值。後續章節將探討此處理程序。

Db2 z/OS Extract 的複製處理作業圖說明 Db2 z/OS Extract 及其大型主機元件的複製處理作業。

圖 1:Db2 z/OS 擷取的複製處理作業

影像的描述如下

處理程序會啟動並執行,如上圖所示,使用數字 1 到 9。這些步驟列示如下:

  1. Extract 會從安裝期間建立的參數檔讀取參數 (包括 JCL 參數)。

  2. Extract 會報告啟動資訊,並準備寫入歷程檔。

  3. ODBC 用於從 Db2 資料庫收集資訊並啟動複製。

  4. OGGINITB SQL 預存程序開始準備共用記憶體並收集複製所需的其他資料。

  5. SQL 預存程序呼叫的 OGGIB001 外部程式會使用 OGGJT001 工作設定程式來啟動記憶體監督器工作。

  6. OGGMT001 記憶體監督器工作開始監督 ECSA 和 64 位元共用記憶體。

  7. OGGREADB SQL 函數會呼叫外部程式 OGGRB001。

  8. OGGRB001 外部程式會重複呼叫 Db2 日誌讀取程式,以建立將 1 對多個日誌記錄緩衝區傳回至 Extract 的結果集。

  9. 當日誌記錄結果集完成時,OGGRB001 會在將結果集傳送至 Extract 之後結束。

擷取重複步驟 7 到 9,直到關閉或異常終止為止。如果記憶體工作無法啟動,OGGIB001 程式會傳回指示發生 JCL 錯誤或設定問題的旗標,且 Extract 會開始管理其記憶體。如果記憶體工作正確啟動,記憶體工作會測試 48 位元組 ECSA 共用記憶體中的欄位不斷變更。如果 Extract 因任何原因而終止,這些欄位便會停止變更。此時,記憶體管理員會等待 Extract 或網路的速度變慢,並在設定的時間限制之後關閉記憶體。

若要安裝 Oracle GoldenGate for Db2 z/OS Extract 所需的元件:

  1. 請確定 Db2 z/OS 系統上有程式庫 (PDSE),並確定已在授權的程式庫清單中為其建立項目。此程式庫是 Oracle GoldenGate 外部程式物件所在的位置。

  2. 確定 APF 授權的 WLM 程序參照先前步驟中的 PDSE。Oracle 建議預存程序的 WLM 環境的 NUMTCB 值為 10-40。NUMTCB 值取決於同時針對資料庫執行的 Extract 數目上限,以及每個 Extract 所需的傳輸量。如果您想要彈性設定 NUMTCB,請在啟動 JCL 中指定 WLM,但不要在建立面板中指定。

  3. 您可以為 WLM 應用程式環境設定安全性,並完成下列步驟來建立預存程序:

    1. (選擇性) 指定哪些 WLM 建立的位址空間可以執行預存程序。如果您未完成此步驟,則任何 WLM 建立的位址空間都可以執行預存程序。

    2. 授予使用者在特定 WLM 位址空間中建立程序的存取權。

    3. 授予使用者在特定綱要中建立程序的存取權。針對適當的綱要使用 GRANT 敘述句和 CREATIN 選項。

    4. 授予使用者在特定集合中建立程序套件的存取權。針對適當的集合使用 GRANT 敘述句與 CREATE 選項。

    5. 將重新整理 WLM 環境的存取權授予適當的人員。

    6. 新增其他 RACF 授權給適當的人員,允許 WLM 程序啟動記憶體管理程式工作。

  4. 確定用於執行 WLM 啟動 JCL 程序的 ID 具有使用 RRSAF 的權限。每次啟動一個 Db2 WLM 位址空間時,會使用 RRSAF 來附加至 Db2。請參閱 Db2 12 for z/OS Installation and Migration Guide 。

  5. 在安裝 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 目錄中。

  6. 在 USS 或 OMVS 的 Db2 z/OS 系統上,將目錄變更為包含 zOSPrograms.tar 的目錄。

  7. 使用以下命令回復物件:tar -xovf zOSPrograms.tar。

  8. 將物件複製到授權的 PDSE。使用 cp -X ogg[irmj][abt][0-9]* "//'authorized_PDSE_name'",其中 authorized_PDSE_name 是適用於 Oracle GoldenGate 物件的 APF 授權 PDSE 名稱。使用此指令會使用預設名稱來安裝物件。

    注意:在此命令中,複製目標為雙引號正斜線單引號授權的 PDSE 名稱單引號雙引號。-X 是大寫的 X,不是小寫的 x。

  9. 安裝不同名稱的命令檔可讓您符合系統協定,或允許您執行多個版本的 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 命令來執行命令檔。您可以將此程序檔複製並重複用於新版本。

  10. 您必須使用選擇的 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 記憶體。

遠端記憶體參數有三個選項可執行此功能。這些參數的語法為:

範例:

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 格式的帳戶值:

對於允許特殊字元的參數 (例如 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 程序提供多個步驟磁帶櫃的範例。