【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】10、使用经典捕获的10个额外配置步骤

本章包含额外的配置和准备要求,这些要求仅在经典的capturemode中操作时才能提取。

这些需求补充了文档中记录的基本配置需求 Configuring Capture in Classic Mode.

Topics:

  • 以经典捕获模式配置Oracle TDE数据
    本节不适用于以集成捕获模式提取。
    在Oracle RAC环境中使用经典捕获
    当Extract在经典捕获模式下运行时,以下通用准则适用于Oracle RAC。
    在经典捕获模式下挖掘asm存储的日志
    本主题涵盖了当Oracle GoldenGate挖掘存储在Oracle自动存储管理(ASM)中的事务日志时应用的其他配置需求。
  • 确保经典捕获的数据可用性
    要确保在Extract以经典捕获模式操作时捕获处理的连续性和完整性,请启用归档日志记录。
  • 在归档日志模式中配置Classic Capture
    可以将Extract配置为仅从归档日志中读取。这称为仅存档日志(ALO)模式。
    在Oracle Active Data Guard Only模式中配置Classic Capture
    您可以配置Classic Extract来实时访问重做数据和元数据,从而使用Oracle Active data Guard成功地复制源数据库活动。这就是所谓的主动数据保护(ADG)模式。
  • 避免经典捕获中的日志读取瓶颈
    当Oracle GoldenGate从重做日志中捕获数据时,可能会出现I/O瓶颈,因为Extract读取的是数据库日志机制所写的相同文件。

10.1 Configuring Oracle TDE Data in Classic Capture Mode

本节不适用于以集成捕获模式提取。
当Extract处于经典捕获模式时,需要以下特殊配置步骤来支持TDE。
注意:

在集成模式下,Extract利用数据库日志服务器并支持TDE列加密和TDE表空间加密,而不需要特殊的设置要求或参数设置。For more information about integrated capture, see Choosing Capture and Apply Modes.

  • Overview of TDE Support in Classic Capture Mode
  • Requirements for Capturing TDE in Classic Capture Mode
  • Required Database Patches for TDE Support
  • Configuring Classic Capture for TDE Support
  • Recommendations for Maintaining Data Security after Decryption
  • Performing DDL while TDE Capture is Active
  • Rekeying after a Database Upgrade
  • Updating the Oracle Shared Secret in the Parameter File

Parent topic: Additional Configuration Steps for Using Classic Capture

10.1.1 Overview of TDE Support in Classic Capture Mode

当提取处于经典捕获模式时,TDE支持需要交换两种密钥:

  • 加密的密钥可以是表密钥(列级加密)、加密的重做日志密钥(表空间级加密),或者两者兼备。该密钥在Oracle数据库和Extract之间共享

  • 解密密钥名为ORACLEGG,其密码称为共享密钥。此密钥安全存储在Oracle和Oracle GoldenGate域中。只有拥有共享密钥的一方才能解密表并重做日志密钥。

加密密钥通过内置的PL/SQL代码交付给提取过程。Extract使用共享的秘密来解密数据。Extract从不处理钱包主密钥本身,也不知道主密钥密码。它们仍然在Oracle数据库安全框架中。

Extract从不将解密后的数据写入任何文件(除了跟踪文件之外),甚至也不写入丢弃文件(使用DISCARDFILE参数指定)。“加密”一词将被写入正在使用的任何废弃文件。

该特性对Oracle GoldenGate性能的影响应该反映出解密对数据库性能的影响。除了略微增加提取启动时间外,复制TDE数据对性能的影响应该很小。

Parent topic: Configuring Oracle TDE Data in Classic Capture Mode

10.1.2 Requirements for Capturing TDE in Classic Capture Mode

以下是支持TDE捕获的提取需求:

  • 为了保持较高的安全标准,Oracle GoldenGate提取过程应该作为Oracle用户(运行Oracle数据库的用户)的一部分运行。这样,密钥在内存中受到与oracle用户相同的特权保护。

  • 提取过程必须与数据库安装在同一台机器上运行。

  • 即使使用带有硬件安全模块的TDE,也必须使用软件钱包。在配置步骤中的Oracle Security Officer任务中提供了从仅支持hsm到支持hsm -plus钱包配置和配置sqlnet的说明。ora文件正确。

  • 无论何时升级源数据库,都必须重新设置主键。

Parent topic: Configuring Oracle TDE Data in Classic Capture Mode

10.1.3 Required Database Patches for TDE Support

