(一)OGG的安裝與配置,並實現單向DML複製操作
實驗目的:在兩臺虛機模擬同平臺同版本上面安裝和配置OGG,並實現簡單的DML複製。
實驗環境:64位系統
作業系統:rhel6.6-x86_64
資料庫:oracle_11.2-x86-64
goldengate:for_11g_x64
實驗步驟:
1、
配置源端和目標端ip:
源端:
[root@oggsource ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.103.106 oggsource.localdomain oggsource
目標端:
[root@oggtarget ~]#cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.103.107 oggtarget.localdomain oggtarget
2、
在作業系統中增加goldengate 使用者,便於和oracle使用者區分。
源端:
[root@oggsource ~]# useradd -g oinstall goldengate
目標端:
[root@oggtarget ~]# useradd -g oinstall goldengate
3、
設定goldengate使用者的環境變數,要注意LD_LIBRARY_PATH一定要設定,如果沒有配置這個路徑的話,在安裝OGG的過程中會報找不到動態連結庫的錯誤。
源端:
[root@oggsource ~]# su - goldengate
[goldengate@oggsource ~]$ vi .bash_profile
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/gg_1
export PATH=$ORACLE_HOME/bin:$PATH
export nls_lang=american_america.zhs16gbk
export ORACLE_SID=oggs
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
[goldengate@oggsource ~]$ source .bash_profile
目標端:
[root@oggtarget ~]# su - goldengate
[goldengate@oggtarget ~]$ vi .bash_profile
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/gg_1
export PATH=$ORACLE_HOME/bin:$PATH
export nls_lang=american_america.zhs16gbk
export ORACLE_SID=oggt
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
[goldengate@oggtarget ~]$ source.bash_profile
3、
源端
建立goldengate專用的表空間、schema、並授權。
SQL> create tablespace goldengate datafile '/u01/app/oracle/oradata/oggs/goldengate01.dbf'size 100m autoextend on;
create user goldengate identified by goldengate default tablespace goldengate temporary tablespace temp;
grant connect,resource to goldengate;
grant dba to goldengate;
5、
源端
檢查資料庫是否在歸檔模式,建議在歸檔模式。
SQL> archive log list;
Database log mode ArchiveMode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 19
Next log sequence to archive 21
Current log sequence 21
6、
源端:
設定附加日誌
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
NO
開啟:
SQL> alter database add supplemental log data;
Database altered.
再次檢視:
SQL> select supplemental_log_data_min from v$database;
SUPPLEME
--------
YES
7、
源端:
建立ogg目錄,便於goldengate的管理
[root@oggsource oraclesetup]# cd /home/goldengate
[root@oggsource goldengate]# mkdir ogg
8、
源端:
安裝和配置goldengate。
解壓就是安裝,安裝到/home/goldengate/ogg/目錄下,然後修改目錄許可權。
[root@oggsource ogg]# unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[root@oggsource ogg]# tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
[root@oggsource ogg]# chown -R goldengate:oinstall /home/goldengate/ogg/
9、
源端:
測試安裝成功,只需進入命令列,就表明安裝是成功的。
[goldengate@oggsource ~]$ cd /home/goldengate/ogg/
[goldengate@oggsource ogg]$ ./ggsci
Oracle GoldenGate Command Interpreter forOracle
Version 11.2.1.0.1OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11gon Apr 23 2012 08:32:14
Copyright (C) 1995, 2012, Oracle and/or itsaffiliates. All rights reserved.
GGSCI (oggsource.localdomain) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER STOPPED
10、
在目標端也安裝一遍(重複上面 7、8、9步驟)。
[root@oggtarget oraclesetup]# cd /home/goldengate
[root@oggtarget goldengate]# mkdir ogg
[root@oggtarget ogg]# unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip
[root@oggtarget ogg]# tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar
[root@oggtarget ogg]# chown -R goldengate:oinstall /home/goldengate/ogg/
[root@oggtarget ~]# su - goldengate
[goldengate@oggtarget ~]$ cd/home/goldengate/ogg/
[goldengate@oggtarget ogg]$ ./ggsci
Oracle GoldenGate Command Interpreter forOracle
Version 11.2.1.0.1OGGCORE_11.2.1.0.1_PLATFORMS_120423.0230_FBO
Linux, x64, 64bit (optimized), Oracle 11gon Apr 23 2012 08:32:14
Copyright (C) 1995, 2012, Oracle and/or itsaffiliates. All rights reserved.
GGSCI (oggtarget.localdomain) 1> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER STOPPED
11、
配置源端和目標端的管理程式。
源端:
GGSCI (oggsource.localdomain) 2> create subdirs
GGSCI (oggsource.localdomain) 3> edit params mgr
port 7839
DYNAMICPORTLIST 7840-7850
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
啟動配置的管理程式
GGSCI (oggtsource.localdomain) 4> start mgr
Manager started.
GGSCI (oggtsource.localdomain) 5> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
GGSCI (oggtsource.localdomain) 6> info mgr
Manager is running (IP portoggtsource.localdomain.7839).
目標端:
GGSCI (oggtarget.localdomain) 2> create subdirs
GGSCI (oggtarget.localdomain) 3> edit params mgr
port 7839
DYNAMICPORTLIST 7840-7850
AUTOSTART EXTRACT *
AUTORESTART EXTRACT *
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 7
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
啟動配置的管理程式
GGSCI (oggtarget.localdomain) 4> start mgr
Manager started.
GGSCI (oggtarget.localdomain) 5> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
GGSCI (oggtarget.localdomain) 6> info mgr
Manager is running (IP portoggtarget.localdomain.7839).
引數分析:
PORT:指定服務監聽埠;這裡以7839為例,預設埠為7809
DYNAMICPORTLIST:動態埠:可以制定最大256個可用埠的動態列表,當指定的埠不可用時,管理程式將會從列表中選擇一個可用的埠,源端和目標段的Collector、Replicat、GGSCI程式通訊也會使用這些埠;
AUTOSTART:指定在管理程式啟動時自動啟動哪些程式;
AUTORESTART:自動重啟引數設定;
PURGEOLDEXTRACTS:定期清理trail檔案設定:本處設定表示對於超過7天的trail檔案進行刪除。
LAGREPORT、LAGINFO、LAGCRITICAL:
定義資料延遲的預警機制:本處設定表示MGR程式每隔1小時檢查EXTRACT的延遲情況,如果超過了30分鐘就把延遲作為資訊記錄到錯誤日誌中,如果延遲超過了45分鐘,則把它作為警告寫到錯誤日誌中。
12、
源端:
測試資料用的是OGG_USER使用者的表資料(OGG_USER使用者下只有T1一個表)。
檢視要複製的表的日誌資訊是完整的,確保是logging。把nologing變成logging。
SQL> alter table ogg_user.t1 logging;
Table altered.
13、
源端:
配置ogg_user使用者的表級附加日誌。配置登陸使用者。並檢查日誌是否新增成功。
以goldengate這個schema登陸資料庫。
GGSCI (oggsource.localdomain) 7> dblogin userid goldengate,password goldengate
Successfully logged into database.
檢視:
GGSCI (oggsource.localdomain) 3> info trandata ogg_user.*
Logging of supplemental redo log data is disabled for table OGG_USER.T1.
注意:發現是disabled,還沒有新增成功,繼續下一步。
新增:
GGSCI (oggsource.localdomain) 12> add trandata ogg_user.*
Logging of supplemental redo data enabled for table OGG_USER.T1.
注意:現在成功了,是enable的。
14、
源端:
配置抓取程式。
GGSCI (oggsource.localdomain) 13> add extract ext_demo, tranlog, begin now,threads 1
EXTRACT added.
GGSCI (oggsource.localdomain) 14> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED EXT_DEMO 00:00:00 00:00:13
引數分析:
tranlog:表示資料抓取的來源是資料庫的redo資料。
begin now:表示我們在啟動這個抓取程式的就去抓取資料。
threads 1:表示我們資料庫有多少個redo threads。
15、
源端:
新增佇列檔案。
GGSCI (oggsource.localdomain) 15> add EXTTRAIL ./dirdat/r1, extract ext_demo,megabytes 100
EXTTRAIL added.
分析:
./dirdat:表示trail檔案的目錄
r1:trail檔案的字首
extract ext_demo:值指定給那個程式用的(ext_demo)。
megabytes 100:檔案大小是100m
16、
源端:
編輯我們剛剛配置的抓取程式的引數:
GGSCI (oggsource.localdomain) 16> edit param ext_demo
EXTRACT ext_demo
setenv (ORACLE_SID=oggs)
setenv (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
userid goldengate,password goldengate
REPORTCOUNT EVERY 1 MINUTES, RATE
numfiles 5000
DISCARDFILE./dirrpt/ext_demo.dsc,APPEND,MEGABYTES 1000
DISCARDROLLOVER AT 3:00
exttrail ./dirdat/r1,megabytes 100
dynamicresolution
TRANLOGOPTIONS EXCLUDEUSER goldengate
TRANLOGOPTIONS convertucs2clobs
TABLE OGG_USER.*;
分析:
SETENV:配置系統環境變數
USERID/ PASSWORD:指定OGG連線資料庫的使用者名稱和密碼;
REPORTCOUNT:報告已經處理的記錄條數統計數字;
DISCARDFILE:定義discardfile檔案位置,如果處理中油記錄出錯會寫入到此檔案中;
EXTTRAIL:指定寫入到本地的哪個佇列;
TRANLOGOPTIONS:指定在解析資料庫日誌時所需要的特殊引數,例如:對於裸裝置,可能需要加入以下引數 rawdeviceoggset 0
17、
源端:
啟動抓取程式:
GGSCI (oggsource.localdomain) 17>info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT STOPPED EXT_DEMO 00:00:00 00:02:22
GGSCI (oggsource.localdomain) 18> start ext_demo
Sending START request to MANAGER ...
EXTRACT EXT_DEMO starting
GGSCI (oggsource.localdomain) 19> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXT_DEMO 00:00:00 00:00:02
18、
源端:
配置datapump程式,將抓取資料傳到目標主機。負責TCPIP通訊。
GGSCI (oggsource.localdomain) 20> add extract dpe_demo, exttrailsource./dirdat/r1
EXTRACT added.
輸出:目標主機怎麼寫,也是定義datapumo程式的輸出。
GGSCI (oggsource.localdomain) 21> add rmttrail ./dirdat/t1,EXTRACT dpe_demo,MEGABYTES 100
RMTTRAIL added.
分析:
exttrailsource:抓取程式的來源,因為這個程式不否則到資料庫中取抓取,所以抓取的來源
是通過抓取程式已經生成好的trail檔案中的內容。
19、
源端:
配置datapump程式引數:
GGSCI (oggsource.localdomain) 22> edit param dpe_demo
extract dpe_demo
dynamicresolution
passthru
rmthost 192.168.103.107, mgrport 7839,compress
rmttrail ./dirdat/t1
numfiles 5000
TABLE OGG_USER.*;
GGSCI (oggsource.localdomain) 23> start dpe_demo
Sending START request to MANAGER ...
EXTRACT DPE_DEMO starting
GGSCI (oggsource.localdomain) 24> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING DPE_DEMO 00:00:00 00:00:00
EXTRACT RUNNING EXT_DEMO 00:00:00 00:00:02
分析:
PASSTHRU:禁止extract程式與資料庫互動,適用於Data Pump傳輸程式;
RMTHOST:指定目標系統及其GoldengateManager程式的埠號,還用於定義是否使用壓縮排行傳輸;
mgrport:目標主機管理程式的埠號,我們上面已經配置了。
compress:在傳輸的過程中啟用壓縮。
RMTTRAIL:指定寫入到目標斷的哪個佇列;
TABLE OGG_USER.*:上面說過,哪些表的redo資訊傳輸。
啟動,如果有問題,狀態不能為running,可以檢視相應的日誌在自己安裝的ogghome目錄下。
日誌所在地:
[goldengate@oggsource ogg]$ vi ggserr.log
20、
源端:
測試goldengate能否抓取資料:
SQL> insert into ogg_user.t1 values(3,'c',30);
SQL> commit;
Commit complete.
SQL> alter system switch logfile;
Systemaltered.
檢視源端是否生成檔案:
[root@oggsource ~]# su - goldengate
[goldengate@oggsource ~]$ cd/home/goldengate/ogg/dirdat
[goldengate@oggsource dirdat]$ ll
total 4
-rw-rw-rw- 1 goldengate oinstall 1330 Jul27 16:56 r1000000
檢視目標端是否也生成:
[root@oggtarget ~]# su - goldengate
[goldengate@oggtarget ~]$ cd /home/goldengate/ogg/dirdat
[goldengate@oggtarget dirdat]$ ll
total 4
-rw-rw-rw- 1 goldengate oinstall 1386 Jul27 16:56 t1000000
21、
目標端:
建立golengate軟體使用的schema,並授權一些必要的特殊許可權,注意與源端有所區別,保證我們能DML。
create tablespace goldengate datafile '/u01/app/oracle/oradata/oggt/goldengate01.dbf' size 100m autoextend on;
create user goldengate identified by goldengate default tablespace goldengate temporary tablespace temp;
grant connect,resource to goldengate;
grant dba to goldengate;
22、
目標端:
為replicat程式建立checkpoint表:
GGSCI (oggtarget.localdomain) 7> dblogin userid goldengate,password goldengate
Successfully logged into database.
GGSCI (oggtarget.localdomain) 8> add checkpointtable goldengate.rep_demo_ckpt
Successfully created checkpoint table goldengate.rep_demo_ckpt.
23、
目標端:
配置目標端replicate程式:
GGSCI (oggtarget.localdomain) 9> add replicat rep_demo,exttrail./dirdat/t1,checkpointtable goldengate.rep_demo_ckpt
REPLICAT added.
分析:
exttrail:表示這個程式獲取資料的來源是什麼地方,是我們源端rmttrail所設定過的。
24、
目標端:
配置目標端replicate引數:
GGSCI (oggtarget.localdomain) 10> edit param rep_demo
REPLICAT rep_demo
SETENV (ORACLE_SID=oggt)
SETENV (NLS_LANG ="AMERICAN_AMERICA.ZHS16GBK")
USERID goldengate,PASSWORD goldengate
REPORTCOUNT EVERY 30 MINUTES, RATE
REPERROR DEFAULT, ABEND
numfiles 5000
--HANDLECOLLISIONS
assumetargetdefs
DISCARDFILE ./dirrpt/rep_demo.dsc, APPEND,MEGABYTES 1000
ALLOWNOOPUPDATES
MAP OGG_USER.*,TARGET OGG_USER.*;
分析:
REPERROR:定義出錯以後程式的響應,一般可以定義為兩種:
ABEND,即一旦出現錯誤即停止複製,此為預設配置;
DISCARD,出現錯誤後繼續複製,只是把錯誤的資料放到discard檔案中。
ASSUMETARGETDEFS:假定兩端資料結構一致使用此引數;
MAP:用於指定源端與目標端表的對映關係;
25、
目標端:
啟動並檢視replicate程式是否執行:
GGSCI (oggtarget.localdomain) 11> start rep_demo
Sending START request to MANAGER ...
REPLICAT REP_DEMO starting
GGSCI (oggtarget.localdomain) 12> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT RUNNING REP_DEMO 00:00:00 00:01:59
26、 測試源端和目標端的資料。
源端:
SQL> update ogg_user.t1 set salary=300 where id=3;
1 row updated.
SQL> commit;
Commit complete.
SQL> alter system switch logfile;
System altered.
SQL> select * from ogg_user.t1;
ID NAME SALARY
---------- ---------- ----------
3 c 300
1 a 10
2 b 20
目標端:
SQL> select * from ogg_user.t1;
ID NAME SALARY
---------- ---------- ----------
3 c 300
1 a 10
2 b 20
27、
測試資料同步,表明已經配置完成goldengate,並實現了單向DML複製。
相關文章
- 手把手教你安裝和配置OGG,並實現單向DML複製技術
- OGG雙向DML複製操作
- OGG單向DDL複製操作
- 實戰goldengate:安裝配置+資料初始化+單向DML複製Go
- OGG安裝及單向配置
- 【GoldenGate】Oracle GoldenGate(一) 安裝與DML單向同步配置GoOracle
- Oracle 11g GoldenGate單向複製配置(DML)OracleGo
- MySQL單機多例項安裝並配置主從複製MySql
- GoldenGate配置(一)之單向複製配置Go
- sqlserver2008_ogg單向複製配置文件SQLServer
- goldengate單向複製的配置Go
- goldengate 單向複製配置Go
- GoldenGate單向複製配置(支援DDL複製)Go
- Oracle goldengate 11g (二)【DML and DDL單向複製】OracleGo
- 使用GoldenGate 實現Oracle for Oracle 單向資料同步(實現表的DML操作同步)GoOracle
- oracle---oracle的單向ogg搭建流程(DML+DDL)Oracle
- OGG 簡單DML同步
- saltstack的安裝與簡單配置(一)
- OGG 的配置:不使用資料泵完成Oracle-Oracle的雙向複製。Oracle
- docker 基本安裝配置操作(複習)Docker
- ogg12 oracle to oracle 雙向DDL複製Oracle
- Oracle並行操作——並行DML操作Oracle並行
- 【OGG】RAC環境下配置OGG單向同步 (四)
- Redis的安裝配置與命令操作Redis
- MySQL 主從複製安裝部署配置MySql
- 【JavaScript】聊一聊js中的淺複製與深複製與手寫實現JavaScriptJS
- OGG複製與加密欄位的衝突加密
- ogg中抽取或複製程式(extract or replicat)中表的的重複配置
- 一次通過stream複製解決資料單向複製的案例
- 高階複製-5、測試是否可同步DML操作
- ogg單機安裝概要
- poi操作excel,複製sheet,複製行,複製單元格,複製styleExcel
- Oracle9i高階複製(單向複製部分)實施完畢Oracle
- oracle goldengate 雙向複製配置OracleGo
- 在RAC下安裝配置OGG
- GoldenGate配置(二)之雙向複製配置Go
- 並行dml操作所需的TM鎖並行
- 在docker中安裝mysql並搭建主從複製DockerMySql