使用下游挖掘数据库的GoldenGate Integrated Capture

发布于:2021-01-28 10:39:07

0

196

0

GoldenGate Integrated Capture Downstream Capture

在我之前的文章中,我们讨论了使用本地部署模型的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