To support TDE on Oracle 11.2.0.2, refer to article 1557031.1 on the My Oracle Support website (https://support.oracle.com).

Parent topic: Configuring Oracle TDE Data in Classic Capture Mode

10.1.4 Configuring Classic Capture for TDE Support

下面概述了Oracle安全官员和Oracle GoldenGate管理员在Oracle服务器和提取过程之间建立通信的步骤。

  • Agree on a Shared Secret that Meets Oracle Standards
  • Oracle DBA Tasks
  • Oracle Security Officer Tasks
  • Oracle GoldenGate Administrator Tasks

Parent topic: Configuring Oracle TDE Data in Classic Capture Mode

10.1.4.1 Agree on a Shared Secret that Meets Oracle Standards

同意一个符合或超过Oracle密码标准的共享秘密密码。任何人不得知道此密码。For guidelines on creating secure passwords, see Oracle Database Security Guide.

Parent topic: Configuring Classic Capture for TDE Support

10.1.4.2 Oracle DBA Tasks

  1. Log in to SQL*Plus as a user with the SYSDBA system privilege. For example:
    sqlplus sys/as sysdba
    Connected.
    Enter password: password
    
  2. Run the prvtclkm.plb file that is installed in the Oracle admin directory. The prvtclkm.plb file creates the DBMS_INTERNAL_CLKM PL/SQL package, which enables Oracle GoldenGate to extract encrypted data from an Oracle Database.
    @?/app/oracle/product/orcl111/rdbms/admin/prvtclkm.plb
    
  3. Grant EXEC privilege on DBMS_INTERNAL_CLKM PL/SQL package to the Extract database user.
    GRANT EXECUTE ON DBMS_INTERNAL_CLKM TO psmith;
    
  4. Exit SQL*Plus.

Parent topic: Configuring Classic Capture for TDE Support

10.1.4.3 Oracle Security Officer Tasks

  1. 即使是使用HSM, Oracle GoldenGate也要求使用软件钱包。如果您目前使用的是HSM-only模式,请按照以下步骤切换到HSM-plus-wallet模式:

    1. Change the sqlnet.ora file configuration as shown in the following example, where the wallet directory can be any location on disk that is accessible (rwx) by the owner of the Oracle Database. This example shows a best-practice location, where my_db is the $ORACLE_SID.

      ENCRYPTION_WALLET_LOCATION=
       (SOURCE=(METHOD=HSM)(METHOD_DATA=
         (DIRECTORY=/etc/oracle/wallets/my_db)))
      
    2. Log in to orapki (or Wallet Manager) as the owner of the Oracle Database, and create an auto-login wallet in the location that you specified in the sqlnet.ora file. When prompted for the wallet password, specify the same password as the HSM password (or HSM Connect String). These two passwords must be identical.

      cd /etc/oracle/wallets/my_db
      orapki wallet create -wallet . -auto_login[_local] 
      

      Note:

      The Oracle Database owner must have full operating system privileges on the wallet.

    3. Add the following entry to the empty wallet to enable an 'auto-open' HSM:

      mkstore -wrl . -createEntry ORACLE.TDE.HSM.AUTOLOGIN non-empty-string 
      
  2. Create an entry named ORACLEGG in the wallet. ORACLEGG must be the name of this key. The password for this key must be the agreed-upon shared secret, but do not enter this password on the command line. Instead, wait to be prompted.

    mkstore -wrl ./ -createEntry ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG
    Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
    Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
    Your secret/Password is missing in the command line
    Enter your secret/Password: sharedsecret
    Re-enter your secret/Password: sharedsecret
    Enter wallet password: hsm/wallet_password
    
  3. Verify the ORACLEGG entry.

    mkstore -wrl . -list
    Oracle Secret Store Tool : Version 11.2.0.3.0 - Production
    Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
    Enter wallet password: hsm/wallet_password
    Oracle Secret Store entries:
    ORACLE.SECURITY.CL.ENCRYPTION.ORACLEGG
    
  4. Log in to SQL*Plus as a user with the SYSDBA system privilege.

  5. Close and then re-open the wallet.

    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.
    

    This inserts the password into the auto-open wallet, so that no password is required to access encrypted data with the TDE master encryption key stored in HSM.

  6. Switch log files.

    alter system switch logfile;
    System altered.
    
  7. If this is an Oracle RAC environment and you are using copies of the wallet on each node, make the copies now and then reopen each wallet.

Note:

Oracle recommends using one wallet in a shared location, with synchronized access among all Oracle RAC nodes.

Parent topic: Configuring Classic Capture for TDE Support

10.1.4.4 Oracle GoldenGate Administrator Tasks

  1. Run GGSCI.
  2. Issue the ENCRYPT PASSWORD command to encrypt the shared secret so that it is obfuscated within the Extract parameter file. This is a security requirement.
    ENCRYPT PASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    Where:

    • sharedsecret is the clear-text shared secret. This value is case-sensitive.

    • {AES128 | AES192 | AES256} specifies Advanced Encryption Standard (AES) encryption. Specify one of the values, which represents the desired key length.

    • keyname is the logical name of the encryption key in the ENCKEYS lookup file. Oracle GoldenGate uses this key to look up the actual key in the ENCKEYS file. To create a key and ENCKEYS file, see Administering Oracle GoldenGate.

      Example:

      ENCRYPT PASSWORD sharedsecret AES256 ENCRYPTKEY mykey1
      
  3. In the Extract parameter file, use the DBOPTIONS parameter with the DECRYPTPASSWORD option. As input, supply the encrypted shared secret and the decryption key.
    DBOPTIONS DECRYPTPASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    Where:

    • sharedsecret is the encrypted shared secret.

    • {AES128 | AES192 | AES256} must be same value that was used for ENCRYPT PASSWORD.

    • keyname is the logical name of the encryption key in the ENCKEYS lookup file.

      Example:

      DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1
      
  4. Log in to SQL*Plus as a user with the SYSDBA system privilege.
  5. Close and then re-open the wallet.
    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.
    

Parent topic: Configuring Classic Capture for TDE Support

10.1.5 Recommendations for Maintaining Data Security after Decryption

Extract decrypts the TDE data and writes it to the trail as clear text. To maintain data security throughout the path to the target database, it is recommended that you also deploy Oracle GoldenGate security features to:

  • encrypt the data in the trails

  • encrypt the data in transit across TCP/IP

For more information, see Administering Oracle GoldenGate.

Parent topic: Configuring Oracle TDE Data in Classic Capture Mode

10.1.6 Performing DDL while TDE Capture is Active

如果DDL将在具有列级加密的表上执行,或者如果将重新键入表键,则必须在执行DDL时暂停表,或者启用Oracle GoldenGate DDL支持。更实际的做法是激活DDL环境,使其准备就绪,因为重新密钥通常是对安全违规的响应,必须立即执行。要安装Oracle GoldenGate DDL环境,参见安装基于触发器的DDL捕获。要配置Oracle GoldenGate DDL支持,请参阅配置DDL支持。对于表空间级加密,不需要Oracle GoldenGate DDL支持。

Parent topic: Configuring Oracle TDE Data in Classic Capture Mode

10.1.7 Rekeying after a Database Upgrade

Whenever the source database is upgraded and Oracle GoldenGate is capturing TDE data, you must rekey the master key, and then restart the database and Extract. The commands to rekey the master key are:

alter system set encryption key identified by "mykey";

Parent topic: Configuring Oracle TDE Data in Classic Capture Mode

10.1.8 Updating the Oracle Shared Secret in the Parameter File

Use this procedure to update and encrypt the TDE shared secret within the Extract parameter file.

  1. Run GGSCI.
  2. Stop the Extract process.
    STOP EXTRACT group
    
  3. Modify the ORACLEGG entry in the Oracle wallet. ORACLEGG must remain the name of the key. For instructions, see Oracle Database Advanced Security Guide.
  4. Issue the ENCRYPT PASSWORD command to encrypt the new shared secret.
    ENCRYPT PASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    Where:

    • sharedsecret is the clear-text shared secret. This value is case-sensitive.

    • {AES128 | AES192 | AES256} specifies Advanced Encryption Standard (AES) encryption. Specify one of the values, which represents the desired key length.

    • keyname is the logical name of the encryption key in the ENCKEYS lookup file.

      Example:

      ENCRYPT PASSWORD sharedsecret AES256 ENCRYPTKEY mykey1
      
  5. In the Extract parameter file, use the DBOPTIONS parameter with the DECRYPTPASSWORD option. As input, supply the encrypted shared secret and the Oracle GoldenGate-generated or user-defined decryption key.
    DBOPTIONS DECRYPTPASSWORD sharedsecret {AES128 | AES192 | AES256} ENCRYPTKEY keyname
    

    Where:

    • sharedsecret is the encrypted shared secret.

    • {AES128 | AES192 | AES256} must be same value that was used for ENCRYPT PASSWORD.

    • keyname is the logical name of the encryption key in the ENCKEYS lookup file.

      Example:

      DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH AES256 ENCRYPTKEY mykey1
      
  6. Log in to SQL*Plus as a user with the SYSDBA system privilege.
  7. Close and then re-open the wallet.
    SQL> alter system set encryption wallet close identified by "hsm/wallet_password";
    System altered.
    SQL> alter system set encryption wallet open identified by "hsm/wallet_password";
    System altered.
    
  8. Start Extract.
    START EXTRACT group
    

Parent topic: Configuring Oracle TDE Data in Classic Capture Mode

10.2 Using Classic Capture in an Oracle RAC Environment

当Extract在经典捕获模式下运行时,以下通用准则适用于Oracle RAC。

  • 在操作期间,如果运行Oracle GoldenGate的主数据库实例由于任何原因停止或失败,则提取终止。要恢复处理,可以重新启动实例或将Oracle GoldenGate二进制文件挂载到数据库正在运行的另一个节点,然后重新启动Oracle GoldenGate进程。在从另一个节点启动Oracle GoldenGate进程之前,停止原始节点上的Manager进程。

  • 每当重做线程的数量发生变化时,必须删除并重新创建提取组。 For the recommended procedure, see Administering Oracle GoldenGate.

  • Extract确保事务按提交顺序写入跟踪文件,而不管事务起源于哪个RAC实例。当提取以仅存档日志模式捕获时(其中一个或多个RAC实例可能处于空闲状态),您可能需要在空闲节点上执行存档日志切换,以确保来自活动实例的操作及时记录在trail文件中。您可以通过设置archive_lag_target参数来指示Oracle RDBMS在预先设置的时间间隔内自动进行日志归档。例如,为了确保每15分钟存档一次日志,不管活动如何,您可以在RAC系统的所有实例中发出以下命令:

    SQL> alter system set archive_lag_target 900
    
  • 要在关闭Extract之前处理RAC集群中的最后一个事务,需要在Oracle GoldenGate正在复制的源表中插入一条假记录,然后在所有节点上切换日志文件。这将更新提取检查点并确认可以读取所有可用的归档日志。它还确认这些归档日志中的所有事务都被捕获,并按照正确的顺序写入到日志中。

下表显示了在Oracle RAC中特别有用的一些Oracle GoldenGate参数。

Parameter Description

THREADOPTIONS parameter with the INQUEUESIZE and OUTQUEUESIZE options

设置在将队列发送到目标系统之前从内存中提取队列的数据量。调优这些参数可能会提高Oracle RAC的提取性能。

TRANLOGOPTIONS parameter with the PURGEORPHANEDTRANSACTIONS | NOPURGEORPHANEDTRANSACTIONS and TRANSCLEANUPFREQUENCY options

控制Extract如何处理孤立的事务,当节点在事务期间发生故障并且Extract无法捕获回滚时,可能会发生孤立的事务。尽管数据库在故障转移节点上执行回滚,但是事务将无限期地保留在提取事务列表中,并防止正在处理事务的提取线程的进一步检查点。默认情况下,Oracle GoldenGate会在这些交易被确认为孤立后将它们从其列表中清除。该功能还可以根据需要使用GGSCI中的SEND EXTRACT命令进行控制。

Parent topic: Additional Configuration Steps for Using Classic Capture

10.3 Mining ASM-stored Logs in Classic Capture Mode

本主题涵盖了当Oracle GoldenGate挖掘存储在Oracle自动存储管理(ASM)中的事务日志时应用的其他配置需求。

  • Accessing the Transaction Logs in ASM
  • Ensuring ASM Connectivity

Parent topic: Additional Configuration Steps for Using Classic Capture

10.3.1 Accessing the Transaction Logs in ASM

必须将Extract配置为读取存储在ASM中的日志。根据数据库版本的不同,可以使用以下选项:

  • Reading Transaction Logs Through the RDBMS
  • ASM Direct Connection

Parent topic: Mining ASM-stored Logs in Classic Capture Mode

10.3.1.1 通过RDBMS读取事务日志

如果RDBMS是Oracle 11.1.0.7或Oracle 11.2.0.2或更新的11g R2版本,则使用TRANLOGOPTIONS参数和提取参数文件中的DBLOGREADER选项。

在那些使用数据库服务器访问重做和归档日志的版本(但不在Oracle 11g R1版本中)中有API可用。使用此API时,Extract可以使用最大为4 MB的读取缓冲区大小。当重做率较高时,较大的缓冲区可以提高提取的性能。可以使用TRANLOGOPTIONS的DBLOGREADERBUFSIZE选项指定缓冲区大小。

Note:

DBLOGREADER also can be used when the redo and archive logs are on regular disk or on a raw device.

When using DBLOGREADER and using Oracle Data Vault, grant the DV_GOLDENGATE_REDO_ACCESS Role to the Extract database user in addition to the privileges that are listed in Establishing Oracle GoldenGate Credentials.

Parent topic: Accessing the Transaction Logs in ASM

10.3.1.2 ASM Direct Connection

If the RDBMS version is not one of those listed in Reading Transaction Logs Through the RDBMS, do the following:

  1. 为提取过程创建一个用户来直接访问ASM实例。在ASM实例中分配这个用户SYS或SYSDBA特权。Oracle GoldenGate不支持为ASM用户使用操作系统身份验证。
    ASM password configuration(1) Permitted user

    ASM instance and the database share a password file

    如果您授予该用户SYSDBA,您可以使用Oracle GoldenGate源数据库用户,或者您可以使用具有SYSDBA特权的任何其他数据库用户。

    ASM instance and the source database have separate password files

    您可以覆盖ASM密码文件与源数据库密码文件,理解这个过程改变了系统密码ASM实例中的数据库密码文件中包含的值,并且它还授予ASM访问数据库中的其他用户密码文件。在覆盖ASM文件之前,请保存它的副本。

    Footnote 1 要查看当前的ASM密码文件是如何配置的,请登录ASM实例并发出以下命令 in SQL*Plus: SQL> SELECT name, value FROM v$parameter WHERE name = 'remote_login_passwordfile';

  2. Add the ASM user credentials to the Oracle GoldenGate credential store by issuing the ALTER CREDENTIALSTORE command. See Reference for Oracle GoldenGate for usage instructions and syntax.
  3. Specify the ASM login alias in the Extract parameter file by including the TRANLOGOPTIONS parameter with the ASMUSERALIASoption. For more information about TRANLOGOPTIONS, see Reference for Oracle GoldenGate.

Parent topic: Accessing the Transaction Logs in ASM

10.3.2 Ensuring ASM Connectivity

为了确保Oracle GoldenGate提取进程可以连接到ASM实例,请在tnsnames中列出ASM实例。ora文件。当Oracle GoldenGate在数据库主机上运行时,推荐的连接ASM实例的方法是使用BEQ协议。BEQ协议不需要监听器。如果希望使用TCP/IP协议,请验证Oracle侦听器是否正在侦听到ASM实例的新连接。The listener.ora file must contain an entry similar to the following.

SID_LIST_LISTENER_ASM =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ASM)
      (ORACLE_HOME = /u01/app/grid)
    (SID_NAME = +ASM1)
  )
)

