系列文章目錄
【大數(shù)據(jù)實(shí)時(shí)數(shù)據(jù)同步】超級(jí)詳細(xì)的生產(chǎn)環(huán)境OGG(GoldenGate)12.2實(shí)時(shí)異構(gòu)同步Oracle數(shù)據(jù)部署方案(上)
【大數(shù)據(jù)實(shí)時(shí)數(shù)據(jù)同步】超級(jí)詳細(xì)的生產(chǎn)環(huán)境OGG(GoldenGate)12.2實(shí)時(shí)異構(gòu)同步Oracle數(shù)據(jù)部署方案(中)
【大數(shù)據(jù)實(shí)時(shí)數(shù)據(jù)同步】超級(jí)詳細(xì)的生產(chǎn)環(huán)境OGG(GoldenGate)12.2實(shí)時(shí)異構(gòu)同步Oracle數(shù)據(jù)部署方案(下)
前言
博主所在單位目前使用Oracle GoldenGate將各個(gè)業(yè)務(wù)生產(chǎn)庫(kù)匯聚到一起做數(shù)倉(cāng)實(shí)時(shí)ODS平臺(tái),源端庫(kù)可能涉及Oracle、Mysql、達(dá)夢(mèng)、Guassdb庫(kù)。
之前寫過(guò)一系列關(guān)于GoldenGate異構(gòu)同步Mysql、Kafka、Kylin、Flink做實(shí)時(shí)計(jì)算的場(chǎng)景文章。但是突然發(fā)現(xiàn),臥槽最最最應(yīng)該第一個(gè)做的Oracle->Oracle的實(shí)時(shí)異構(gòu)同步文檔竟然沒寫!
來(lái)彌補(bǔ)一下這個(gè)空白?。。?br> 好了,扯遠(yuǎn)了,回歸技術(shù)!
下面是我給大家的生產(chǎn)環(huán)境下,如何部署GoldenGate12C及異構(gòu)實(shí)時(shí)同步數(shù)據(jù)的解決方案。本文主要介紹如何實(shí)現(xiàn)實(shí)時(shí)異構(gòu)的進(jìn)行Oracle->Oracle的數(shù)據(jù)同步,這種數(shù)據(jù)同步適用于災(zāi)備、升級(jí)、實(shí)時(shí)ODS等場(chǎng)景使用。我這里給大家了三個(gè)GoldenGate部署方式,看大家喜歡用哪種吧!!
注意:本部署方案分為三章節(jié),三章節(jié)的重點(diǎn)分別是:
- GoldenGate12C安裝前,數(shù)據(jù)庫(kù)層面的準(zhǔn)備工作!??!
- 給你GoldenGate12C的三種部署方式,看你喜歡哪種部署方式?。?!
- 配置支持DDL操作的實(shí)時(shí)數(shù)據(jù)同步?。。?/li>
八、配置支持DDL同步操作
在源庫(kù)執(zhí)行,根據(jù)提示輸入ogg管理賬戶:ogg
[oracle@source ogg12]$ cd $GGHOME
[oracle@source ogg12]$ sqlplus / as sysdba
執(zhí)行如下腳本:
1、@marker_setup.sql
SQL> @marker_setup.sql
Marker setup script
You will be prompted for the name of a schema for the Oracle GoldenGate database objects.
NOTE: The schema must be created prior to running this script.
NOTE: Stop all DDL replication before starting this installation.
Enter Oracle GoldenGate schema name:OGG
Marker setup table script complete, running verification script...
Please enter the name of a schema for the GoldenGate database objects:
Setting schema name to OGG
MARKER TABLE
-------------------------------
OK
MARKER SEQUENCE
-------------------------------
OK
Script complete.
2、@ddl_setup.sql
該腳本創(chuàng)建了進(jìn)行DDL抽取所需要的觸發(fā)器和包。
主要提示:執(zhí)行此腳本時(shí),所有發(fā)出DDL的會(huì)話都必須關(guān)閉并重新連接,否則可能會(huì)發(fā)生錯(cuò)誤6508(找不到被調(diào)用的程序單元)并且DDL操作可能會(huì)失敗。這是因?yàn)橐粋€(gè)已知的Oracle bug#2747350。
未關(guān)閉的DDL會(huì)話會(huì)以列表的形式顯示出來(lái)。
3、@role_setup.sql
該腳本刪除并且重建DDL同步所需要的角色,它授權(quán)管理賬戶對(duì)DDL對(duì)象上的DML權(quán)限
根據(jù)提示執(zhí)行如下授權(quán)操作:
Grant GGS_GGSUSER_ROLE to ogg;
4、@ddl_enable.sql
改腳本創(chuàng)建DDL觸發(fā)器,以捕獲DDL操作,用于向marker和history表插入DDL信息
5、@marker_status.sql
驗(yàn)證ddl安裝
如下即正常安裝ddl支持
SQL> @marker_status.sql
Please enter the name of a schema for the GoldenGate database objects:
OGG
Setting schema name to OGG
MARKER TABLE
-------------------------------
OK
MARKER SEQUENCE
-------------------------------
OK
九、配置主庫(kù)到備庫(kù)同步(支持DDL)
需求:將源端scott用戶下的emp,dept 表通過(guò)ogg同步到目的端 ,邏輯同生產(chǎn)ODS
1、源端配置
MGR進(jìn)程配置(源端和目的端都做下面操作,添加的參數(shù)也一樣):
GGSCI (source) 6> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
GGSCI (source) 7> edit params mgr
--加入下面內(nèi)容
PORT 7809
DYNAMICPORTLIST 7810-7860
AUTORESTART ER *, RETRIES 3, WAITMINUTES 5
PURGEOLDEXTRACTS ./dirdat/*, USECHECKPOINTS, MINKEEPDAYS 30
lagreporthours 1
laginfominutes 30
lagcriticalminutes 60
--保存退出后,重啟管理進(jìn)程,讓配置生效:
GGSCI (source) 8> stop mgr
Manager process is required by other GGS processes.
Are you sure you want to stop it (y/n)?y
Sending STOP request to MANAGER ...
Request processed.
Manager stopped.
GGSCI (source) 9> start mgr
Manager started.
GGSCI (source) 10> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
2、源端新增抽取進(jìn)程配置
GGSCI (source) 12> edit params e_sc
--加入如下內(nèi)容:
extract e_sc
userid ogg,password ogg
setenv(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
setenv(ORACLE_SID="orcl")
reportcount every 30 minutes,rate
numfiles 5000
discardfile ./dirrpt/e_sc.dsc,append,megabytes 1000
warnlongtrans 2h,checkinterval 30m
exttrail ./dirdat/sc
dboptions allowunusedcolumn
tranlogoptions archivedlogonly
tranlogoptions altarchivelogdest primary /u01/arch
ddl include mapped
ddloptions addtrandata,report
notcpsourcetimer
nocompressupdates
fetchoptions USEROWID
NOCOMPRESSDELETES
----------scott.EMP
table SCOTT.EMP,tokens(
TKN-CSN = @GETENV('TRANSACTION', 'CSN'),
TKN-COMMIT-TS = @GETENV ('GGHEADER', 'COMMITTIMESTAMP'),
TKN-OP-TYPE = @GETENV ('GGHEADER', 'OPTYPE')
);
----------SCOTT.DEPT
table SCOTT.DEPT,tokens(
TKN-CSN = @GETENV('TRANSACTION', 'CSN'),
TKN-COMMIT-TS = @GETENV ('GGHEADER', 'COMMITTIMESTAMP'),
TKN-OP-TYPE = @GETENV ('GGHEADER', 'OPTYPE')
);
3、源端配置投遞進(jìn)程配置
GGSCI (source) 13>edit params d_sc
--加入如下內(nèi)容:
extract d_sc
rmthost 192.168.1.10,mgrport 7809,compress
userid ogg,password ogg
PASSTHRU
numfiles 5000
rmttrail ./dirdat/sc
dynamicresolution
table scott.*;
4、源端增加抽取進(jìn)程
GGSCI (source) 16> add extract e_sc,tranlog,begin now
EXTRACT added.
GGSCI (source) 17> add exttrail ./dirdat/sc,extract e_sc,megabytes 500
EXTTRAIL added.
5、源端增加投遞進(jìn)程
add extract d_sc,exttrailsource ./dirdat/sc
add rmttrail ./dirdat/sc,extract d_sc,megabytes 500
6、源端添加表級(jí)別附加日志
GGSCI (source) 40> dblogin userid ogg,password ogg
Successfully logged into database.
GGSCI (source as ogg@orcl) 41> add trandata SCOTT.EMP
Logging of supplemental redo data enabled for table SCOTT.EMP.
TRANDATA for scheduling columns has been added on table 'SCOTT.EMP'.
TRANDATA for instantiation CSN has been added on table 'SCOTT.EMP'.
GGSCI (source as ogg@orcl) 42>
GGSCI (source as ogg@orcl) 42> add trandata SCOTT.DEPT
Logging of supplemental redo data enabled for table SCOTT.DEPT.
TRANDATA for scheduling columns has been added on table 'SCOTT.DEPT'.
TRANDATA for instantiation CSN has been added on table 'SCOTT.DEPT'.
GGSCI (source as ogg@orcl) 43> info trandata SCOTT.EMP
Logging of supplemental redo log data is enabled for table SCOTT.EMP.
Columns supplementally logged for table SCOTT.EMP: EMPNO.
Prepared CSN for table SCOTT.EMP: 1108355
7、啟動(dòng)Extract和PUMP進(jìn)程
GGSCI (source) 38> start er *
Sending START request to MANAGER ...
EXTRACT D_SC starting
Sending START request to MANAGER ...
EXTRACT E_SC starting
GGSCI (source) 39> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING D_SC 00:00:00 00:00:04
EXTRACT RUNNING E_SC 00:00:00 00:00:04
8、目的端編輯REPLICAT進(jìn)程配置
GGSCI (ogg) 1> edit params mgr
---加入下面配置
replicat r_sc
setenv(NLS_LANG=AMERICAN_AMERICA.UTF8)
userid ogg,password ogg
reportcount every 30 minutes,rate
reperror default,abend
numfiles 20000
checkpointsecs 40
assumetargetdefs
discardfile ./dirrpt/r_sc.dsc,append,megabytes 1000
allownoopupdates
ddl &
include mapped &
exclude objname scott.*_audit &
exclude optype create &
objtype 'table' &
exclude optype drop &
objtype 'table' &
exclude objtype 'index' &
objname scott.*_his &
exclude instr 'constraint' &
--exclude instr 'null' &
exclude instr 'trigger' &
exclude instr 'rename to' &
exclude instr 'grant' &
exclude instr 'revoke' &
exclude instr 'analyze'
ddloptions report
allowduptargetmap
----------EMP
getinserts
getupdates
getdeletes
noupdatedeletes
map SCOTT.EMP,target SCOTT.EMP,keycols(EMPNO),colmap(
usedefaults,
etltime=@DATENOW()
);
ignoreinserts
ignoreupdates
getdeletes
INSERTDELETES
map SCOTT.EMP,target SCOTT.EMP_HIS,keycols(EMPNO),colmap(
usedefaults,
etltime=@DATENOW()
);
NOINSERTDELETES
updatedeletes
getinserts
getupdates
getdeletes
map SCOTT.EMP,target SCOTT.EMP_AUDIT,keycols(EMPNO),colmap(
EMPNO=@if(@strfind(@token('tkn-op-type'),'PK UPDATE')>0,before.EMPNO,EMPNO),
csn=@token('tkn-csn'),
optime=@token('tkn-commit-ts'),
optype=@if(@strfind(@token('tkn-op-type'),'PK UPDATE')>0,'DELETE',@token('tkn-op-type')),
inserttime=@eval(@strfind(@token('tkn-op-type'),'INSERT')>0,@token('tkn-commit-ts')),
curdate=@DATENOW()
);
ignoreinserts
getupdates
ignoredeletes
map SCOTT.EMP,target SCOTT.EMP_AUDIT,keycols(EMPNO),colmap(
usedefaults,
csn=@token('tkn-csn'),
optime=@token('tkn-commit-ts'),
optype=@case(@token('tkn-op-type'),'PK UPDATE','INSERT'),
inserttime=@token('tkn-commit-ts'),
curdate=@DATENOW()
),filter(@strfind(@token('tkn-op-type'),'PK UPDATE') >0),insertallrecords;
----------DEPT
getinserts
getupdates
getdeletes
noupdatedeletes
map SCOTT.DEPT,target SCOTT.DEPT,keycols(DEPTNO),colmap(
usedefaults,
etltime=@DATENOW()
);
ignoreinserts
ignoreupdates
getdeletes
INSERTDELETES
map SCOTT.DEPT,target SCOTT.DEPT_HIS,keycols(DEPTNO),colmap(
usedefaults,
etltime=@DATENOW()
);
NOINSERTDELETES
updatedeletes
getinserts
getupdates
getdeletes
map SCOTT.DEPT,target SCOTT.DEPT_AUDIT,keycols(DEPTNO),colmap(
DEPTNO=@if(@strfind(@token('tkn-op-type'),'PK UPDATE')>0,before.DEPTNO,DEPTNO),
csn=@token('tkn-csn'),
optime=@token('tkn-commit-ts'),
optype=@if(@strfind(@token('tkn-op-type'),'PK UPDATE')>0,'DELETE',@token('tkn-op-type')),
inserttime=@eval(@strfind(@token('tkn-op-type'),'INSERT')>0,@token('tkn-commit-ts')),
curdate=@DATENOW()
);
ignoreinserts
getupdates
ignoredeletes
map SCOTT.DEPT,target SCOTT.DEPT_AUDIT,keycols(DEPTNO),colmap(
usedefaults,
csn=@token('tkn-csn'),
optime=@token('tkn-commit-ts'),
optype=@case(@token('tkn-op-type'),'PK UPDATE','INSERT'),
inserttime=@token('tkn-commit-ts'),
curdate=@DATENOW()
),filter(@strfind(@token('tkn-op-type'),'PK UPDATE') >0),insertallrecords;
9、添加應(yīng)用進(jìn)程
GGSCI (ogg) 8> dblogin userid ogg,password ogg
Successfully logged into database.
GGSCI (ogg as ogg@ogg) 9> ADD CHECKPOINTTABLE ogg.ckpt
Successfully created checkpoint table ogg.ckpt.
GGSCI (ogg as ogg@ogg) 10> add replicat r_sc,exttrail ./dirdat/sc checkpointtable ogg.ckpt
10、源端導(dǎo)出emp.dept表并傳到目的端應(yīng)用
10.1、源端通過(guò)數(shù)據(jù)泵導(dǎo)出表
[oracle@source ogg12]$ mkdir /u01/exp--創(chuàng)建目錄
[oracle@source ogg12]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Sep 20 18:34:35 2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create directory expdir as '/u01/exp';
Directory created.
SQL> grant read,write on directory expdir to scott;
Grant succeeded.
SQL> grant dba to scott;--這個(gè)權(quán)限是為了測(cè)試方便所以給的dba權(quán)限。生產(chǎn)慎用
Grant succeeded.
SQL> set num 50
SQL> select current_scn from v$database;---查詢當(dāng)前scn
CURRENT_SCN
--------------------------------------------------
1108836
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@source ~]$ expdp \' / as sysdba\' directory=EXPDIR dumpfile=expdp_20180920.dmp logfile=expdp_20180920.log tables=SCOTT.EMP,SCOTT.DEPT exclude=ref_constraint flashback_scn=1108836
Export: Release 11.2.0.4.0 - Production on Thu Sep 20 18:45:47 2018
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
FLASHBACK automatically enabled to preserve database integrity.
Starting "SYS"."SYS_EXPORT_TABLE_01": "/******** AS SYSDBA" directory=EXPDIR dumpfile=expdp_20180920.dmp logfile=expdp_20180920.log tables=SCOTT.EMP,SCOTT.DEPT exclude=ref_constraint flash
back_scn=1108836 Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 128 KB
Processing object type TABLE_EXPORT/TABLE/PROCACT_INSTANCE
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "SCOTT"."DEPT" 5.929 KB 4 rows
. . exported "SCOTT"."EMP" 8.562 KB 14 rows
Master table "SYS"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_TABLE_01 is:
/u01/exp/expdp_20180920.dmp
Job "SYS"."SYS_EXPORT_TABLE_01" successfully completed at Thu Sep 20 18:46:21 2018 elapsed 0 00:00:24
10.2、目的端配置導(dǎo)入目錄
[oracle@ogg ~]$ mkdir /u01/imp
[oracle@ogg ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Sep 20 18:34:24 2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create directory expdir as '/u01/exp';
Directory created.
SQL> create directory impdir as '/u01/imp';
Directory created.
SQL> grant read,write on directory impdir to scott;
Grant succeeded.
10.3、將源端導(dǎo)出的dump文件傳到目的端
[oracle@source ~]$ scp /u01/exp/expdp_20180920.* 192.168.1.10:/u01/imp/
oracle@192.168.1.10's password:
expdp_20180920.dmp 100% 168KB 168.0KB/s 00:00
expdp_20180920.log
10.4、目標(biāo)端導(dǎo)入數(shù)據(jù)到原表
impdp \' / as sysdba\' directory=IMPDIR dumpfile=expdp_20180920.dmp logfile=expdp_20180920.log
10.5、OGG庫(kù)審計(jì)表數(shù)據(jù)初始化
create table SCOTT.EMP_AUDIT
(
EMPNO NUMBER(4),
CSN NUMBER,
OPTIME TIMESTAMP(6),
OPTYPE VARCHAR2(20),
INSERTTIME TIMESTAMP(6),
CURDATE TIMESTAMP(6)
);
create table SCOTT.DEPT_AUDIT
(
DEPTNO NUMBER(2),
CSN NUMBER,
OPTIME TIMESTAMP(6),
OPTYPE VARCHAR2(20),
INSERTTIME TIMESTAMP(6),
CURDATE TIMESTAMP(6)
);
insert into SCOTT.EMP_AUDIT select EMPNO,1108836,sysdate,'INITIAL',sysdate,'' from SCOTT.EMP;
insert into SCOTT.DEPT_AUDIT select DEPTNO,1108836,sysdate,'INITIAL',sysdate,'' from SCOTT.DEPT;
commit;
10.6、OGG庫(kù)添加ETLTIME字段
---目標(biāo)表
alter table scott.emp add etltime timestamp;
alter table scott.dept add etltime timestamp;
---HIS表
alter table scott.emp_HIS add etltime timestamp;
alter table scott.dept_HIS add etltime timestamp;
10.7、OGG庫(kù)ETLTIME字段數(shù)據(jù)初始化
----目標(biāo)表
update scott.emp set etltime=sysdate;
update scott.dept set etltime=sysdate;
commit;
10.8、OGG庫(kù)添加索引,防止進(jìn)程lag過(guò)高
CREATE INDEX scott.emp_idx ON scott.emp_audit(empno);
CREATE INDEX scott.dept_idx ON scott.dept_audit(deptno);
11、啟動(dòng)應(yīng)用進(jìn)程
start replicat r_sc aftercsn 1108836
12、驗(yàn)證
12.1、源端操作
[oracle@source ~]$ sqlplus scott/tiger
SQL*Plus: Release 11.2.0.4.0 Production on Thu Sep 20 19:11:57 2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter table dept add test number;
Table altered.
SQL> insert into dept values(50,'a','a','1');
1 row created.
SQL> alter table dept drop column test;
Table altered.
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
alter system switch logfile;
System altered.
12.2、目的端查看
看一下日志,DDL也正常應(yīng)用了:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-780385.html
2018-09-20 19:00:49 INFO OGG-06510 Using the following key columns for target table SCOTT.DEPT_AUDIT: DEPTNO.
2018-09-20 19:00:49 INFO OGG-03010 Performing implicit conversion of column data from character set UTF-8 to zhs16gbk.
2018-09-20 19:00:49 INFO OGG-00482 DDL found, operation [alter table dept drop column test (size 34)].
2018-09-20 19:00:49 INFO OGG-00489 DDL is of mapped scope, after mapping new operation [alter table "SCOTT"."DEPT" drop column test (size 44)].
2018-09-20 19:00:49 INFO OGG-00487 DDL operation included [include mapped], optype [ALTER], objtype [TABLE], objowner [SCOTT], objname [DEPT].
2018-09-20 19:00:49 INFO OGG-01407 Setting current schema for DDL operation to [SCOTT].
2018-09-20 19:00:49 INFO OGG-00484 Executing DDL operation.
2018-09-20 19:00:50 INFO OGG-00483 DDL operation successful.
2018-09-20 19:00:50 INFO OGG-01408 Restoring current schema for DDL operation to [OGG].
2018-09-20 19:00:50 INFO OGG-00489 DDL is of mapped scope, after mapping new operation [alter table "SCOTT"."DEPT_HIS" drop column test /* GOLDENGATE_DDL_REPLICATION */ (size 81)].
2018-09-20 19:00:50 INFO OGG-00487 DDL operation included [include mapped], optype [ALTER], objtype [TABLE], objowner [SCOTT], objname [DEPT_HIS].
2018-09-20 19:00:50 INFO OGG-01407 Setting current schema for DDL operation to [SCOTT].
2018-09-20 19:00:50 INFO OGG-00484 Executing DDL operation.
2018-09-20 19:00:50 INFO OGG-00483 DDL operation successful.
2018-09-20 19:00:50 INFO OGG-01408 Restoring current schema for DDL operation to [OGG].
2018-09-20 19:00:50 INFO OGG-00489 DDL is of mapped scope, after mapping new operation [alter table "SCOTT"."DEPT_AUDIT" drop column test /* GOLDENGATE_DDL_REPLICATION */ (size 83)].
2018-09-20 19:00:50 INFO OGG-00488 DDL operation excluded [exclude objname scott.*_audit], optype [ALTER], objtype [TABLE], objowner [SCOTT], objname [DEPT_AUDIT].
總結(jié)
我用了三個(gè)章節(jié)介紹完了生產(chǎn)環(huán)境下如何實(shí)時(shí)異構(gòu)同步Oracle->Oracle,且其中包括了如何初始化以及增量應(yīng)該從哪個(gè)時(shí)間點(diǎn)開始才能夠保證數(shù)據(jù)不重復(fù)、不丟失,如果有用到的各位可以作為參考?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-780385.html
到了這里,關(guān)于【大數(shù)據(jù)實(shí)時(shí)數(shù)據(jù)同步】超級(jí)詳細(xì)的生產(chǎn)環(huán)境OGG(GoldenGate)12.2實(shí)時(shí)異構(gòu)同步Oracle數(shù)據(jù)部署方案(下)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!