捕获和交付 Always On 可用性组中的数据库的要求摘要
Oracle GoldenGate for SQL Server 支持从 Always On 可用性组的主副本或只读同步模式辅助副本中捕获,以及传送到主副本。
从 Always On 可用性组中的主副本或辅助副本中捕获时,务必了解捕获进程必须仅从日志读取加固的事务处理,并且 Oracle GoldenGate 捕获或将从其中捕获的任何副本数据库之间不会丢失数据。
数据库连接
对于提取和复制,建议创建数据库连接,该连接使用始终处于可用性组监听程序的连接。
-
对于复制,如果主副本执行到新实例的故障转移,则连接到监听程序将允许复制重新连接,而无需手动编辑连接设置以指向新主副本。
-
对于连接到监听程序的提取,不仅允许重新连接到主实例而不编辑连接以指向新实例,而且还提供了针对只读辅助实例运行提取的数据提取存储过程的可选功能。
-
对于连接到 Always On 环境的提取和复制,请使用管理器的
AUTORESTART参数,在故障转移后重新启动进程。 -
要将提取的数据提取查询路由到只读辅助,请确保连接使用监听程序,您有一个或多个配置为处理只读路由的只读辅助副本,并且提取使用
TRANLOGOPTIONS ALWAYSONREADONLYROUTING参数运行。请参阅以下 Microsoft 文档,了解如何配置只读路由:https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/configure-read-only-routing-for-an-availability-group-sql-server?view=sql-server-2017
补充日志记录
必须使用管理客户机或连接到主副本的 Web 界面以正常方式 (ADD TRANDATA) 启用补充日志记录,而不是使用辅助副本。
-
创建到主副本或 Always On 可用性组监听程序的 DSN 以使用
DBLOGIN进行连接以运行ADD TRANDATA。 -
对主副本数据库启用补充日志记录时,不会在任何辅助副本上自动创建 SQL Server 更改数据捕获作业。在从主副本故障转移到辅助副本时,必须在新的主副本上手动创建 SQL Server 更改数据捕获作业和 Oracle CDC 清除作业(如果正在使用)。
EXECUTE sys.sp_cdc_add_job N'capture- 在新的主服务器上创建 SQL Server CDC Capture 作业时,将设置默认配置设置。因此,如果以前修改过以前的主副本上的默认值,则需要在新的主副本上运行
sys.sp_cdc_change_job并相应地设置这些值。注:有关如何为 AlwaysOn 次要副本启用 CDC Capture 作业的详细信息,请参阅 Microsoft 文档。
- 在新的主服务器上创建 SQL Server CDC Capture 作业时,将设置默认配置设置。因此,如果以前修改过以前的主副本上的默认值,则需要在新的主副本上运行
操作要求和注意事项
-
当实例不再是主实例但安装了 SQL Server CDC Capture 作业时,该作业将在一段时间后停止运行,并且不会尝试重新启动。故障转移回该实例后,作业不会自动启动,因此必须手动启动。
-
如果辅助副本数据库与主副本数据库不同步,CDC 捕获作业将不会在日志中前进,因此在主副本和辅助副本同步之前,提取不会捕获任何记录。有关更多详细信息,请参阅 Microsoft 的本文:
注:从“始终可用”组中的主副本或辅助副本中捕获时,务必了解捕获进程必须仅从日志中读取已硬化的事务处理,并且 Oracle GoldenGate 捕获或将从其中捕获的任何副本数据库之间不会丢失数据。
-
从中间层 Windows 或 Linux 服务器运行 Extract 时,将中间层服务器的日期、时间和时区设置为与主副本的日期、时间和时区相同。
-
如果“提取”配置为从可读的辅助副本捕获,但未配置只读路由,则必须在启动“提取”之前针对辅助副本创建 SQL Server CDC Capture 作业,因为“提取”将检查作业是否存在。要创建 SQL Server CDC Capture 作业(任何将有 Extract 连接到的潜在辅助作业),必须在某个时刻将它设置为可写主数据库,然后按照上述步骤在补充日志记录下手动添加 SQL Server CDC Capture 作业。
-
如果卸载 Oracle GoldenGate 并对属于“始终启用”可用性组的数据库禁用更改数据捕获,请执行禁用更改数据捕获中提供的额外步骤。