Note:

A BEQ connection does not work when using a remote Extract configuration. Use TNSNAMES with the TCP/IP protocol.

Parent topic: Mining ASM-stored Logs in Classic Capture Mode

10.4 确保经典捕获的数据可用性Ensuring Data Availability for Classic Capture

要确保在Extract以经典捕获模式操作时捕获处理的连续性和完整性,请启用归档日志记录。

归档日志提供了一个辅助数据源,可以在提取完成之前对联机日志进行回收。打开的事务的归档日志必须保留在系统上,以防Extract需要重新捕获其中的数据来执行恢复。

WARNING:

如果不能启用归档日志,则在事务仍然处于活动状态时,如果出现导致提取中断的故障,则需要完全重新同步源和目标对象,并重新恢复复制,这是一种高风险。如果必须这样操作,请根据以下指导原则配置联机日志,以保留足够的数据,以便在联机日志回收之前提取所需的数据。允许提取由网络中断和其他外部因素以及长时间运行的事务造成的积压。

在RAC配置中,Extract必须能够访问集群中所有节点的联机日志和归档日志,包括安装Oracle GoldenGate的节点。

  • Log Retention Requirements per Extract Recovery Mode
  • Log Retention Options
  • Determining How Much Data to Retain
  • Purging Log Archives
  • Specifying the Archive Location
  • Mounting Logs that are Stored on Other Platforms

