日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle GoldenGate OGG管理员手册(较早资料)

發布時間:2023/12/1 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle GoldenGate OGG管理员手册(较早资料) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一章 系統實現簡述

  • 前言
  • 編寫本手冊的目的是為系統管理員以及相關操作人員提供 Oracle? Goldengat? 軟

    件的日常維護和使用的技術參考;

    ?

    ?

    3

    ?

    ORACLE

    第二章?OGG?日常維護操作指南

  • 啟動?Goldenagate
  • ?oracle?用戶登錄生產數據庫主機系統
  • 進入 OGG 安裝目錄/ggs,執行./ggsci?進入命令行模式;
  • 啟動源端管理進程
  • Copyright OGG Software, Inc.?? 1995-2007

    GGSCI >?start mgr????????? //? 啟動 manager 進程

  • 啟動所有進程
  • Copyright OGG Software, Inc.?? 1995-2007

    GGSCI >?start ext *???????? //啟動所有抽取進程

  • 查看進程狀態是否為 Running(表示已經啟動);
  • Copyright OGG Software, Inc.?? 1995-2007

    ?

    GGSCI >?info ext*//查看所有進程信息
    ??
    SCI >?start rep *//啟動所有投遞進程
    ??

    ?

  • 查看進程狀態是否為 Running(表示已經啟動);
  • Copyright OGG Software, Inc.?? 1995-2007

    GGSCI >?info er *?? //查看所有進程信息

    說明:GGSCI > start er *是啟動所有進程,如果只啟動一個進程命令為 start <

    進程名>。例如進程名稱為 dpesz,則啟動命令為 start dpesz。

  • 停止?OGG
  • ?oracle?用戶登陸主機系統;
  • ?

    ?

    4

    ?

    ORACLE

  • 進入 OGG 安裝目錄/ggs,執行./ggsci?進入命令行模式
  • 驗證 OGG 的抽取進程重起所需的日志是否存在,對各個 extXX 進程分別執 行命令:
  • Copyright OGG Software, Inc.?? 1995-2007

    GGSCI>info extXX,showch???????//查詢?extXX?進程回滾檢查點

    Read Checkpoint #1

    Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 1

    Sequence #: 9671?????????????????????????? //在節點 1 上回滾需要的檢查點日志序列號

    RBA: 239077904

    Timestamp: 2008-05-20 11:39:07.000000

    SCN: 2195.1048654191

    Redo File: Not available

    Current Checkpoint (position of last record read in the data source): Thread #: 1

    Sequence #: 9671 RBA: 239377476

    Timestamp: 2008-05-20 11:39:10.000000

    SCN: 2195.1048654339

    Redo File: Not Available

    Read Checkpoint #2

    Recovery Checkpoint (position of oldest unprocessed transaction in the data source):

    Thread #: 2

    Sequence #: 5287??????????????????????? //在節點 2 上回滾需要的檢查點日志序列號

    RBA: 131154160

    Timestamp: 2008-05-20 11:37:42.000000

    SCN: 2195.1048640151

    Redo File: /dev/rredo07

    Current Checkpoint (position of last record read in the data source):

    Thread #: 2

    Sequence #: 5287

    ?

    ?

    5

    ?

    ORACLE

    RBA: 138594492

    Timestamp: 2008-05-20 11:39:14.000000

    SCN: 2195.1048654739

    Redo File: /dev/rredo07

    查看 Recovery Checkpoint 所需要讀取的最古老日志序列號“9671”“5287”標

    明的歸檔日志以及以后的日志文件在當前的歸檔目錄中是否完全存在;如果存在則

    可以停止生產數據庫主機上的 ext 進程;

  • 停止生產中心的相關進程;
  • Copyright OGG Software, Inc.?? 1995-2007

    1)檢查 exthy 進程是否將數據全部抓取出來

    進入 OGG 控制臺,執行:info all 查看 OGG 進程狀態。再執行:lag ext exthy 確

    認結果為:At EOF, no more records to process.????????? 再執行 send ext exthy,showtrans 如

    果沒有查到結果,(關鍵顯示信息如下: not transaction founds)則可進行下一步,執

    行:info exthy,detail,記錄下顯示內容的 remote 部分顯示的 seqno 和 extrba 的數值;

    再執行 info dpehy ,記錄下顯示的 seqno 和 extrba 的數值,和上一步執行的結果進

    行比較,兩個結果相同,表示 exthy 進程處理完所有的數據。

    2)? info dpehy,detail,記錄下顯示內容的 remote 部分顯示的 seqno 和 extrba 的數

    值,提供給 rephy 來使用。

    3)檢查 dpe 是否將數據全部傳輸到目標端

    登陸 OGG 控制臺執行 info rephy 記錄下顯示的 seqno 和 extrba 的數值,如果兩個

    結果相同,表示 dpewf 進程處理完所有數據

    4)停止 exthy 和 dpehy 進程

    GGSCI>stop exthy

    GGSCI>stop dpehy

    5)多次執行 Info rephy,檢查隊列的 rba 的數值是否還在變化,如果無變化 ,表

    示數據已經都同步完畢 則可進行下一步

    ?

    ?

    6

    ?

    ORACLE

    6)stop rephy

    7)執行 info all,所有進程都是 STOPPED,表示正常

    4、執行 info all,所有進程都是 STOPPED,表示正常

    說明:只有在需要停止 ext 進程時,才需要如此檢測,dpe、rep 進程則不需要;

    stop er *表示停止所有進程,只停止一個進程命令為 stop <進程名>。例如進程名稱

    為 dpesz,則啟動命令為 start dpehy;

  • 查看進程信息
  • OGG 所有進程狀態共有 3 種:

    • Running:正常運行
    • Stopped:正常停止或未能啟動
    • Abended:異常中斷;

    正常的情況下,進程為 Running 或則 Stopped 狀態;一旦出現 Abended 狀態,需

    查詢相關的報告文件和 dsc 文件以定位錯誤;

    進入 OGG 安裝目錄并執行./ggsci?進入命令行模式;

    ?

    3.1?查詢所有進程狀態????
    命令:GGSCI > info all????
    ???
    Copyright OGG Software, Inc.?? 1995-2007??
    GGSCI (P595B_ctaisdb) 2>?info all//查詢所有進程信息?
    ProgramStatusGroupLagTime Since Chkpt
    MANAGERRUNNING????
    EXTRACTRUNNINGEXTKJ00:00:0000:00:07
    EXTRACTRUNNING?DPEKJ00:00:0000:00:09
    EXTRACTRUNNINGEXTSZ00:00:0000:00:00
    ???????

    ?

    ?

    7

    ?

    ORACLE

    EXTRACT?????? RUNNING???????? DPESZ??????????? 00:00:00????????? 00:00:00

    3.2?查詢相關進程狀態

    命令:GGSCI > info <進程名>,如 repxx/extxx/dpexx 查看單個進程狀態;

    輸出示例如下:

    ?

    Copyright OGG Software, Inc.?? 1995-2007?
    ??
    GGSCI (P595B_ctaisdb) 2>?info extxx//查詢進程 extsz 信息
    EXTRACTEXTSZLast Started 2008-05-11 14:49Status RUNNING
    Checkpoint Lag?00:00:00 (updated 00:00:01 ago)
    Log Read CheckpointFile Not Available?
    2008-05-20 11:39:02?? Thread 1, Seqno 9671, RBA 238663364
    Log Read CheckpointFile /dev/rredo07?

    2008-05-20 11:39:03?? Thread 2, Seqno 5287, RBA 138279848

    3.3?查看進程檢查點信息

    命令:GGSCI > info <進程名>showch

    示例如下:

    Copyright OGG Software, Inc.?? 1995-2007

    GGSCI>info extXX,showch???????//查詢?extXX?進程回滾檢查點

    Read Checkpoint #1

    Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 1

    Sequence #: 9671?????????????????????????? //在節點 1 上回滾需要的檢查點日志序列號

    RBA: 239077904

    Timestamp: 2008-05-20 11:39:07.000000

    SCN: 2195.1048654191

    Redo File: Not available

    ?

    ?

    8

    ?

    ORACLE

    Current Checkpoint (position of last record read in the data source): Thread #: 1

    Sequence #: 9671 RBA: 239377476

    Timestamp: 2008-05-20 11:39:10.000000

    SCN: 2195.1048654339

    Redo File: Not Available

    Read Checkpoint #2

    Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 2

    Sequence #: 5287??????????????????????? //在節點 2 上回滾需要的檢查點日志序列號

    RBA: 131154160

    Timestamp: 2008-05-20 11:37:42.000000

    SCN: 2195.1048640151

    Redo File: /dev/rredo07

    Current Checkpoint (position of last record read in the data source):?? //當前檢查點

    Thread #: 2 Sequence #: 5287

    RBA: 138594492

    Timestamp: 2008-05-20 11:39:14.000000

    SCN: 2195.1048654739

    Redo File: /dev/rredo07

    說明:查看單個進程的檢查點詳細信息,包括讀取到什么位置,寫到什么位置。

    特別需要注意 Recovery Checkpoint,這個檢查點記錄的是當前最早沒有提交的事務

    開始的日志,如果下次需要重起則需要讀這個日志,要保證其沒有被刪除

    3.4?查看進程報告

    命令:GGSCI > view report <進程名>

    例如 repsz 查看復制進程報告。一般在進程出現 abended 后可以在報告里面找到

    ?

    ?

    9

    ?

    ORACLE

    錯誤信息。

    示例如下:

    Copyright OGG Software, Inc.?? 1995-2007

    GGSCI > view report repsz

    ***********************************************************************

    OGG Delivery for Oracle Version v9.5.1.1 Build 006

    AIX 5L (optimized 64-bit), Oracle 9.2.0 on Nov 30 2007 11:47:10 Copyright OGG Software, Inc. 1995-2007

    Starting at 2008-04-24 23:10:17

    ***********************************************************************

    Operating System Version:

    AIX

    Version 5, Release 3

    Node: zjzbnhdb03

    Machine: 00CE7A8F4C00

    ?

    ???soft limithard limit
    Address Space Size:?unlimitedunlimited
    Heap Size?:unlimitedunlimited
    File Size:?unlimitedunlimited
    CPU Time?:unlimitedunlimited

    Process id: 1335310

    ***********************************************************************

    **???????????????????? Running with the following parameters?????????????????????????????? **

    ***********************************************************************

    replicat repsz???? //???? 進程名

    userid OGG, password *************

    ?

    ?

    10

    ?

    ORACLE

    REPORT AT 01:59???????????????? //報告時間

    reportrollover at 02:00 –handlecollisions –reperror default,discard

    discardfile /oradata/OGG/repxm.dsc,append,megabytes 100m –ddlerror default discard

    assumetargetdefs allownoopupdates dynamicresolution numfiles 3000

    MAP ctais2.* ,TARGET ctais2.*;

    Database Version:

    Oracle9i Enterprise Edition Release 9.2.0.7.0 – 64bit Production

    PL/SQL Release 9.2.0.7.0 – Production

    CORE???? 9.2.0.7.0 Production

    TNS for IBM/AIX RISC System/6000: Version 9.2.0.7.0 – Production

    NLSRTL Version 9.2.0.7.0 – Production

    Database Language and Character Set:

    NLS_LANG = “AMERICAN_AMERICA.US7ASCII”

    NLS_LANGUAGE???????? = “AMERICAN”

    NLS_TERRITORY?????? = “AMERICA”

    NLS_CHARACTERSET = “US7ASCII”

    For further information on character set settings, please refer to user manual.

    ***********************************************************************

    **???????????????????????????????????? Run Time Messages?????????????????????????????????????????????????? **

    ***********************************************************************

    Opened trail file /oradata /OGG/dirdat/xm000000 at 2008-04-24 23:10:19

    ?

    ?

    11

    ?

    ORACLE

    Wildcard MAP resolved (entry CTAIS2.*):

    MAP CTAIS2.DM_CZRY, TARGET ctais2.DM_CZRY; Using following columns in default map by name:

    CZRY_DM, SWJG_DM, CZRY_MC, SWRY_DM, QX_SWJG_DM, XM_NSRSBH, XYBZ, YXBZ

  • 配置自動刪除隊列文件
    • 以 oracle 用戶登錄系統,進入安裝目錄執行./ggsci;
    • 執行 edit param mgr 編輯管理進程參數,加入或修改以下行

    Copyright OGG Software, Inc.?? 1995-2007

    GGSCI>edit param mgr?????//編輯 Manager 參數

    purgeoldextracts /<OGG?安裝目錄>/dirdat/*, usecheckpoint, minkeepdays 7

    其中,第一個參數為隊列位置,*可匹配備份中心所有隊列文件;第二個參數表

    示是首先要保證滿足檢查點需要,不能刪除未處理隊列;第三個參數表示最小保留

    多少天,后面的數字為天數。例如,如果希望只保留隊列/ggs/dirdat/xm 文件 10 天,

    可以配置如下:

    purgeoldextracts /oraclelog1/OGG/dirdat/xm, usecheckpoint, minkeepdays 10

    3)? 停止 MGR 進程,修改好參數后重啟該進程

    Copyright OGG Software, Inc.?? 1995-2007

    GGSCI > stop mgr

    Manager process is required by other GGS processes.

    Are you sure you want to stop it (y/n)? y?? //輸入 y 確認停止 mgr 進程

    Sending STOP request to MANAGER …

    Request processed.

    Manager stopped.

    Copyright OGG Software, Inc.?? 1995-2007

    GGSCI > start mgr

    ?

    ?

    12

    ?

    ORACLE

    Manager started.

    注:臨時停止 mgr 進程并不影響數據復制。

  • 配置啟動?mgr?時自動啟動?extract??replicat?進程
    • 以 OGG 用戶登錄系統,進入安裝目錄執行./ggsci;
    • 執行 edit param mgr 編輯管理進程參數,加入以下行
  • AUTOSTART ER *

    Copyright OGG Software, Inc.?? 1995-2007

    GGSCI>edit param mgr?????//編輯 Manager 參數

    3)? 停止 MGR 進程,修改好參數后重啟該進程

    Copyright OGG Software, Inc.?? 1995-2007

    GGSCI >?stop mgr???? //關閉進程 Manager

    Manager process is required by other GGS processes.

    Are you sure you want to stop it (y/n)? y?? //輸入 y 確認停止 mgr 進程

    Sending STOP request to MANAGER …

    Request processed.

    Manager stopped.

    GGSCI >?start mgr?? //啟動 Manager

    Manager started.

    注意:一般建議不用自動啟動,而是手工啟動,便于觀察狀態驗證啟動是否

    成功,同時也便于客戶自己修改參數。

  • 配置?mgr?定時自動重啟?extract??replicat?進程
  • OGG 具有自動重起 extract 或者 replicat 進程的功能,能夠自動恢復如網絡中

    斷、數據庫臨時掛起等引起的錯誤,在系統恢復后自動重起相關進程,無需人工介

    入。

    1)? 以 oracle 用戶登錄系統,進入安裝目錄執行 ggsci 進入命令行界面;

    ?

    ?

    13

    ?

    ORACLE

    2)? 執行 edit param mgr 編輯管理進程參數,加入以下行

    AUTORESTART ER *, RETRIES 3, WAITMINUTES 5, RESETMINUTES 60

    Copyright OGG Software, Inc. 1995-2007 GGSCI>edit param mgr //編輯 Manager 參數

    以上參數表示每 5 分鐘嘗試重新啟動所有進程,共嘗試三次。以后每 60 分鐘

    清零,再按照每 5 分鐘嘗試一次共試 3 次。

    3)? 停止 MGR 進程,修改好參數后重啟該進程,使修改后的參數文件生效

    GGSCI >?stop mgr?? //停止進程 Manager

    Manager process is required by other GGS processes.

    Are you sure you want to stop it (y/n)? y?? //輸入 y 確認停止 mgr 進程

    Sending STOP request to MANAGER …

    Request processed.

    Manager stopped.

    GGSCI >?start mgr??????? //啟動進程 Manager

    Manager started.

  • 長交易的管理
  • 在停止抽取進程前需要通過命令檢查是否存在長交易,以防止下次啟動無法找

    到歸檔日志:

    命令格式?gsci> info?進程名, showch

    示例如下:

    Copyright OGG Software, Inc.?? 1995-2007

    ggsci>?info extsz,showch??????????? //查詢進程 extsz 未提交長交易檢查點位置

    Read Checkpoint #1

    ….

    Recovery Checkpoint (position of oldest unprocessed transaction in the data source):

    ?

    ?

    14

    ?

    ORACLE

    Thread #: 1

    Sequence #: 9671

    RBA: 239077904

    Timestamp: 2008-05-20 11:39:07.000000

    SCN: 2195.1048654191

    Redo File: Not available

    Current Checkpoint (position of last record read in the data source):

    Thread #: 1

    Sequence #: 9671

    RBA: 239377476

    Timestamp: 2008-05-20 11:39:10.000000

    SCN: 2195.1048654339

    Redo File: Not Available

    Read Checkpoint #2

    …..

    Recovery Checkpoint (position of oldest unprocessed transaction in the data source): Thread #: 2

    Sequence #: 5287 RBA: 131154160

    Timestamp: 2008-05-20 11:37:42.000000

    SCN: 2195.1048640151

    Redo File: /dev/rredo07

    Current Checkpoint (position of last record read in the data source):

    Thread #: 2

    Sequence #: 5287

    RBA: 138594492

    Timestamp: 2008-05-20 11:39:14.000000

    SCN: 2195.1048654739

    ?

    ?

    15

    ?

    ORACLE

    為了方便長交易的管理,OGG 提供了一些命令來幫助客戶和應用開發商

    查找到對應長交易,并在 OGG 中予以提交或者回滾。

    (一)? 查看長交易

    命令格式:>?send extract <進程名> , showtrans [thread n] [count n]

    其中,<進程名>為所要察看的進程名,如 extsz/extxm/extjx 等;Thread n 是

    可選的,表示只查看其中一個節點上的未提交交易;Count n 也是可選的,表示只顯

    示 n 條記錄。例如下面命令:

    Copyright OGG Software, Inc.?? 1995-2007

    Ggsci> send extract extsz , showtrans thread 1?? count 10???//查詢 extsz 進程中節點 1 上最長

    的 10 個交易

    Sending showtrans request to EXTRACT EXTSZ

    No transactions found

    Oldest redo log file necessary to restart Extract is:

    Redo Log Sequence Number 2, RBA 7890448.

    輸出結果是以時間降序排列的所有未提交交易列表,通過 xid 可以查找到對應的

    事務,請應用開發商和 DBA 幫助可以查找出未提交原因,通過數據庫予以提交或者

    回滾后 OGG 的 checkpoint 會自動向前滾動。

    ()???使用?OGG?命令跳過或接受長交易

    在 OGG 中強制提交或者回滾指定事務,可以通過以下命令:

    跳過交易命令格式

    Ggsci> SEND EXTRACT <進程名>, SKIPTRANS <5.17.27634> THREAD <2>

    強制認為該交易已經提交命令格式

    Ggsci>SEND EXTRACT <進程名>, FORCETRANS <5.17.27634> THREAD <1>

    說明:使用這些命令只會讓 OGG 進程跳過或者認為該交易已經提交,但

    并不改變數據庫中的交易,他們依舊存在于數據庫中。因此,強烈建議使用數據庫

    ?

    ?

    16

    ?

    ORACLE

    中提交或者回滾交易而不是使用 OGG 處理。

    ()???配置長交易告警

    可以在 extract 進程中配置長交易告警,參數設置如下所示:

    Copyright OGG Software, Inc.?? 1995-2007

    ggsci>?edit param extsz????????????//編輯進程?extsz?參數

    在參數文件中增加如下:

    warnlongtrans 12h, checkintervals 10m

    exttrail /backup/OGG/dirdat/sz

    ….

    以上表示 OGG 會每隔 10 分鐘檢查一下長交易,如果有超過 12 個小時的

    長交易,OGG? 會在根目錄下的 ggserr.log? 里面加入一條告警信息。可以通過察看

    ggserr.log 或者在 ggsci 中執行 view ggsevt 命令查看這些告警信息。以上配置可以有

    助于及時發現長交易并予以處理。

  • 源端和目標端數據庫增減復制表
  • (一)? 增加復制表

    在當前進程參數中,通過顯式列表的來匹配表,增加表后必須要修改配置文件,

    還要為新增的表添加附加日志。步驟如下:

    源端:

    GGSCI 〉STOP EXT*

    GGSCI> INFO ALL

    目標端:

    GGSCI>STOP REP*

    GGSCI>INFO ALL

    源端:

    GGSCI>dblogin userid OGG, password XXXXXXX

    GGSCI >?info trandata <schema>.<table name>

    ?

    ?

    17

    ?

    ORACLE

    如果不是 enable 則需要手動加入:

    GGSCI >?add trandata <schema>.<table name>

    GGSCI>START EXT*

    目標端:

    GGSCI>START REP*

    另外,當前 OGG 自動復制新增表的增刪改等 DML 操作,但不復制 DDL 操作, 所以對于新增表請首先在目標端建立表結構。如果有外鍵和 trigger,需要在目標

    表臨時禁止該外鍵和 trigger。

    ()???減少復制表

    如果有的表不再需要,可以在源端 drop 掉,然后到目標 drop 掉,在 OGG 的

    復制參數中把該表排除掉即可。

    如果其中幾個表依然存在,只是無需 OGG 復制,則可以通過以下步驟排除:

    • 在源端系統上首先根據節2 描述驗證所需歸檔日志存在后通過 stop extXX 停止對應的 extXX 進程;
    • 在目標端系統上 ggsci 中執行 stop repXX 停止目標端的復制進程;
    • 在源端修改 ext 進程的參數文件排除所不復制的表:

    Ggsci> edit param extXX

    ……

    tableexclude hxods.TMP_*; tableexclude hxods.BAK_*; tableexclude hxods.MLOG$_*; tableexclude hxods.RUPD$_*; tableexclude hxods.KJ_*;

    tableexclude myschema.mytable;

    table hxods.*;

    …….

    在文件定義 table 的行前面加入一行“tableexclude <schema>.<tablename>;” 注

    意寫全 schema 和表的名稱。

    4)?? 在目標端修改 rep 進程參數,同樣排除該表:

    ?

    ?

    18

    ?

    ORACLE

    GGSCI>edit param repXX

    在 map 前面加入一行:

    –mapexclude HXODS.SHOULIXINXI

    mapexclude myschema.mytable

    MAP HSODS.* ,TARGET HXODS.*;

    5)?? 在目標端系統上啟動復制進程 repXX

    GGSCI >?start?? repXX

    6)?? 在源端系統上啟動源端的抓取進程 extXX

    GGSCI?> start?? extXX

    即可進入正常復制狀態。

  • 修改表結構
  • 當數據庫需要復制的表結構有所改變,如增加列,改變某些列的屬性如長度等表

    結構改變后,可以按照下列步驟執行:

    • 按照本文前面所述操作順序停止源和目標端各抽取及投遞進程(注意停源端 抽取要驗證一下歸檔日志是否存在防止無法重起),無需停止 manager 進程;
    • 修改目標表結構;
    • 修改源表結構;
    • 如果表有主鍵,并且本次修改未修改主鍵,則可以直接啟動源和目標所有進 程繼續復制,完成本次修改;否則,如果表無主鍵或者本次修改了主鍵則需

    繼續執行下列步驟;

    Copyright OGG Software, Inc.?? 1995-2007

    ggsci> dblogin userid go mldengate, password XXXXXX???//登陸數據庫

    Successfully logged into database.

    ggsci> delete trandata schema.mytable???? //刪除表的附加日志

    Logging of supplemental redo log data disabled for table schema.mytable?ggsci> add trandata schema.mytable?//增加表的附加日志

    Logging of supplemental redo log data is disabled for table schema.mytable

    • 如果表超過了 32 列則上述操作可能會報錯,此時需要手工進行處理,請參 考附錄三中如何手動為表刪除和增加附加日志。
    • 重新啟動源端和目標端的抓取和復制進程。

    ?

    ?

    19

    ?

    ORACLE

  • 使用?imp?導入數據的注意事項
  • 使用 imp 工具導入數據時,由于該操作寫日志,OGG 支持復制通過 imp 導入的

    數據,但不支持創建表的操作,需要在目標端事先創建表然后再在源端導入。

    需要注意的是,每次 imp 都是一個 oracle 事務,如果導入的表過大(如超過 10G),

    有可能超過 OGG 所配置的最大內存,請首先咨詢 OGG 技術支持。

  • 表的重新再同步
  • 如果是某些表由于各種原因造成兩邊數據不一致,需要重新進行同步,但實際業

    務始終 24 小時可用,不能提供時間窗口,則可以參照以下步驟。(因較為復雜,使

    用需謹慎!)

    確認 ext/dpe/rep 進程均無較大延遲,否則等待追平再執行操作;

    停止目標端的 rep 進程;

    注意:步驟 3-5 為將源端數據通過 exp/imp 導入到目標端,客戶也可以選擇其它

    初始化方式,比如 expdp/impdp。

    在源端獲得當前的 scn 號。例如:

    select dbms_flashback.get_system_change_number from dual;

    以下以獲得的 scn 號為 1176681 為例

    在源端使用 exp 導出所需重新初始化的表或者幾張表數據,并且指定到剛才記下

    的 scn 號。例如:

    exp <username>/<password> tables=ctais2.SB_ZSXX grants=n statistics=none triggers=n compress=n FLASHBACK_SCN=1176681

    通過 ftp 傳輸到目標端;

    在目標端,使用 imp 導入數據;

    nohup imp OGG/XXXXX file=nanhai.dmp fromuser=ctais2 touser=ctais2 ignore=y

    &

    如果這些表有外鍵,在目標端檢查這些外鍵并禁止它們(記得維護 dirsql 下的禁

    ?

    ?

    20

    ?

    ORACLE

    止和啟用外鍵的腳本 SQL);

    編輯目標端對應的 rep 參數文件,在其 map 里面加入一個過濾條件,只對這些重

    新初始化的表應用指定 scn 號之后的記錄(一定要注意不要修改本次初始化之外的其

    它表,會造成數據丟失!):

    map? source.mytab,? target? target.mytab,? filter? (? @GETENV? (“TRANSACTION”,

    “CSN”) >????????? 1176681 ) ;

    確認參數無誤后,啟動目標端的 rep 進程;

    使用 info repxx 或者 lag repxx 直到該進程追上,停止該進程去掉 filter 即可進入

    正常復制。

  • OGG?復制軟件升級
  • 當源端和目標端要進行 OGG 升級時,請首先咨詢 OGG 技術支持人員。如升級

    后版本無特殊要求,其操作參考如下:

    1)?? 按正常步驟停止當前版本抓取端的進程。

    OGG Command Interpreter for Oracle

    Version v9.5.1.0 Build 012

    Windows (optimized), Oracle 10.1.0 on Oct 29 2007 20:10:55

    Copyright OGG Software, Inc.?? 1995-2007

    GGSCI (FILESRV) 1> stop er *???//停止所有的進程

    EXTRACT EXTSZ is already stopped.

    Sending STOP request to EXTRACT EXTSZ …

    Request processed.

    GGSCI > info er *??????????????????????????????????????????????????????????//查詢進程信息

    EXTRACT?????? EXTSZ???????? Last Started 2008-07-03 02:01??? Status STOPPED?? //進程已經停

    Checkpoint Lag??????????? 00:00:00 (updated 11:30:25 ago)

    ?

    ?

    21

    ?

    ORACLE

    Log Read Checkpoint?? ………….

    記錄反饋信息

    OGG Command Interpreter for Oracle

    Version v9.5.1.0 Build 012

    Windows (optimized), Oracle 10.1.0 on Oct 29 2007 20:10:55

    Copyright OGG Software, Inc.?? 1995-2007

    ?

    GGSCI (FILESRV) 4>?stop mgr//停止進程 Manager
    ?????
    Manager is already stopped.????
    GGSCI (FILESRV) 5>?info all//查詢所有進程狀態?
    ProgramStatusGroupLagTime Since Chkpt
    MANAGERSTOPPED???
    EXTRACTSTOPPEDEXTT100:00:0011:33:38
    EXTRACTSTOPPEDEXTT300:00:0000:05:00
    ??????

    ?

    記錄反饋信息

    • 按正常步驟停止目標備份端進程。(同第一步類似)

    GGSCI >?stop er *

    GGSCI >?info er *

    GGSCI >?stop mgr

    記錄反饋信息

    • 將舊的系統下所有文件打包備份;
    • 將最新版本的軟件包 MV 到根目錄下解包安裝覆蓋舊的系統。

    ?

    $ gzip -d XXXXXXX.tar.gz//解壓縮安裝文件
    $ tar xvf XXXXXXX.tar//解壓縮安裝文件
    ??

    ?

    5)?? 按同樣步驟升級備份數據庫主機 OGG 軟件。

    ?

    ?

    22

    ?

    ORACLE

    • 查看設置信息是否與原版本一致,重新啟動源數據庫主機的抓取和復制進程。查 看運行狀態。

    GGSCI >?info er *

    GGSCI >?start mgr;啟動源端?ggs?軟件

    GGSCI >?start mgr;啟動備份端?ggs?軟件

    按正常步驟啟動源端復制進程。

    GGSCI >?start er *

    GGSCI >?info er *

    按正常步驟啟動目標端復制進程。

    GGSCI >?start rep *

    GGSCI >?info rep *

    7)?? 版本升級結束。

  • 數據庫升級
  • 在數據庫升級之前應提前通報給 OGG,以便于確定復制軟件是否支持最新版本。

    如果需要升級 OGG 軟件參考前面的升級步驟,如果不需要升級 OGG,則只需停止

    OGG 進程進行升級,然后升級完畢重新啟動即可。

  • 操作系統升級
  • 在數據庫升級之前應提前通報給 OGG,以便于確定復制軟件是否支持最新版本。

    如果需要升級 OGG 軟件參考前面的升級步驟,如果不需要升級 OGG,則只需停止

    OGG 進程進行升級,然后升級完畢重新啟動即可。

  • 數據庫用戶密碼加密
    • OGG 的 dirprm 目錄下存放著所有參數文件,其中密碼可以使用明文或者加 密方式保存,如果需要使用加密密碼,請使用下列步驟:
  • GGSCI > encrypt password?? mypassword?? //生成密鑰

    ?

    ?

    23

    ?

    ORACLE

    No key specified, using default key..

    Encrypted password:?? AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC

    將參數文件中原來的明文行

    userid ggs, password mypassword

    改為密文

    userid ggs, password???AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC,

    encryptkey default

    然后重新啟動進程即可

    附錄一 OGG 對數據類型和對的限制

    1.OGG 對數據類型和對象的限制

    1.1OGG 數據類型支持

    • 支持Numeric(數字類型),包括NUMBER、BINARY FLOAT、BINARY DOUBLE。 暫不支持BINARY_INTEGER和PLS_INTEGER。
    • 支持所有Character(字符類型),包括CHAR、VARCHAR2、LONG、NCHAR、 NVARCHAR2。
    • 支持大對象,包括CLOB、NCLOB、BLOB。但不支持BFILE
    • 支持Binary(二進制類型),包括RAW和LONG RAW。
    • 支持Date及timestamp類型。支持除了TIMEZONE_REGION和TIMEZONE_ABBR 類型的所有TIMESTAMP類型。
    • 暫不支持多字節的XML類型。
    • 支持用戶自定義類型(UDT),源端的UDT與目標端的UDT的必須相同。
    • 其它支持的數據類型,包括ROWID、VARRAY、INTERVAL DAY、INTERVAL YEAR。
    • OGG暫不支持的其它數據類型:

    ANYDATA and ANYDATASET

    ANYTYPE

    MLSLABEL

    ?

    ?

    24

    ?

    ORACLE

    URITYPE

    UROWID

    1.2OGG 特殊對象支持

    1.2.1 有條件支持物化視圖(Materialized views)

    在以下有條件限制中支持:

    • 源表必須有唯一主鍵
    • OGG不支持物化視圖使用”WITH ROWID”來創建,但當物化視圖LOG(不是物 化視圖自己)用”WITH ROWID”來創建時,OGG是支持的。
    • 物化視圖必須是使用單個表,而不能包含joins生成的表。
    • OGG不支持truncates物化視圖,但支持使用“DELETE FROM”來替代。
    • 索引組織表(Index organized tables)通過物化視圖復制
      • 對于OGG基于LOG的復制方式,IOT表無法直接從日志中抽取,但是可以為 IOT表建立物化視圖,通過復制該物化視圖的變化實現IOT數據變化的復制。
    • 其它不支持對象
      • Clustered tables。
      • Nested tables。OGG只支持該類表的增加和刪除,不支持嵌入對象的更新。
      • 使用壓縮(COMPRESS)選項生成或修改的表
      • Views(視圖)
      • Synonyms(同義表)
      • REFs

    2.OGG 不支持的特殊操作

    以下特殊操作由于不寫日志,OGG 無法予以復制:

    • Direct-path table loads(由于不進行寫 LOG 操作)

    Oracle 插入數據有兩種方式:

    ?

    ?

    25

    ?

    ORACLE

    a、常規插入:重新使用 table 中的自由空間,在已有數據中插入新數據;

    維護引用完整性約束。

    b、Direct-Path 插入:在表中已有數據之后插入新數據;數據直接插入數據

    文件,繞過 buffer cache;已有數據中的自由空間沒有被重新利用;忽略了

    引用完整性約束。Direct-Path 可以 disable redo log 和 undo log,導致 OGG

    無法通過日志捕捉到數據變化。

    常見的 Direct Path Load 包括:

    • insert into table as select….
    • create table xxx as select…

    如果遇到上述操作,一般這些表數據不是原生數據,可以在復制中排除掉這

    些表并通過定時備份等方式予以復制。

    • /*+ APPEND */ hint。如果在應用中使用該 hint,則不會寫日志,OGG 無

    法復制。

    • /*+ BUFFER */ hint。如果在應用中使用該 hint,則不會寫日志,OGG 無

    法復制。

  • OGG 支持 imp 操作
  • 由于 imp 操作寫日志,OGG 能夠支持 imp 操作。但由于不復制 DDL 操作,需

    要事前在目標端建立表結構。如果 imp 的表過大,有可能引起 OGG 內存不夠用,報

    出 105 錯誤。因此,請在使用 imp 前咨詢 OGG 技術支持。

  • 數據庫和應用日常維護注意事項
  • 4.1 Oracle 9i 中 redo parallelism 必須設置為 1

    OGG基于log的復制方式,在oracle10g上可以將log_parallelism參數最大可以

    設置到8,這個參數控制了并行產生REDO LOG的處理數量。但在oracle10g以下的版

    本,OGG只支持該參數為1。請不要修改這個參數,否則會造成抽取數據不完整。

    4.2 為表設置主鍵或者唯一索引

    OGG使用主鍵和唯一索引在源和目標定位需要更新或者刪除的數據,應用開發新

    ?

    ?

    26

    ?

    ORACLE

    增表應當盡可能帶有主鍵和唯一索引。

    同時,增加主鍵也有利于提高目標端數據投遞的速度,減小復制延遲和降低資源

    消耗。

    4.3 保留 3-7 天歸檔日志

    OGG只復制已經提交的交易,如果不提交則不會復制到目標端。在停止復制并重

    新啟動時,需要找到以前沒有提交交易開始的日志。

    因此,為了保證OGG能夠重新啟動,請保留3-7天歸檔日志。

    4.4 避免使用不寫日志的操作

    OGG 只復制日志中的交易,應當避免在應用和數據庫維護中使用 Direct Path 等

    不寫日志的操作,這些操作無法復制,會導致兩端數據不一致。 OGG? 復制的限制

    和約束。

    轉載于:https://www.cnblogs.com/DataArt/p/10018099.html

    總結

    以上是生活随笔為你收集整理的Oracle GoldenGate OGG管理员手册(较早资料)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。