Oracle GoldenGate安裝(二)
相關元件
1. 確定 DDL SCHEMA
需要配置在 GLOBALS 中: GGSCHEMA odc
2. 退出所有 ORACLE 會話,不允許新會話產生
3.sqlplus "/as sysdba" ---- 必須 sysdba 連入
注:對於是10g 的源端,需要關閉回收站:
alter session set recyclebin=off;
4.@marker_setup
該指令碼安裝 marker 系統,這部分為啟用 DLL 支援所必備,執行該指令碼時會提示輸入 GoldenGate 管理帳戶 schema 名。
5. @ddl_setup
執行該指令碼要確認關閉掉所有 ORACLE 會話,未被關閉的會話會以列表形式顯示,執行過程中會要求希望物件屬主,並選擇安裝模式。如果是初次安裝就選擇“ INITIALSETUP ”,該模式假設當前沒有任何 GoldenGate DDL 物件存在,如果存在則會刪除並重建。如果是重新安裝,則應該選擇“ NORMAL ” .
提示輸入 DDL SCHEMA ,擇安裝型別: INITIALSETUP
6. @role_setup
該操作會重建 DDL 同步所需的許可權,授予 GoldenGate 中的 DDL 物件以 DML 許可權。
提示你執行一條 GRANT 語句,執行即可!
7. @ddl_enable.sql
啟用 DDL 觸發器,以捕獲 DDL 操作。
8. @ddl_pin.sql odc
要提高 DDL 觸發器的效能,可以透過 ddl_pin 指令碼,該指令碼會將觸發器使用的包載入到記憶體,以此提高效率。該指令碼執行時需要引用 dbms_shared_pool 系統包,因此在使用 ddl_pin 指令碼前需要確保 dbms_shared_pool 可用。執行 ddl_pin 指令碼需要指定 GoldenGate 管理員 schema 名稱 .
新增表級別附加日誌
ggsci> dblogin userid odc password odc
ggsci>
ggsci>
注:
對於9i 的資料庫,因為列太多會報錯,要求不能超過33 列,所以列太多的表格要分開新增,例如:
查出該表的列
SQL> select COLUMN_NAME from DBA_TAB_COLUMNS where table_name='ACMRTB_20121129' order by COLUMN_ID;
分組新增補充日誌
SQL> alter table OGGTEST.ACMRTB_20121129 ADD SUPPLEMENTAL LOG GROUP loggroup1 (SETTDATE,ACCTYPE)
SQL> alter table OGGTEST.ACMRTB_20121129 ADD SUPPLEMENTAL LOG GROUP loggroup2 (SETTDATE,ACCTYPE,ACCBAL,TODAYSVCNT,TODAYSVAMT,TODAYFHCNT,TODAYFHAMT,TODAYQCCNT,TODAYQCAMT,TODAYRTNCNT,TODAYRTNAMT,TODAYMVCNT,TODAYMVAMT,TODAYHDFEECNT,TODAYHDFEEAMT,TODAYSRVFEECNT,TODAYSRVFEEAMT,TODAYOVERFEECNT,TODAYOVERFEEAMT,TOTALSVCNT,TOTALSVAMT,TOTALFHCNT,TOTALFHAMT,TOTALQCCNT,TOTALQCAMT,TOTALRTNCNT,TOTALRTNAMT,TOTALMVCNT,TOTALMVAMT,TOTALHDFEECNT,TOTALHDFEEAMT,TOTALSRVFEECNT,TOTALSRVFEEAMT) ALWAYS;
SQL> alter table OGGTEST.ACMRTB_20121129 ADD SUPPLEMENTAL LOG GROUP loggroup3 (TOTALOVERFEECNT,TOTALOVERFEEAMT,RSVD)
SQL>select COLUMN_NAME from DBA_TAB_COLUMNS where table_name='ACMRTB_20121129' order by COLUMN_ID;
SQL>alter table OGGTEST.BATGOODSINOUTTXNTB ADD SUPPLEMENTAL LOG GROUP loggroup4 (INOUTSEQ,ORDERID,ORDERSTATE,ORDERTYPE,CARDNUMBER,TOSTOREID,TOSTORENAME,FROMSTOREID,FROMSTORENAME,INOUTFLAG,ERRCODE,CTDEALTIME,EDTTIME,EDTOPRID,GOODSCOUNT,GOODSID,GOODSATTR,SINGLEPRICE,SUMPRICE,OPRID,TXNDATE,TXNTIME,PECULIARDATA1,PECULIARDATA2,PECULIARDATA3,PECULIARDATA4,PAYTYPE,PAYTYPEID,RSVD1,RSVD2,RSVD3,RSVD4,RSVD5)
SQL>alter table OGGTEST.BATGOODSINOUTTXNTB ADD SUPPLEMENTAL LOG GROUP loggroup5 (TODPTID,FROMDPTID,SENDSTOREID)
抽取程式要配置的引數:
引數 |
閥值 |
定義 |
extract |
sm_ext |
指定程式名和型別 |
setenv |
(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK") |
配置系統環境變數 |
userid/ password |
odc |
指定OGG 連線資料庫的使用者名稱和密碼 |
exttrail |
./dirdat/sm |
指定寫入到本地的哪個佇列 |
tranlogoptions |
偏移量設定需要查詢偏移量 $ORACLE_HOME/bin/offset ( TRANLOGOPTIONS RAWDEVICEOFFSET 0 ) |
指定在解析資料庫日誌時所需要的特殊引數, 如果是AIX 的RAC ,redolog 在裸裝置上,需設定偏移量
|
altarchivelogdest |
instance ora11g1+MCDATA/archlog,altarchivelogdest instance ora11g2 +MCDATA/archlog |
指定歸檔路徑,不同的作業系統、資料庫版本有不通的配置方法 |
FETCHOPTIONS |
|
指定ogg 獲取資料的方式 |
FETCHPKUPDATECOLS |
|
複製程式出現丟失update 記錄(missing update )並且更新的是主鍵,update 將轉換成insert 。( 當使用了HANDLECOLLISIONS 時,請使用該引數。) |
ddl |
include objname OGGTEST.* exclude objtype 'TRIGGER' |
使用DDL 引數,指定DDL 的支援和過濾DDL 操作。 |
table |
OGGTEST.* |
定義需要複製的表,後面需以; 結尾 |
新增程式:
ggsci> (如果是單機,可以不寫thread 引數)
ggsci>
注:
tranlog :表示資料抓取的來源是資料庫的 redo 資料。
threads 2 :表示資料庫有多少個 threads ,單例項基本上是 1 或者不設。
begin now :表示在啟動這個抓取程式的就去抓取資料。
./dirdat :表示 trail 檔案的目錄
sm : trail 檔案的字首
extract sm_ext :值指定給那個程式用的( sm_ext )。
引數配置:
情況一:單機資料庫
直接配置歸檔路徑
ggsci>
extract sm_ext
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc,password odc
exttrail ./dirdat/sm
tranlogoptions altarchivelogdest /archive
FETCHOPTIONS FETCHPKUPDATECOLS
ddl include objname OGGTEST.* exclude objtype 'TRIGGER' &
include objname OGGTEST.* exclude objtype 'TRIGGER'
table OGGTEST.*;
情況二: rac 資料庫
引數配置方法一:
配置 ASM 連線串,需要將各節點的歸檔資訊都配置在引數檔案中,且需要配置 asm 動態註冊,並將 asm 的 sys 使用者名稱和密碼配置在程式引數檔案中,適用所有資料庫版本。
具體方法如下:
在 tnsnames.ora 中新增連線串(只要在要安裝 ogg 服務的那個節點配置即可):
[ oracle@rac1 admin]$ cat tnsnames.ora
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.10.16)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = +ASM)
(INSTANCE_NAME = +ASM1)
)
)
注: 11g 只要配置連線串即可(因為 asm 例項註冊進監聽狀態為 ready ), 10g 需要配置監聽,如果源端生產庫可以重啟監聽,只要加入 OGG 監聽靜態註冊即可,如果源端生產庫不讓重啟監聽,則要加入一個新的 OGG 監聽動態註冊,配置如下:
########## 新增一個監聽(避免重啟原有監聽)###########
[oracle@rac1 rac1]$ vi listener.ora
SID_LIST_LISTENER_OGG =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = +ASM)
(ORACLE_HOME = /oracle/app/product/10.2.0)
(SID_NAME = +ASM1)
)
)
LISTENER_OGG =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1522))
)
)
啟動新監聽listener_ogg
引數配置:
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc,password odc
exttrail ./dirdat/sm
tranlogoptions altarchivelogdest instance ora11g1+MCDATA/archlog,altarchivelogdest instance ora11g2 +MCDATA/archlog
tranlogoptions asmuser sys@asm, asmpassword oracle
FETCHOPTIONS FETCHPKUPDATECOLS
include objname OGGTEST.* exclude objtype 'TRIGGER'
table OGGTEST.*;
引數配置方法二:
資料庫版本 10.2.0.5 及以上的版本,或 11.2.0.2 以上版本(但 11gR1 不支援), Oracle 提供了一個新的 ASM API 介面 ,可以讓 extract 程式直接利用資料庫伺服器來訪問 redo 和 archive log ,無需配置歸檔路徑,直接配置引數 tranlogoptions dblogreader 引數即可,自動會找到歸檔路徑。
具體引數如下
extract sm_ext
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
userid odc,password odc
exttrail ./dirdat/sm
tranlogoptions dblogreader
FETCHOPTIONS FETCHPKUPDATECOLS
ddl include objname OGGTEST.* exclude objtype 'TRIGGER' &
include objname OGGTEST.* exclude objtype 'TRIGGER'
table OGGTEST.*;
注 1 :關於引數 DBLOGREADER 的說明, mos 文件中寫到:
(Oracle)Valid for Extract in classic capture mode. Causes Extract to use a newer ASM API that is available as of Oracle 10.2.0.5 and later10gR2 versions and Oracle 11.2.0.2 and later 11gR2 versions(but not in Oracle 11gR1 versions). This API uses the database server to access the redo log and archive logs, instead of connecting directly to the Oracle ASM instance.The database must contain the libraries that contain the API modules and must be running
To use this feature,the Extract database user must have SELECT ANY TRANSACTION privilege.
另外,對於版本高於 11.2.0.4 的源端資料庫,需要開啟資料庫級別的引數 ENABLE_GOLDENGATE_REPLICATION ,方法如下:
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;
注 2 :如果源端是 AIX redo 是裸裝置上且設定了偏移量,則需要在以上引數里加上:
TRANLOGOPTIONS RAWDEVICEOFFSET 0
檢查 AIX 裸裝置是否有偏移量:
$ORACLE_HOME/bin/offset
$[/oracle]$ORACLE_HOME/bin/offset /dev/lv_redo2_1g_22 4096
$[/oracle]$ORACLE_HOME/bin/offset /dev/lv_redo1_1g_01 4096
情況三:只挖歸檔模式( ALO mode )
OGG 在捕獲資料變更的時候優先從線上日誌中抽取資料,如果該 redo 已經切換,則會去歸檔日誌中抽取資料變更。
如果需要強制設定 ogg 從歸檔日誌讀取資料,則需要使用引數 TRANLOGOPTIONS ARCHIVEDLOGONLY
只讀歸檔:
在備庫環境上部署抽取程式,則需要配置 TRANLOGOPTIONS ARCHIVEDLOGONLY 引數,且需要在 tnsnames.ora 檔案中配置連線串能夠連到源端生產庫(具體部署節點的 ip ,不要配置 scan-ip ),引數如下:
userid odc@orcl,password odc --orcl 連線串為剛才配置在tnsnames.ora 檔案中的
TRANLOGOPTIONS ARCHIVEDLOGONLY -- 只挖歸檔的引數
tranlogoptions altarchivelogdest /data/orcl/archlog -- 具體歸檔路徑
情況四:表結構不同的配置
當源端的表結構和目標端的表結構(包括欄位名、資料型別)不一致時(或源端和目標端資料庫不一致時),需要多配置一個定義檔案,使 ogg 目標端可正常應用。
源端編輯
GGSCI (rac2) 3> edit params defgen
defsfile /odc/dirdef/sm.def purge
userid odc, password odc
table oggtest.t2;
table oggtest.test;
desfile :def 檔案輸出路徑
table: 可以指定table ,也可以使用username.* 到相應使用者下所有表結構資訊。
生成目標端需要的定義檔案
[oracle@rac2 ~]$ cd /odc
[oracle@rac2 odc]$ ./defgen paramfile /odc/dirprm/defgen.prm
會在/odc/dirdef 路徑下生成sm.def 檔案。
手工將產生的定義檔案傳輸到目標端的dirdef 目錄下
目標端應用程式中新增引數SOURCEDEFS 以及colmap 引數:
SOURCEDEFS /odc/dirdef/sm.def
map oggtest.t2,target oggtest.t2,colmap(USEDEFAULTS col1=col,col2=col2,col3=col3);
具體見建立replicat 程式章節
其他配置一樣。
啟動程式觀察,能夠挖掘再繼續下面的操作:
start sm_ext
傳輸程式要配置的引數:
引數 |
閥值 |
定義 |
extract |
sm_dmp |
指定程式名和型別 |
userid/ password |
odc |
指定OGG 連線資料庫的使用者名稱和密碼 |
rmthost |
172.10.10.154 |
指定目標端主機IP |
mgrport |
7809 |
指定管理程式埠號 |
rmttrail |
./dirdat/sm |
指定目標端儲存佇列檔案的目錄 |
passthru |
/oradata/oradata/smkdb/archive |
採用pass-through 模式處理表 |
table |
OGGTEST.* |
定義需要複製的表,後面需以; 結尾 |
ggsci>
注:
EXTTRAILSOURCE :指定提取檔案作為資料來源
ADD RMTTRAIL :在目標資料庫上建立一個 trail
ggsci>edit param sm_dmp
引數:
extract sm_dmp
userid odc,password odc
rmthost 172.16.10.154, mgrport 7809
rmttrail ./dirdat/sm
--rmttrail ./dirdat/tj, 11.1
passthru
table OGGTEST.*;
ggsci>start sm_dmp
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547506/viewspace-2926356/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle GoldenGate安裝(一)OracleGo
- Oracle GoldenGate安裝(三)OracleGo
- Oracle GoldenGate Veridata 12.2.1.4安裝配置使用全手冊OracleGo
- About the Oracle GoldenGate TrailOracleGoAI
- ORACLE GoldenGate Initial LoadOracleGo
- Oracle GoldenGate 11g官方文件Administrator’s Guide續二OracleGoGUIIDE
- Oracle GoldenGate 18.1釋出OracleGo
- LINUX ORACLE OGG12C安裝(二)LinuxOracle
- Oracle for Windows安裝和配置之二OracleWindows
- GoldenGate抽取Informix資料庫安裝及配置GoORM資料庫
- Oracle 19C下載和安裝(二)Oracle
- LINUX ORACLE OGG12C整合模式安裝(二)LinuxOracle模式
- Step by Step Data Replication Using Oracle GoldenGateOracleGo
- Oracle GoldenGate常用引數詳解OracleGo
- golang oracle 安裝GolangOracle
- Linux安裝oracleLinuxOracle
- oracle安裝配置Oracle
- Oracle RUR 安裝Oracle
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.1. Oracle軟體安裝OracleLinux
- 「Oracle」Oracle 資料庫安裝Oracle資料庫
- 使用GoldenGate 遷移Oracle到PostgreSQL/LightDBGoOracleSQL
- GoldenGate 12.3 MA架構介紹系列(5) - 靜默安裝Go架構
- oracle 19c 安裝、解除安裝Oracle
- Oracle案例13—— OGG-01163 Oracle GoldenGate Delivery for Oracle, reprpt01.prmOracleGo
- 靜默方式安裝、升級oracle(一): 安裝oracle軟體Oracle
- 靜默方式安裝、升級oracle(二): 建立資料庫Oracle資料庫
- windows下oracle安裝WindowsOracle
- 安裝centOS版本oracleCentOSOracle
- Oracle靜默安裝Oracle
- Docker中安裝OracleDockerOracle
- Oracle Payment Interface安裝Oracle
- oracleLinux下安裝oracleOracleLinux
- ubuntu下安裝oracleUbuntuOracle
- Oracle 12.2 OJVM安裝OracleJVM
- Oracle Goldengate 12c打pus補丁OracleGo
- Oracle GoldenGate 18.1 支援的DB和OS列表OracleGo
- ORACLE GoldenGate 使用技巧-容錯處理等OracleGo
- vmware + 裸裝置 + crs + oracle10g RAC搭建步驟(二):安裝linuxOracleLinux