Parent topic: Additional Configuration Steps for Using Classic Capture

10.4.1 Log Retention Requirements per Extract Recovery Mode

以下概述了Extract可能使用的不同恢复模式及其日志保留要求:

  • 默认情况下,有界恢复模式是有效的,而且提取需要对日志的访问时间最多是用BR参数设置的有界恢复间隔的两倍。这个间隔是标准提取检查点间隔的整数倍,由CHECKPOINTSECS参数控制。这两个参数控制Oracle GoldenGate有界恢复特性,该特性确保Extract能够在失败后恢复内存中捕获的数据,无论失败时最古老的开放事务有多大。 For more information about Bounded Recovery, see Reference for Oracle GoldenGate.

  • 当Extract尝试恢复时,发生有界恢复机制失败的不太可能的事件时,Extract将恢复到正常恢复模式,并且必须能够访问归档日志,该日志在失败时包含内存中最古老的开放事务的开始,以及之后的所有日志。

Parent topic: Ensuring Data Availability for Classic Capture

10.4.2 Log Retention Options

根据Oracle版本的不同,可以使用不同的选项来确保在系统上保留所需的日志。

  • Oracle Enterprise Edition 11g and Later
  • All Other Oracle Versions

Parent topic: Ensuring Data Availability for Classic Capture

