oracle goldengate 配置
今天測試了下 goldengate,主站是oracle 10.2.0.5.0,目標庫是 11.2.0.1.0,詳細配置如下:
由於主從版本不一致(OS都是 x86-64),下載的包也不一樣
1.解壓並安裝gg:
主資料庫:fbo_ggs_Linux_x64_ora10g_64bit.zip
從資料庫:fbo_ggs_Linux_x64_112100_ora11g_64bit.zip
[oracle@trptdb ~]$ unzip fbo_ggs_Linux_x64_112100_ora11g_64bit.zip| tar -xvof
tar命令最後解壓出來大概100多個檔案,我這裡安裝目錄:/home/oracle/ggs
由於我使用的是oracle使用者進行安裝的,所以直接在oracle家目錄下修改.bash_profile檔案,把gg的安裝目錄新增到庫檔案目錄,如下:
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/home/oracle/ggs;
安裝很簡單,如下:
[oracle@testdb ~]$ pwd
/home/oracle
[oracle@testdb ~]$ cd ggs
[oracle@testdb ggs]$ ./ggsci
Oracle GoldenGate Command Interpreter for Oracle
Version 11.1.1.1.2 OGGCORE_11.1.1.1.2_PLATFORMS_111004.2100
Linux, x64, 64bit (optimized), Oracle on Oct 4 2011 23:50:20
Copyright (C) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
GGSCI (testdb) 1> create subdirs
目標庫也按照上述步驟安裝GoldenGate並建立工作目錄。
2.配置主資料庫:
主庫必須置於歸檔模式,force logging,並且啟用supplemental logging。檢視這幾個選項是否啟動,最簡單的方式是查詢v$database檢視,例如:
SQL> select log_mode,supplemental_log_data_min,force_logging from v$database;
LOG_MODE SUP FOR
------------ --- ---
ARCHIVELOG YES YES
由於主資料庫之前配置了stream,所以這些設定都已經啟用,啟用上述幾個選項的操作如下,以sysdba身份登入到sqlplus命令列,執行下列命令:
--啟動到mount狀態:
startup mount;
--置於歸檔模式:
alter database archivelog;
--強制日誌記錄:
alter database force logging;
--啟用最少附加日誌
alter database add supplemental log ;
--啟動資料庫並查詢狀態:
SQL> alter database open;
Database altered.
SQL> select log_mode,supplemental_log_data_min,force_logging from v$database; LOG_MODE SUP FOR
------------ --- ---
ARCHIVELOG YES YES
建立goldengate使用者,並賦相應的許可權:
SQL> create user ogg identified by ogg;
User created.
grant execute on utl_file to ogg ;
grant to ogg ;
grant connect to ogg ;
grant resource to ogg ;
禁用recycle bin
對於: 需要重啟才能生效
ALTER SYSTEM SET recyclebin = OFF scope=spfile;
對於10g:
Alter system set recyclebin=off;
編輯全域性引數檔案
GGSCI (testdb) 1> edit params ./GLOBAL
GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint
為了支援ddl同步,需要執行以下指令碼:
marker_setup.sql--該指令碼安裝marker系統,這部分為啟用DLL支援所必備,執行該指令碼時會提示輸入GoldenGate管理帳戶schema名.
ddl_setup-- 執行該指令碼要確認關閉掉所有ORACLE會話,未被關閉的會話會以列表形式顯示,執行過程中會要求希望物件屬主,並選擇安裝模式。如果是初次安裝就選擇 “INITIALSETUP”,該模式假設當前沒有任何GoldenGate DDL物件存在,如果存在則會刪除並重建。如果是重新安裝,則應該選擇“NORMAL”.
role_setup--該操作會重建DDL同步所需的許可權,授予GoldenGate中的DDL物件以DML許可權.
ddl_enable--啟用DDL觸發器,以捕獲DDL操作.
要提高DDL觸發器的效能,可以透過ddl_pin指令碼,該指令碼會將觸發器使用的包載入到記憶體,以此提高效率。該指令碼執行時需要引用dbms_shared_pool系統包,因此在使用ddl_pin指令碼前需要確保dbms_shared_pool可用。
@?/rdbms/admin/dbmspool.sql
ddl_pin--執行ddl_pin指令碼需要指定GoldenGate管理員schema名稱.
然後,用於同步DDL操作的物件就建立完成了。
配置主資料庫gg相關:
--配置MANAGER引數:
GGSCI (testdb) 1>edit params mgr
PORT 7809
PURGEOLDEXTRACTS ./dirdat/k1*,USECHECKPOINTS,MINKEEPFILES 10
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5
PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30
PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30
--配置抽取程式ext1引數:
GGSCI (testdb) 1> dblogin userid ogg,password ogg
Successfully logged into database.
GGSCI (testdb) 2> add extract ext1,tranlog, begin now
EXTRACT added.
GGSCI (testdb) 4>add exttrail /home/oracle/ggs/dirdat/k1, extract ext1
EXTTRAIL added.
GGSCI (testdb) 5> edit params ext1
EXTRACT EXT1
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
USERID ogg,PASSWORD ogg
exttrail /home/oracle/ggs/dirdat/k1
DYNAMICRESOLUTION
DDL INCLUDE MAPPED
DDLOPTIONS ADDTRANDATA,REPORT
FETCHOPTIONS, USESNAPSHOT, NOUSELATESTVERSION, MISSINGROW REPORT
STATOPTIONS REPORTFETCH
WARNLONGTRANS 1H, CHECKINTERVAL 5M
mynet_app.*;
--建立datapump
GGSCI (testdb) 4>> add extract dpump,exttrailsource /home/oracle/ggs/dirdat/k1
EXTRACT added.
GGGSCI (testdb) 4> add rmttrail /home/oracle/ggs/dirdat/k1, extract dpump
RMTTRAIL added.
GGSCI (testdb) 4>> view params dpump
extract dpump
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
userid ogg, password ogg
rmthost 10.1.8.142, mgrport 7809
rmttrail /home/oracle/ggs/dirdat/k1
DYNAMICRESOLUTION
table mynet_app.*;
GGSCI (testdb) 5> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED DPUMP 00:00:00 00:08:49
EXTRACT STOPPED EXT1 00:00:00 00:11:37
啟動捕獲程式:
GGSCI (testdb) 6> info all
Program Status Group Lag Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPUMP 00:00:00 00:00:08
EXTRACT RUNNING EXT1 00:00:00 00:00:06
3.配置從資料庫:
–建立Replicat
GGSCI (trptdb) 1> view param ./GLOBALS
GGSCHEMA ogg
CHECKPOINTTABLE ogg.checkpoint
GGSCI (trptdb) 1> dblogin userid ogg,password ogg
GGSCI (trptdb) 2> add checkpointtable ogg.checkpoint
Successfully created checkpoint table OGG.CHECKPOINT.
GGSCI (trptdb) 2> add replicat rep1,exttrail /home/oracle/ggs/dirdat/k1, checkpointtable ogg.checkpoint
REPLICAT added.
GGSCI (trptdb) 3> edit param rep1
REPLICAT rep1
ASSUMETARGETDEFS
USERID ogg, PASSWORD ogg
discardfile ./dirdat/rep1_discard.txt,append,megabytes 5
mapexclude mynet_app.test0410
DDL INCLUDE MAPPED
DDLOPTIONS REPORT
BATCHSQL
DBOPTIONS DEFERREFCONST
DBOPTIONS LOBWRITESIZE 102400
HANDLECOLLISIONS
DDLERROR DEFAULT DISCARD RETRYOP MAXRETRIES 5 RETRYDELAY 20
--grouptransops 1
--maxtransops 1
APPLYNOOPUPDATES --解決不能更新操作
MAP mynet_app.*, TARGET mynet_app.*;
------------------------------------------------------------------------------------------------------------------------
4.初始化:
如果要求零停機,DB事務就會不間斷進行,可以透過如下兩種方法來保證初始化過程中事務的完整性和資料的準確性呢.
(1). 利用 Keys + Handlecollisions
Handlecollisions引數依賴於表上的Key(Primarykey/Unique key)來對資料進行重複行和缺失行的處理
利用 commit SCN/CSN
可以使用一下幾種方法來實現:
一致性的exp和imp
透過exp和expdp的一致性引數(flashback_scn),匯出特定SCN點上的一致性版本.
FLASHBACK_SCN 引數用於指定匯出特定SCN時刻的表資料,如
使用這種方法初始化存在一個問題,就是構造一致性資料過程中會對undo造成
比較大的壓力,尤其對大型資料庫來講,可以透過分割的datapump來實現
資料的分組同步,分散undo的壓力,然後合適時間將分組的datapump合併即
可。
(2)一致性的expdp和impdp (表空間移植,但是需要將表控制置於read only模式)
(3) 基於的表空間搬移
對於不同位元組順序的source-target平臺初始化,需要進行convert),但是需要
10g以上版本才支援,同樣受到表空間搬移的那些限制條件。
Dataguard 適合同平臺版本
我這裡採用的是用帶flashback_scn引數的expdp/impdp完成初始化,具體操作如下:
–主資料庫
[oracle@trptdb ggs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 23 13:48:11 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select current_scn from v$database ;
CURRENT_SCN
———–
70653113406
--匯出匯入(從資料庫)
impdp strmadmin directory = DPDATA1 network_link = uat schemas=mynet_app flashback_scn=70653113406 TABLE_EXISTS_ACTION =replace
。。。
匯入完畢,叢庫啟動replicat程式:
GGSCI (trptdb) 3> start rep1,aftercsn 70653113406
之後主從開始同步,日誌如下:
主庫:
2012-03-23
14:08:36 WARNING OGG-00869 Oracle GoldenGate Capture for Oracle,
ext1.prm: Object MYNET_APP.M_WEEKLY_REPORT_SOURCING has NOLOGGING
option specified either at the table level or at the level of one of its
(sub)partitions.
2012-03-23 14:08:36 WARNING OGG-00869 Oracle
GoldenGate Capture for Oracle, ext1.prm: No unique key is defined for
table M_WEEKLY_REPORT_SOURCING. All viable columns will be used to
represent the key, but may not guarantee uniqueness. KEYCOLS may be
used to define the key.
2012-03-23 14:10:33 WARNING OGG-00869
Oracle GoldenGate Capture for Oracle, ext1.prm: Object
MYNET_APP.M_WEEKLY_REPORT_CATEGORY has NOLOGGING option specified either
at the table level or at the level of one of its (sub)partitions.
2012-03-23
14:10:33 WARNING OGG-00869 Oracle GoldenGate Capture for Oracle,
ext1.prm: No unique key is defined for table M_WEEKLY_REPORT_CATEGORY.
All viable columns will be used to represent the key, but may not
guarantee uniqueness. KEYCOLS may be used to define the key.
2012-03-23
14:11:42 WARNING OGG-00869 Oracle GoldenGate Capture for Oracle,
ext1.prm: Object MYNET_APP.M_WEEKLY_REPORT_ITEM has NOLOGGING option
specified either at the table level or at the level of one of its
(sub)partitions.
2012-03-23 14:11:42 WARNING OGG-00869 Oracle
GoldenGate Capture for Oracle, ext1.prm: No unique key is defined for
table M_WEEKLY_REPORT_ITEM. All viable columns will be used to represent
the key, but may not guarantee uniqueness. KEYCOLS may be used to
define the key.
2012-03-23 14:12:19 WARNING OGG-00869 Oracle
GoldenGate Capture for Oracle, ext1.prm: No unique key is defined for
table M_MEMBER_COMMENT. All viable columns will be used to represent the
key, but may not guarantee uniqueness. KEYCOLS may be used to define
the key.
2012-03-23 14:14:15 WARNING OGG-00869 Oracle GoldenGate
Capture for Oracle, ext1.prm: Object MYNET_APP.M_WEEKLY_REPORT_SUPPLIER
has NOLOGGING option specified either at the table level or at the
level of one of its (sub)partitions.
2012-03-23 14:14:15 WARNING
OGG-00869 Oracle GoldenGate Capture for Oracle, ext1.prm: No unique
key is defined for table M_WEEKLY_REPORT_SUPPLIER. All viable columns
will be used to represent the key, but may not guarantee uniqueness.
KEYCOLS may be used to define the key.
叢庫:
2012-03-23 14:11:36 INFO OGG-01670 Oracle GoldenGate Collector for Oracle: Closing /home/oracle/ggs/dirdat/k1000096.
2012-03-23
14:11:36 INFO OGG-01669 Oracle GoldenGate Collector for Oracle:
Opening /home/oracle/ggs/dirdat/k1000097 (byte -1, current EOF 0).
2012-03-23
14:11:54 WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle,
rep1.prm: No unique key is defined for table
'M_WEEKLY_REPORT_SOURCING'. All viable columns will be used to represent
the key, but may not guarantee uniqueness. KEYCOLS may be used to
define the key.
2012-03-23 14:13:37 INFO OGG-01407 Oracle
GoldenGate Delivery for Oracle, rep1.prm: Setting current schema for
DDL operation to [mynet_app].
2012-03-23 14:13:37 INFO OGG-01408
Oracle GoldenGate Delivery for Oracle, rep1.prm: Restoring current
schema for DDL operation to [ogg].
2012-03-23 14:13:38 INFO
OGG-01407 Oracle GoldenGate Delivery for Oracle, rep1.prm: Setting
current schema for DDL operation to [mynet_app].
2012-03-23 14:13:38
INFO OGG-01408 Oracle GoldenGate Delivery for Oracle, rep1.prm:
Restoring current schema for DDL operation to [ogg].
2012-03-23
14:13:38 INFO OGG-01407 Oracle GoldenGate Delivery for Oracle,
rep1.prm: Setting current schema for DDL operation to [mynet_app].
2012-03-23
14:13:38 INFO OGG-01408 Oracle GoldenGate Delivery for Oracle,
rep1.prm: Restoring current schema for DDL operation to [ogg].
2012-03-23
14:13:48 WARNING OGG-00869 Oracle GoldenGate Delivery for Oracle,
rep1.prm: No unique key is defined for table
'M_WEEKLY_REPORT_CATEGORY'. All viable columns will be used to represent
the key, but may not guarantee uniqueness. KEYCOLS may be used to
define the key.
5.同步測試:
主庫建張表並插入些資料:
[oracle@testdb ggs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Mar 23 14:17:07 2012
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> conn mynet_app
Enter password:
Connected.
SQL> create table test121312(id number);
Table created.
SQL> insert into test121312 select rownum from dual connect by rownum<=10;
10 rows created.
SQL> commit;
Commit complete.
SQL> select count(9) from test121312;
COUNT(9)
----------
10
SQL>
叢庫進行查詢:
[oracle@trptdb ggs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 23 14:23:44 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> conn mynet_app
Enter password:
Connected.
SQL> select count(9) from test121312;
COUNT(9)
----------
10
SQL>
成功同步,在此記錄一下~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-758119/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【GoldenGate】Oracle GoldenGate(三) DDL同步配置GoOracle
- 【GoldenGate】Oracle GoldenGate(二) 雙向同步配置GoOracle
- Oracle goldengate 安裝配置OracleGo
- oracle GoldenGate Veridata配置OracleGo
- Oracle GoldenGate Director配置手冊OracleGo
- oracle資料庫配置goldengate同步Oracle資料庫Go
- oracle goldengate 雙向複製配置OracleGo
- 【GoldenGate】Oracle GoldenGate Veridata 安裝配置與應用GoOracle
- 【GoldenGate】Oracle GoldenGate(一) 安裝與DML單向同步配置GoOracle
- oracle goldengate 配置DML&DDL實驗OracleGo
- 配置Oracle GoldenGate for DB2(雙向)OracleGoDB2
- Oracle GoldenGate 學習教程二、配置和使用OracleGo
- oracle goldengate 10g--->11g配置OracleGo
- Goldengate 基本配置Go
- 安裝配置Oracle GoldenGate for DB2(單向)OracleGoDB2
- 用python生成oracle goldengate複製配置檔案PythonOracleGo
- Oracle 11g GoldenGate單向複製配置(DML)OracleGo
- 【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 單向同步配置 上OracleGo
- 【OGG】Oracle GoldenGate 11g (二) GoldenGate 11g 單向同步配置 下OracleGo
- Oracle GoldenGate DirectorOracleGo
- oracle 11gR2 配置goldengate連線asm例項OracleGoASM
- GoldenGate的基本配置流程Go
- goldengate ddl 配置說明Go
- goldengate配置DDL複製Go
- 安裝並配置goldengateGo
- GoldenGate for win安裝配置Go
- GoldenGate雙向同步配置Go
- GoldenGate配置(三)之DDL複製配置Go
- Oracle GoldenGate Veridata 12.2.1.4安裝配置使用全手冊OracleGo
- About the Oracle GoldenGate TrailOracleGoAI
- oracle goldengate維護OracleGo
- Oracle GoldenGate: 使用巨集OracleGo
- GoldenGate Oracle MSSQL DateGoOracleSQL
- GoldenGate配置(二)之雙向複製配置Go
- GoldenGate配置(一)之單向複製配置Go
- goldengate 單向複製配置Go
- mysql goldengate同步 簡單配置MySqlGo
- GoldenGate 12.2抽取Oracle 12c多租戶配置過程GoOracle