发布于:2021-01-28 10:39:07
0
202
0
在我之前的文章中,我们讨论了使用本地部署模型的GoldenGate 11g Integrated Capture功能。
现在让我们看一下Integrated Capture模式的Downstream Capture部署模型。
应该注意的是,集成捕获模式和经典捕获模式的主要区别在于,提取过程不再读取Oracle数据库的联机(或归档)重做日志文件,但是此任务由数据库日志挖掘服务器执行它以逻辑更改记录(LCR)的形式读取更改,然后由提取过程访问这些记录,并将其写入GoldenGate跟踪文件。
日志挖掘服务器所在的位置是Integrated Capture的本地和下游部署模型的差异。
在本地部署中,源数据库和挖掘数据库相同。
在下游部署中,源数据库和挖掘数据库是不同的数据库,而日志挖掘服务器位于下游数据库中。我们配置重做传输(类似于Data Guard中的操作),并且日志通过网络从源数据库传递到下游数据库。下游数据库中的日志挖掘服务器,以逻辑变更记录的形式从重做日志(或存档)文件中提取变更,然后将其传递到GoldenGate提取过程中。
由于logmining活动会在运行数据库的过程中增加额外的开销,因为它会添加其他进程并消耗SGA中的内存,因此将处理过程从源数据库转移到下游数据库是有益的。
我们可以将下游数据库配置为与目标数据库相同的数据库,或者除了目标数据库外,我们还可以有其他下游数据库。
但是,请记住,在Integrated Capture的下游部署模型中,源数据库和目标数据库的Oracle数据库版本和平台必须相同。
设置和配置
源数据库
创建源数据库用户帐户,其凭据摘录将用于从源数据库中获取数据和元数据。该用户可以是我们在设置和配置GoldenGate时创建的同一用户。
通过dbms_goldengate_auth.grant_admin_privilege过程(11.2.0.3及更高版本)为Extract授予适当的特权以在集成捕获模式下运行。
将v $ database上的select授予同一用户。
配置Oracle Net,以便源数据库可以与下游数据库通信(例如Data Guard)。
创建密码文件,并将密码文件复制到托管下游数据库的服务器上的$ ORACLE_HOME / dbs位置。请注意,密码文件在所有源数据库和挖掘数据库中必须相同。
配置一个LOG_ARCHIVE_DEST_n初始化参数,以将重做数据传输到下游挖掘数据库。
在源数据库(以及下游挖掘数据库)上,设置LOG_ARCHIVE_CONFIG初始化参数的DG_CONFIG属性以包括源数据库和下游数据库的DB_UNIQUE_NAME
下游数据库
在下游数据库上创建数据库用户帐户。提取过程将使用这些凭据与下游日志挖掘服务器进行交互。我们可以使用在目标数据库上设置和配置GoldenGate时创建的同一用户(如果目标数据库和下游数据库相同)。
通过执行dbms_goldengate_auth.grant_admin_privilege过程,为下游挖掘用户授予适当的特权以使其在集成捕获模式下运行。
将v $ database上的SELECT授予同一下游挖掘用户。
下游数据库必须在ARCHIVELOG模式下运行,如果要在实时集成捕获模式下运行Extract,则应配置本地重做日志文件的归档。如示例中所示,使用LOG_ARCHIVE_DEST_n参数。
创建备用重做日志文件(与联机重做日志文件大小相同,并且组数应比现有的联机重做日志组大一)。
配置数据库以在本地存档备用重做日志文件,这些文件从源数据库的联机重做日志接收重做数据。如示例中所示,使用LOG_ARCHIVE_DEST_n参数。
一些与下游集成捕获有关的新GoldenGate参数。
MININGDBLOGIN –在注册摘录之前,我们必须使用适当的数据库登录凭据连接到下游日志记录数据库。
TRANLOGOPTIONS MININGUSER ggate @ testdb2 MININGPASSWORD ggate –在下游提取参数文件中指定。
TRANLOGOPTIONS INTEGRATEDPARAMS(downstream_real_time_mine Y) –在下游提取参数文件中指定此值,并且是实时捕获所必需的。
例
此示例说明了实时集成捕获,因此我们还必须配置备用日志文件。
源数据库是testdb1,下游/目标数据库是testdb2。
源数据库以及下游/目标数据库中的数据库用户帐户均为GGATE。
我们已经设置并测试了从源到下游/目标数据库的Oracle Net连接。在这种情况下,我们在两个服务器的tnsnames.ora文件中都设置了TNS别名testdb1和testdb2。
源数据库(testdb1)
授予特权
SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(grantee => 'ggate', privilege_type => 'capture', grant_select_privileges=> true, - do_grants => TRUE); PL/SQL procedure successfully completed. SQL> GRANT SELECT ON V_$DATABASE TO GGATE; Grant succeeded.
配置重做传输
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=testdb2 ASYNC NOREGISTER VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=testdb2'; System altered. SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE; System altered. SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(testdb1,testdb2)'; System altered.
下游数据库
授予特权
SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(grantee => 'ggate', privilege_type => 'capture', grant_select_privileges=> true, - do_grants => TRUE); PL/SQL procedure successfully completed. SQL> GRANT SELECT ON V_$DATABASE TO GGATE; Grant succeeded.
准备挖掘数据库以存档其本地重做
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=/u01/oradata/testdb2/arch_local VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE)'; System altered.
创建备用日志文件
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/u01/oradata/testdb2/standby_redo04.log' SIZE 50M; Database altered. SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 '/u01/oradata/testdb2/standby_redo5.log' SIZE 50M; Database altered. SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 '/u01/oradata/testdb2/standby_redo06.log' SIZE 50M; Database altered. SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 '/u01/oradata/testdb2/standby_redo07.log' SIZE 50M; Database altered.
准备挖掘数据库以存档从源数据库接收到的备用重做日志中的重做
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2=’LOCATION=/u01/oradata/testdb2/arch_remote VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE)’; System altered. SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE; System altered.
在下游挖掘数据库中设置DG_CONFIG
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(testdb1,testdb2)'; System altered.
设置集成的捕获提取过程(myext)
[oracle@pdemvrhl062 ggate]$ ./ggsci Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1.0.3 14400833 OGGCORE_11.2.1.0.3_PLATFORMS_120823.1258_FBO Linux, x64, 64bit (optimized), Oracle 11g on Aug 23 2012 20:20:21 Copyright (C) 1995, 2012, Oracle and/or its affiliates. All rights reserved. GGSCI (pdemvrhl062) 1> DBLOGIN USERID ggate@testdb1 PASSWORD ggate Successfully logged into database. GGSCI (pdemvrhl062) 2> MININGDBLOGIN USERID ggate, PASSWORD ggate Successfully logged into mining database. GGSCI (pdemvrhl062) 5> REGISTER EXTRACT myext DATABASE 2013-01-31 18:02:02 WARNING OGG-02064 Oracle compatibility version 11.2.0.0.0 has limited datatype support for integrated capture. Version 11.2.0.3 required for full support. 2013-01-31 18:03:12 INFO OGG-02003 Extract MYEXT successfully registered with database at SCN 2129145. GGSCI (pdemvrhl062) 6> ADD EXTRACT myext INTEGRATED TRANLOG BEGIN NOW EXTRACT added. GGSCI (pdemvrhl062) 7> ADD EXTTRAIL /u01/app/ggate/dirdat/ic , EXTRACT myext EXTTRAIL added. GGSCI (pdemvrhl062) 8> EDIT PARAMS myext EXTRACT myext USERID ggate@testdb1, PASSWORD ggate TRANLOGOPTIONS MININGUSER ggate@testdb2 MININGPASSWORD ggate TRANLOGOPTIONS INTEGRATEDPARAMS (downstream_real_time_mine Y) EXTTRAIL /u01/app/ggate/dirdat/ic TABLE sh.customers;
创建复制过程(myrep)
GGSCI (pdemvrhl062) 14> ADD REPLICAT myrep EXTTRAIL /u01/app/ggate/dirdat/ic REPLICAT added. GGSCI (pdemvrhl062) 17> EDIT PARAMS myrep REPLICAT myrep ASSUMETARGETDEFS USERID ggate, PASSWORD ggate MAP sh.customers, TARGET sh.customers;
开始提取和复制过程
GGSCI (pdemvrhl062) 19> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING MYEXT 00:00:00 00:00:03 REPLICAT RUNNING MYREP 00:00:00 00:00:03
测试–在源数据库上,更新CUSTOMERS表的行
SQL> update customers set cust_city='SYDNEY'; 55500 rows updated. SQL> commit; Commit complete.
在目标数据库上,确认更新语句已被复制
[oracle@pdemvrhl062 ggate]$ sqlplus sh/sh SQL*Plus: Release 11.2.0.3.0 Production on Thu Jan 31 18:39:41 2013 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> select distinct cust_city from customers; CUST_CITY ------------------------------ SYDNEY
查看下游Extract myext的统计信息
GGSCI (pdemvrhl062) 23> stats extract myext Sending STATS request to EXTRACT MYEXT ... Start of Statistics at 2013-01-31 18:37:54. Output to /u01/app/ggate/dirdat/ic: Extracting from SH.CUSTOMERS to SH.CUSTOMERS: *** Total statistics since 2013-01-31 18:37:07 *** Total inserts 0.00 Total updates 55500.00 Total deletes 0.00 Total discards 0.00 Total operations 55500.00
作者介绍