10.4.2.1 Oracle企业版11g及以后版本

对于这些版本,可以将Extract配置为与Oracle Recovery Manager (RMAN)一起工作,以保留提取恢复所需的日志。您可以在发出REGISTER EXTRACT命令时启用此功能。有关更多信息,请参见创建流程组。要使用此功能,提取数据库用户必须具有以下特权, in addition to the basic privileges listed in Establishing Oracle GoldenGate Credentials.

Oracle EE version Privileges

11.1 and 11.2.0.1

  1. Run package to grant Oracle GoldenGate admin privilege.

    exec dbms_streams_auth.grant_admin_privilege('user')
    
  2. Grant the 'become user' privilege.

    grant become user to user;
    

11.2.0.3 and later

Run package to grant Oracle GoldenGate admin privilege.

exec dbms_goldengate_auth.grant_admin_privilege('user')

当启用日志保留时,提取保留足够的日志来执行一个有界的复苏,但您可以配置提取保留足够的日志通过使用RMAN正常复苏TRANLOGOPTIONS参数LOGRETENTION选项设置为老也有一个选项来禁用RMAN日志保留。Review the options of LOGRETENTION in the Reference for Oracle GoldenGate before you configure Extract. If you set LOGRETENTION to DISABLED, see Determining How Much Data to Retain,.

Note:

为了在Oracle RAC中支持11.2.0.3之前版本的RMAN日志保留,在添加提取组之前,必须下载并安装BUGFIX 11879974中提供的数据库补丁。

RMAN日志保留功能为每个提取组创建一个底层(但不工作)Oracle Streams捕获流程。捕获的名称基于相关提取组的名称。日志保持功能可以与其他本地Oracle Streams安装并发运行。创建提取组时,将从当前数据库SCN保留日志。

Note:

如果存储区域已满,RMAN将清除归档日志,即使在Extract需要时也是如此。存在此限制,以便Extract(和其他Oracle复制组件)的需求不会影响对数据库的重做可用性。

Parent topic: Log Retention Options

10.4.2.2 All Other Oracle Versions

对于企业版以外的Oracle版本,必须使用首选的管理工具来管理日志保留过程。Follow the directions in Determining How Much Data to Retain.

Parent topic: Log Retention Options

10.4.3 决定保留多少数据Determining How Much Data to Retain

在管理日志保留时,尝试确保对提取的日志的快速访问将需要执行正常的恢复(而不是有限的恢复)。请参阅每个提取恢复模式的日志保留要求。如果必须将归档移出数据库系统,TRANLOGOPTIONS参数提供了一种指定替代位置的方法。See Specifying the Archive Location.

建议保留至少24小时的事务数据,包括在线和归档日志。要确定在任何给定点提取可能需要的最老的日志,使用SHOWTRANS选项发出SEND Extract命令。您可能需要进行一些测试,以根据数据量和业务需求确定最佳保留时间

如果在处理过程中提取的数据没有被保留,不管是在线的还是存档的日志,可能需要采取以下纠正措施之一:

  • 从日志数据可用的较晚时间点捕获Alter Extract(and accept possible data loss on the target).

  • 重新同步源和目标数据,然后重新启动Oracle GoldenGate环境。

Parent topic: Ensuring Data Availability for Classic Capture

10.4.4 Purging Log Archives

确保不要使用备份或存档选项,否则会导致旧的存档文件被新备份覆盖。理想情况下,新备份应该是与旧备份名称不同的独立文件。这确保了如果Extract查找某个特定的日志,它仍然存在,并且还确保了数据在需要支持时可用。

Parent topic: Ensuring Data Availability for Classic Capture

10.4.5 Specifying the Archive Location

如果归档的日志位于Oracle默认目录之外的其他地方,则在提取参数文件中使用TRANLOGOPTIONS参数的ALTARCHIVELOGDEST选项指定该目录。

如果用Oracle参数LOG_ARCHIVE_FORMAT指定的格式包含子目录,您可能还需要使用TRANLOGOPTIONS的ALTARCHIVEDLOGFORMAT选项。ALTARCHIVEDLOGFORMAT指定从路径中删除子目录的替代格式。例如,% T / log_ % t_ % s_ %识别r。将arc改为log_%t_%s_%r.arc。作为使用ALTARCHIVEDLOGFORMAT的替代方法,您可以手动创建子目录,然后将日志文件移动到其中。

Parent topic: Ensuring Data Availability for Classic Capture

10.4.6 Mounting Logs that are Stored on Other Platforms

如果在线和存档的重做日志存储在不同的平台上,而不是提取的平台上,请执行以下操作:

  • nfs -挂载归档文件

  • 使用提取参数TRANLOGOPTIONS的LOGSOURCE和PATHMAP选项将文件结构映射到源系统的结构。 For more information, see Reference for Oracle GoldenGate.

Parent topic: Ensuring Data Availability for Classic Capture

10.5 在归档日志模式中配置Classic CaptureConfiguring Classic Capture in Archived Log Only Mode

可以将Extract配置为仅从归档日志中读取。这称为仅存档日志(ALO)模式。

在此模式下,仅对存储在指定位置的归档日志进行提取读取。通过ALO模式,Extract可以使用附带到辅助数据库(如备用数据库)的生产日志作为数据源。根本不使用联机日志。Oracle GoldenGate连接到辅助数据库,根据需要获取元数据和其他所需数据。作为一种替代方案,ALO模式在生产系统上得到了支持。

