标签:情况下 force htm database 防止 target code eui lock
了解如何为Oracle GoldenGate准备数据库,包括如何配置连接和日志记录,如何在数据库中启用Oracle GoldenGate,如何设置闪回查询以及如何管理服务器资源。
如果您将使用集成捕获和集成Replicat,则每个都需要tnsnames.ora文件中的专用服务器连接。当您配置这些进程时,您可以指示进程在Extract and Replicat参数文件中使用这些连接,并使用USERID或USERIDALIAS参数。
以下是集成捕获(Extract)和集成Replicat所需的专用连接示例。
TEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = test2)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = test) ) )
以下是在Extract或Replicat参数文件中指定连接字符串的安全选项。
密码加密方式:
USERID intext@test, PASSWORD mypassword
凭证存储方法:
USERIDALIAS ext
对于USERIDALIAS,别名ext将使用实际的连接字符串存储在Oracle GoldenGate凭证存储中,如下例所示:
GGSCI> INFO CREDENTIALSTORE DOMAIN support Domain: Support Alias: ext Userid: intext@test
有关在参数文件中指定数据库连接信息的更多信息,参阅管理Oracle GoldenGate
Oracle GoldenGate依靠重做日志来捕获复制源事务所需的数据。在启动Oracle GoldenGate处理之前,必须正确配置源系统上的Oracle重做日志。
由于此次需要的日志记录,重做量增加。您可以等到准备好启动Oracle GoldenGate处理以启用日志记录。
本节介绍适用于Oracle GoldenGate的以下日志记录级别。您使用的日志级别取决于您正在使用的Oracle GoldenGate功能。
此表显示了不同日志记录属性的Oracle GoldenGate用例。
Logging option | GGSCI command | What it does | Use case |
Forced logging mode | 无;通过数据库启用 | 强制记录所有事务和负载日志 | 强烈建议所有Oracle GoldenGate使用案例。 |
Minimum database-level supplemental logging | 无;通过数据库启用 | 启用最少的补充日志记录以将行链信息添加到重做日志。 | 所有Oracle GoldenGate用例均需要 |
Schema-level supplemental logging, default setting 参阅启用schema级补充日志 |
ADD SCHEMATRANDATA |
启用主键的无条件补充记录以及模式中所有表的唯一键和外键的有条件补充记录。 所有这些键一起被称为调度列。 |
启用schema中所有当前和将来表的日志记录。 如果源和目标的主键,唯一键和外键列不相同,请使用ALLCOLS。使用DDL支持时需要。 |
schema级补充日志记录对所有支持的列进行无条件日志记录。 (有关不支持的列类型,请参阅启用schema级别补充日志记录) |
ADD SCHEMATRANDATA with ALLCOLS option |
对模式中的所有表启用无条件补充日志记录表中的所有列。 |
用于在尝试执行更新或删除时检查所有列值的双向和主动 - 主动配置,而不仅仅是更改的列。 尽管允许实时数据验证的最高级别并因此检测冲突,但这需要更多的资源。 当源和目标的主键,唯一键和外键不相同或在源和目标之间不断变化时,也可以使用它。 |
schema级补充日志记录,最小设置 | ADD SCHEMATRANDATA with NOSCHEDULINGCOLS option |
启用schema中主键和所有表的所有有效唯一索引的无条件补充日志记录。 | 仅用于非集成Replicat。这是所需的最低schema级日志记录。 |
表级补充日志,内置了对集成Replicat的支持 (请参阅启用表级别补充日志) |
ADD TRANDATA |
启用对表的唯一键和外键的主键和条件辅助日志记录的无条件补充记录。 所有这些键一起被称为调度列。 |
除非使用模式级别的补充日志记录,否则所有Oracle GoldenGate用例都需要该用例。 如果源和目标的主键,唯一键和外键列不相同,请使用ALLCOLS。 |
对所有支持的列使用无条件日志记录的表级补充日志记录。 (请参阅启用表级别补充日志记录,查看不支持的列类型) |
ADD TRANDATA with ALLCOLS option |
启用无条件补充日志记录表中的所有列 |
用于在尝试执行更新或删除时检查所有列值的双向和主动 - 主动配置,而不仅仅是更改的列。 尽管允许实时数据验证的最高级别并因此检测冲突,但这需要更多的资源。 当源和目标的主键,唯一键和外键不相同或在源和目标之间不断变化时,也可以使用它。 |
表级补充日志记录,最小设置 | ADD TRANDATA with NOSCHEDULINGCOLS option |
启用表的主键和所有有效唯一索引的无条件补充日志记录 | 仅用于非集成Replicat。这是所需的最低表级别日志记录。 |
Oracle强烈建议将Oracle源数据库置于强制日志记录模式。强制日志记录模式强制记录所有事务和负载,相反,覆盖任何用户或存储设置。这确保了Extract配置中的源数据不会被错过。
此外,使用Oracle GoldenGate时,Oracle源数据库还需要最少的补充日志记录(数据库级选项)。这会将行链信息(如果存在)添加到重做日志以进行更新操作。
强烈建议不要使用数据库级主键(PK)和唯一索引(UI)日志记录,因为它会在复制外的表上创建额外的额外开销。除非需要这些日志记录选项才能用于业务目的,否则只需在数据库级别启用最少的补充日志记录和Oracle GoldenGate强制日志记录。
执行以下步骤来验证和启用(如有必要)最小补充日志记录和强制日志记录。
SELECT supplemental_log_data_min, force_logging FROM v$database;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; SQL> ALTER DATABASE FORCE LOGGING;
ELECT supplemental_log_data_min, force_logging FROM v$database;
SQL> ALTER SYSTEM SWITCH LOGFILE;
Oracle GoldenGate支持schema级补充日志记录。使用Oracle GoldenGate DDL复制功能时,Oracle源数据库需要schema级日志记录。In all other use cases, it is optional, but then you must use table-level logging instead(请参阅启用表级别补充日志记录)。
默认情况下,schema级别日志记录会自动启用主键的无条件补充日志记录以及模式中所有表的唯一键和外键的有条件补充日志记录。选项使您可以根据需要更改日志记录。
Oracle强烈建议使用模式级日志记录而不是表级日志记录,因为它确保添加到模式中的任何新表在满足通配符规范时都会被捕获。
在源系统上执行以下步骤以启用schema级补充日志记录。
DBLOGIN USERIDALIAS alias
有关USERIDALIAS和其他选项的更多信息,请参阅Oracle GoldenGate参考中的USERIDALIAS。
ADD SCHEMATRANDATA schema [ALLCOLS | NOSCHEDULINGCOLS]
Where:
1)如果没有选项,则ADD SCHEMATRANDATA模式允许在主键源系统上进行无条件补充日志记录,并有条件地补充给定模式中所有当前表和未来表的所有唯一键和外键。无条件日志记录强制将主键值写入日志,无论在当前操作中键是否已更改。条件日志记录会记录外键或唯一键的所有列值(如果其中至少有一个在当前操作中已更改)。对于支持非集成Replicat,默认设置是可选的,但是需要默认支持集成Replicat,因为主键,唯一键和外键都必须可用于入站服务器以计算依赖关系。有关集成Replicat的更多信息,请参阅决定使用哪种应用方法。
2)ALLCOLS可用于启用表的所有列的无条件补充日志记录,并适用于给定模式中的所有当前和未来表。当源表和目标表具有不同的调度列时,用于支持集成的Replicat。 (调度列是主键,唯一键和外键。)
3)NOSCHEDULINGCOLS仅记录schema中现有表的主键值和所有有效唯一索引值,以及稍后添加的新表。这是模式级别日志所需的最低级别,仅对非集成模式下的Replicat有效
在以下示例中,该命令启用finance
模式的默认补充日志记录
ADD SCHEMATRANDATA finance
在以下示例中,该命令仅对hr模式的主键和有效唯一索引启用补充日志记录。
ADD SCHEMATRANDATA hr NOSCHEDULINGCOLS
在以下情况下启用源系统上的表级补充日志记录:
DBLOGIN USERIDALIAS alias
有关DBLOGIN和其他选项的更多信息,请参阅Oracle GoldenGate参考中的USERIDALIAS。
3)发出ADD TRANDATA命令。
ADD TRANDATA [container.]schema.table [, COLS (columns)] [, NOKEY] [, ALLCOLS | NOSCHEDULINGCOLS]
Where:
4)如果将ADD TRANDATA与COLS选项一起使用,请为目标上的这些列创建唯一索引以优化行检索。如果将这些列作为KEYCOLS子句的替代键记录下来,请记下在配置Oracle GoldenGate进程时将KEYCOLS子句添加到TABLE语句和MAP语句。
必须为Oracle 11.2.0.4或更高版本的数据库显式启用支持Oracle GoldenGate捕获和应用所需的数据库服务。这对Extract和Replicat的所有模式都是必需的。
要启用Oracle GoldenGate,请设置以下数据库初始化参数。 Oracle RAC中的所有实例必须具有相同的设置。
ENABLE_GOLDENGATE_REPLICATION=true
有关此参数的更多信息,请参阅初始化参数。
为了处理某些更新记录,Extract从源数据库中提取额外的行数据。 Oracle GoldenGate获取以下数据:
默认情况下,Oracle GoldenGate使用闪回查询从撤消(回滚)表空间中获取值。这样,Oracle GoldenGate可以在特定时间或SCN中重建读取一致的行映像以匹配重做记录。
为获得最佳提取结果,请按如下所示配置源数据库:
UNDO_MANAGEMENT=AUTO UNDO_RETENTION=86400 UNDO_RETENTION can be adjusted upward in high-volume environments.
undo_space = UNDO_RETENTION * UPS + overhead
Where:
1)ndo_space是撤消块的数量。
2)UNDO_RETENTION是UNDO_RETENTION参数的值(以秒为单位)。
3)UPS是每秒撤销块的数量。
4)开销是元数据(事务表等)的最小开销。
使用系统视图V $ UNDOSTAT来估计UPS和开销。
GRANT FLASHBACK ANY TABLE TO db_user GRANT FLASHBACK ON schema.table TO db_user
Oracle GoldenGate提供以下参数来管理提取。
Table 2-1 Oracle GoldenGate Parameters and Commands to Manage Fetching
Parameter or Command | Description |
带有REPORTFETCH选项的STATS EXTRACT命令 | Shows Extract fetch statistics on demand. |
带有REPORTFETCH选项的STATOPTIONS参数 | 设置STATS EXTRACT命令,以便始终显示提取统计信息。 |
MAXFETCHSTATEMENTS参数 | 控制Extract在源数据库中维护的准备查询的打开游标数量,以及SQLEXEC操作的数量。 |
MAXFETCHSTATEMENTS参数 | 控制Extract的默认提取行为:Extract是否执行闪回查询或从表中提取当前图像。 |
使用USELATESTVERSION或NOUSELATESTVERSION选项的FETCHOPTIONS参数 | 处理Extract闪回查询的失败,例如,如果撤消保留过期或表的结构发生更改。提取可以从表格中提取当前图像或忽略失败 |
REPFETCHEDCOLOPTIONS参数 | 控制Replicat在处理包含提取数据或列缺失条件的跟踪记录时的响应。 |
在集成模式下,Extract与源数据库中的基础logmining server交互,并且Replicat与目标数据库中的入站服务器交互。本节提供了管理这些服务器使用的共享内存的指导原则。
服务器使用的共享内存来自数据库中系统全局区域(SGA)的Streams池部分。因此,必须将数据库初始化参数STREAMS_POOL_SIZE设置得足够高,以保证足够的内存可用于您希望在集成模式下运行的Extract和Replicat进程的数量。请注意,Streams池也被数据库的其他组件(如Oracle Streams,Advanced Queuing和Datapump导出/导入)使用,因此在确定Oracle GoldenGate的Streams池的大小时请确保考虑到它们。
默认情况下,一个集成捕获提取请求登录服务器以1GB的MAX_SGA_SIZE运行。因此,如果您在同一个数据库实例中以集成捕获模式运行三个提取,则至少需要分配给Streams池的3 GB内存。作为最佳做法,请保留25%的Streams池可用。例如,如果在集成捕获模式下有3个提取,请将数据库的STREAMS_POOL_SIZE设置为以下值:
3 GB * 1.25 = 3.75 GB
参考资料
https://docs.oracle.com/goldengate/c1230/gg-winux/GGODB/preparing-database-oracle-goldengate.htm#GGODB-GUID-E06838BD-0933-4027-8A6C-D4A17BDF4E41
标签:情况下 force htm database 防止 target code eui lock
原文地址:https://www.cnblogs.com/sorliran/p/9193021.html