Note:

LO模式与在集成捕获模式下运行的提取不兼容。

  • Limitations and Requirements for Using ALO Mode
  • Configuring Extract for ALO mode

Parent topic: Additional Configuration Steps for Using Classic Capture

10.5.1 使用ALO模式的限制和要求

在ALO模式下使用Extract时,请遵守以下限制和要求。

  • 在创建备用数据库之后,不能在源数据库上执行日志重置(RESETLOG)。

  • 如果生产系统是Oracle RAC,而备用数据库不是RAC,则不能在备用数据库上使用ALO。除了两个系统都是Oracle RAC外,每个系统上的节点数必须相同。

  • 在Oracle RAC上的ALO需要到源服务器的专用连接。如果该连接丢失,Oracle GoldenGate处理将停止。

  • 在ALO模式下为Oracle RAC使用Oracle GoldenGate时,最好使用单独的归档日志目录。这将避免相同文件名出现两次的可能性,这可能导致提取返回一个“out of order scn”错误。

  • 当Extract处于ALO模式时,logre参数默认为禁用。如果需要,您可以使用一个特定的logretentionsettings覆盖它。

Parent topic: Configuring Classic Capture in Archived Log Only Mode

10.5.2 配置ALO模式的提取

要为ALO模式配置Extract,请按照以下步骤配置Oracle GoldenGate的整个过程, as documented in Configuring Capture in Classic Mode.

  1. 为源数据库中的表启用表级和数据库级的补充日志记录。(See Configuring Logging Properties.)
  2. 当Oracle GoldenGate运行在与源数据库不同的服务器上时,请确保将SQL*Net正确配置为连接到远程服务器,例如在TNSNAMES文件中提供正确的条目。Extract必须具有保持到源数据库的SQL*Net连接的权限。
  3. 在凭据存储区中为分配给进程的用户名使用SQL*Net连接字符串。指定该用户的别名如下:
    • The USERIDALIAS parameter in the parameter file of every Oracle GoldenGate process that connects to that database.

    • The USERIDALIAS portion of the DBLOGIN command in GGSCI.

    Note:

    如果您的备用服务器位于Oracle GoldenGate运行的服务器的本地,则不需要为USERIDALIAS中指定的用户使用连接字符串。您可以只提供用户登录名。

    See Administering Oracle GoldenGate for more information about using a credential store.

  4. 使用ARCHIVEDLOGONLY选项的提取参数TRANLOGOPTIONS。该选项强制Extract以ALO模式对主备数据库或逻辑备用数据库进行操作,具体由v$database视图的db_role列中的主备数据库或逻辑备用数据库的值决定。默认是读取在线日志。如果对物理备用数据库使用ALO模式(由v$database的db_role列中的物理备用值决定),则不需要使用ARCHIVEDLOGONLY的TRANLOGOPTIONS。如果Extract检测到数据库是物理备用,它将在ALO模式下自动操作。
  5. 您的环境可能需要其他的TRANLOGOPTIONS选项。例如,根据您使用的复制程序,您可能需要使用COMPLETEARCHIVEDLOGONLY选项来防止提取错误。
  6. 使用Extract的MAP参数将表名映射到源对象id。 For more information, see Reference for Oracle GoldenGate.
  7. 通过使用时间戳作为开始选项发出Add Extract命令,或者使用带有SEQNO和RBA选项的Add Extract来添加提取组。最好给Extract一个已知的开始点,从那里开始提取数据,而不是使用NOW参数。NOW的启动时间对应于当前在线重做日志的时间,但是ALO提取无法读取在线日志,因此当Oracle切换日志时,它必须等待该日志被归档。切换的时间取决于重做日志的大小和数据库活动的数量,因此在开始提取和开始捕获数据之间可能会有延迟。这可以在常规和RAC数据库配置中发生。

Parent topic: Configuring Classic Capture in Archived Log Only Mode

10.6 在Oracle Active Data Guard Only模式中配置Classic Capture

您可以配置Classic Extract来实时访问重做数据和元数据,从而使用Oracle Active data Guard成功地复制源数据库活动。这就是所谓的主动数据保护(ADG)模式。

ADG模式允许Extract使用作为数据源提供给备用数据库的生产日志。根本不使用联机日志。Oracle GoldenGate连接到备用数据库,根据需要获取元数据和其他所需数据。

此模式在负载敏感的环境中非常有用,因为ADG已经就绪或可以实现。它还可以作为成本有效的方法来实现高可用性,使用ADG代理角色计划(切换)和故障转移(计划外)更改。在ADG配置中,切换和故障转移被视为角色。当其中一个操作发生时,它被认为是角色更改。For more information, see Oracle Data Guard Concepts and Administration and Oracle Data Guard Broker.

您可以配置Integrated Extract来从ADG而不是源数据库中获取所需的表数据和元数据。这是可能的,因为ADG是源数据库的物理副本。Extract在所有配置中都支持使用FETCHUSER参数从ADG中获取数据,但在作为经典提取运行时除外。Classic Extract已经能够直接连接到ADG并挖掘它的重做日志,然后使用USERID参数提供的标准连接信息从ADG获取数据。对源数据库的影响最小,因为Extract在启动时从源数据库收集信息,包括从ADG获取时的兼容性级别、数据库类型和源数据库验证检查。

All previous fetch functionality and parameters are supported.

Note:

Integrated Extract cannot capture from a standby database because it requires READ and WRITE access to the database, and an ADG standby only provides READ ONLY access.

  • Limitations and Requirements for Using ADG Mode
  • Configuring Classic Extract for ADG Mode
  • Migrating Classic Extract To and From an ADG Database
  • Handling Role Changes In an ADG Configuration

Parent topic: Additional Configuration Steps for Using Classic Capture

10.6.1 使用ADG模式的限制和要求

在ADG模式下使用Extract时,请注意以下限制和要求。

  • ADG模式下的Extract将仅应用应用进程已应用到备用数据库的重做数据。如果Extract先于备用数据库运行,它将等待备用数据库赶上。
    必须在经典提取参数文件中显式指定ADG模式,才能在备用数据库上运行提取。
    您必须指定连接到ADG系统的数据库用户和密码,因为数据库中会出现fetch和其他元数据解析。

  • 备用数据库中的备用日志中的重做线程数必须与主数据库中的节点数匹配。
    在备用数据库上创建了classic Extract之后,不能向主数据库添加新的RAC实例。如果您确实添加了新的实例,那么来自新线程的重做数据将不会被classic Extract捕获。

  • 从备用数据库访问的归档日志和备用重做日志与主数据库完全相同。大小和内容将匹配,包括重做数据、事务数据和补充数据。这可以通过正确配置的ADG部署得到保证。

  • 在这两种情况下,ADG角色的变化并不频繁,需要用户的介入。

  • 切换,将会有一个指标在重做日志文件头(重做日志或三次采油结束标记)来表示结束日志流这样经典的提取在备用可以成功完成RAC协调和船舶的所有已提交的事务跟踪文件。

  • 通过故障转移,可以在主数据库和备用数据库上创建新的化身,并使用新的化身ID、resetlog序列号和SCN值。
    您必须从GGSCI连接到主数据库来添加TRANDATA或SCHEMATRANDATA,因为这是在主数据库上完成的。

  • 为了支持DDL复制(ADDTRANDATA除外),DDL触发器不能用于备用数据库。您必须在主数据库上安装Oracle GoldenGate DDL包。
    ADG模式不支持DDL ADDTRANDATA;必须使用ADDSCHEMATRANDATA进行DDL复制。

  • 在备用数据库上添加extract时,必须使用特定的SCN值、时间戳或日志位置指定起始位置。相对时间戳值(如NOW)变得模糊,可能导致数据不一致。

  • 在备用数据库中添加extract时,必须指定包含主数据库中所有相关线程的线程数。
    在故障转移或切换期间或之后,不能从主数据库或备用数据库添加或删除任何线程。
    Classic Extract将只使用一个中间的RESETLOG操作。

  • 如果不希望重新安装Oracle GoldenGate,则必须将其放置在共享空间中,以便从主数据库和备用数据库访问Oracle GoldenGate安装目录。
    如果您要将捕获从ADG备用数据库移到主数据库,则必须将您的net别名指向主数据库,并且必须删除TRANLOG选项。

  • 只支持运行兼容性设置为10.2或更高(10g版本2)的Oracle数据库版本。
    经典提取不能使用DBLOGREADER选项。使用ASMUSER(大约有20gb/hr的读取限制)或将主要数据库和备用数据库上的联机和归档日志移到Application Security Manager之外。

Parent topic: Configuring Classic Capture in Oracle Active Data Guard Only Mode

10.6.2 配置ADG模式的经典提取

要为ADG模式配置Classic Extract,请按照以下步骤配置Oracle GoldenGate的整个过程, as documented in Configuring Capture in Classic Mode.

  1. 使用ADD SCHEMATRANDATA参数为主数据库中的表启用表级和数据库级的补充日志记录。如果需要,创建一个DDL捕获。(See Configuring Logging Properties.)
  2. 当Oracle GoldenGate运行在与源数据库不同的服务器上时,请确保将SQL*Net正确配置为连接到远程服务器,例如在TNSNAMES文件中提供正确的条目。Extract必须具有保持到源数据库的SQL*Net连接的权限。
  3. 在备用数据库中,使用带有MINEFROMACTIVEDG选项的提取参数TRANLOGOPTIONS。该选项强制Extract以ADG模式对备用数据库进行操作,由v$database视图的db_role列中的主备用或逻辑备用的值决定。

    您的环境可能需要其他的TRANLOGOPTIONS选项。例如,根据您使用的复制程序,您可能需要使用COMPLETEARCHIVEDLOGONLY选项来防止提取错误。

  4. 在备用数据库上,通过发出add Extract命令来添加提取组,该命令指定在给定的SCN上主数据库上活动的线程数。切换的时间取决于重做日志的大小和数据库活动的数量,因此在开始提取和开始捕获数据之间可能存在有限的延迟。这可以在常规和RAC数据库配置中发生。

Parent topic: Configuring Classic Capture in Oracle Active Data Guard Only Mode

10.6.3 从ADG数据库迁移经典的提取

您必须将参数文件、检查点文件、有界恢复文件和跟踪文件存储在共享存储中或复制到ADG数据库中,然后才能尝试将经典的提取迁移到ADG数据库或从ADG数据库迁移到ADG数据库。此外,您必须确保没有任何介入角色更改,否则Extract将挖掘redo的相同分支。

Use the following steps to move to an ADG database:

  1. Edit the parameter file ext1.prm to add the following parameters:

    DBLOGIN USERID userid@ADG PASSWORD password
    TRANLOGOPTIONS MINEFROMACTIVEDG
    
  2. Start Extract by issuing the START EXTRACT ext1 command.

Use the following steps to move from an ADG database:

  1. Edit the parameter file ext1.prm to remove the following parameters:
    DBLOGIN USERID userid@ADG PASSWORD password
    TRANLOGOPTIONS MINEFROMACTIVEDG
    
  2. Start Extract by issuing the START EXTRACT ext1 command.

Parent topic: Configuring Classic Capture in Oracle Active Data Guard Only Mode

10.6.4 处理ADG配置中的角色更改

在涉及备用数据库的角色更改中,首先断开主数据库和备用数据库中的所有会话,包括Extract使用的连接。然后关闭两个数据库,将原始主数据库挂载为备用数据库,并将原始备用数据库作为主数据库打开。

角色更改的过程由Classic Extract的初始部署和所需的部署关系(数据库或角色)决定。下表概述了四种可能的角色更改,并基于由prisys和stansys两个数据库组成的ADG配置进行预测。prisys系统包含主数据库,stansys系统包含备用数据库;prisys有两个活动的重做线程,而stansys有四个活动的重做线程。

Initial Deployment Primary (prisys) Initial Deployment ADG (stansys)

Original Deployment:

 
ext1.prm
DBLOGIN USERID userid@prisys, PASSWORD password
ext1.prm
DBLOGIN USERID userid@stansys, PASSWORD password
TRANLOGOPTIONS MINEFROMACTIVEDG

Database Related:

 

角色转换后:经典提取ADG

  1. Edit the ext1.prm file to add:

    TRANLOGOPTIONS MINEFROMACTIVEDG

  2. If a failover, add TRANLOGOPTIONS USEPREVRESETLOGSID.

  3. Start Extract:

    START EXTRACT ext1

    Extract will abend once it reaches the role transition point, then it does an internal BR_RESET and moves both the I/O checkpoint and current checkpoint to SCN s.

  4. If failover, edit the parameter file again and remove:

    TRANLOGOPTIONS USEPREVRESETLOGSID

  5. Execute ALTER EXTRACT ext1 SCN #, where # is the SCN value from role switch message.

  6. Based on the thread counts, do one of the following:

    If the thread counts are same between the databases, then execute the START EXTRACT ext1; command.

    or

    If thread counts are different between the databases, then execute the following commands:

    DROP EXTRACT ext1

    ADD EXTRACT ext1 THREADS t BEGIN SCN s

    START EXTRACT ext1

角色转换后:ADG到经典提取

  1. Edit ext1.prm and remove:

    TRANLOGOPTIONS MINEFROMACTIVEDG

  2. If a failover, add TRANLOGOPTIONS USEPREVRESETLOGSID.

  3. Start Extract:

    START EXTRACT ext1

    Extract will abend once it reaches the role transition point, then it does an internal BR_RESET and moves both the I/O checkpoint and current checkpoint to SCN s.

  4. If failover, edit the parameter file again and remove:

    TRANLOGOPTIONS USEPREVRESETLOGSID

  5. Execute ALTER EXTRACT ext1 SCN #, where # is the SCN value from role switch message.

  6. Based on the thread counts, do one of the following:

    If the thread counts are same between the databases, then execute the START EXTRACT ext1; command.

    or

    If thread counts are different between the databases, then execute the following commands:

    DROP EXTRACT ext1

    ADD EXTRACT ext1 THREADS t BEGIN SCN s

    START EXTRACT ext1

Role Related:

 

角色转换后:从经典提取到经典提取

  1. Edit ext1.prm to change the database system to the standby system:

    DBLOGIN USERID userid@stansys, PASSWORDpassword

  2. If a failover, add TRANLOGOPTIONS USEPREVRESETLOGSID.

  3. Start Extract:

    START EXTRACT ext1

    Extract will abend once it reaches the role transition point, then it does an internal BR_RESET and moves both the I/O checkpoint and current checkpoint to SCN s.

  4. If failover, edit the parameter file again and remove:

    TRANLOGOPTIONS USEPREVRESETLOGSID

  5. Execute ALTER EXTRACT ext1 SCN #, where# is the SCN value from role switch message.

  6. Based on the thread counts, do one of the following:

    If the thread counts are same between the databases, then execute the START EXTRACT ext1; command.

    or

    If thread counts are different between the databases, then execute the following commands:

    DROP EXTRACT ext1

    ADD EXTRACT ext1 THREADS t BEGIN SCN s

    START EXTRACT ext1

角色转换后:ADG到ADG

  1. Edit ext1.prm to change the database system to the primary system:

    DBLOGIN USERID userid@prisys, PASSWORDpassword

  2. If a failover, add TRANLOGOPTIONS USEPREVRESETLOGSID.

  3. Start Extract:

    START EXTRACT ext1

    Extract will abend once it reaches the role transition point, then it does an internal BR_RESET and moves both the I/O checkpoint and current checkpoint to SCN s.

  4. If failover, edit the parameter file again and remove:

    TRANLOGOPTIONS USEPREVRESETLOGSID

  5. Execute ALTER EXTRACT ext1 SCN #, where# is the SCN value from role switch message.

  6. Based on the thread counts, do one of the following:

    If the thread counts are same between the databases, then execute the START EXTRACT ext1; command.

    or

    If thread counts are different between the databases, then execute the following commands:

    DROP EXTRACT ext1

    ADD EXTRACT ext1 THREADS t BEGIN SCN s

    START EXTRACT ext1

Parent topic: Configuring Classic Capture in Oracle Active Data Guard Only Mode

10.7 避免经典捕获中的日志读取瓶颈

When Oracle GoldenGate captures data from the redo logs, I/O bottlenecks can occur because Extract is reading the same files that are being written by the database logging mechanism.

Performance degradation increases with the number of Extract processes that read the same logs. You can:

  • Try using faster drives and a faster controller. Both Extract and the database logging mechanism will be faster on a faster I/O system.

  • Store the logs on RAID 0+1. Avoid RAID 5, which performs checksums on every block written and is not a good choice for high levels of continuous I/O.

Parent topic: Additional Configuration Steps for Using Classic Capture

你可能感兴趣的:(【跟我学ogg12.3.0.1】第二节【Oracle GoldenGate之Oracle篇】10、使用经典捕获的10个额外配置步骤)