We couldn’t sign you in
Select the account you want to use.

症状

请考虑以下情形:

  • 使用 SQL Server 2017年上 Windows,Microsoft SQL Server 2016年,2014,或 2012年变更数据捕获为 Oracle 通过 Attunity。

  • 您创建的 CDC 实例来捕获来自 Oracle 数据库表的更改。

  • 更改捕获值存储在 SQL Server 更改捕获数据库中。

  • SQL Server 数据库上的事务日志的增长,以及交易记录未标记为截断为捕获数据更改。

在这种情况下,SQL Server 数据库事务日志文件增长累积,并随着时间的推移会占用过多的磁盘空间。

 

原因

更改数据捕获 Oracle 实例的配置时,将已接收变更数据的 SQL 数据库镜像与标记为复制的事务的表。出现此现象是因为适用于 Oracle 的 CDC 依赖基础类似于那些在 CDC 用于 SQL Server 的系统存储过程。但是,因为不没有涉及到的任何 SQL CDC 复制,适用于 Oracle 的 CDC 单独使用时,任何日志读取器,以清除标记为复制的事务。因为不必在 SQL Server 中复制事务,则可以安全地使用本文内下文中介绍的替代方法手动标记为分布式事务。

要验证此确切原因,请运行DBCC OPENTRAN命令连接到 SQL Server CDC 数据库时。您将看到一个分布式的 LSN 数字如下面的示例所示:

复制的事务的信息:
最早的分布式 LSN: (0:0:0)
最早的非分布式 LSN: (38:272:1)
DBCC 执行完毕。如果 DBCC 输出错误消息,请与您的系统管理员联系。由于适用于 Oracle 的 CDC 使用 CDC 的 SQL 存储过程,并且,反过来,使用复制日志读取器可能未分发的 LSN。此分布式的 LSN 对应的日志条目 Attunity CDC 数据库中添加镜像的表。

如果运行此查询时, log_reuse_wait_desc选项将返回值的复制,表示原因。从 sys.databases,其中名称是 < your_cdc_database > 中选择log_reuse_wait_desc的名称:

复制< your_cdc_database >

解决方案

  1. 在连接到启用了 CDC 的 SQL Server 数据库的查询窗口中运行以下命令:

    执行 sp_repltrans您应该收到类似于以下内容的输出:

    xdesid xact_seqno xact_seqno
    0x000000260000012C0001 0x0000002A000001B50001将复制下一个命令 LSN 事务序列的号。

  2. 使用步骤 1 中的数字,运行sp_repldone命令,如下所示来发出信号,BeginTran 和 CommitTran 的 LSN 对已复制:

    sp_repldone @xactid = 0x000000260000012C0001, @xact_segno = 0x0000002A000001B50001

  3. 运行以下命令来验证事务被标记为复制到 CDC 数据库中:

    DBCC OPENTRAN这将返回类似于以下内容的输出:

    没有活动未结交易记录。
    DBCC 执行完毕。如果 DBCC 输出错误消息,请与您的系统管理员联系。

  4. 若要确保事务日志可以重复使用,请确保没有其他重复使用理由表示对数据库:

    选择 log_reuse_wait_desc,从 sys.databases 的名称,名称 = 'your_cdc_database'
    这将返回类似于以下内容的输出:

    log_reuse_wait_desc 名称
    没有任何your_cdc_database

  5. 现在您应该能够通过使用日志备份截断事务日志。您还应该能够收缩事务日志文件,以减少所占用的磁盘空间。

    例如,运行以下命令:

    备份日志 your_cdc_database 到 DISK='c:\folder\logbackup.trn
    DBCC SHRINKFILE (yourcdcdatabase_log,1024年)

有关详细信息,请参阅管理事务日志文件的大小

详细信息

有关详细信息,请参阅Microsoft 疑难解答 CDC 实例错误更改 Attunity 通过 Oracle 的数据捕获

本文讨论的第三方产品是由与 Microsoft 无关的公司生产的。Microsoft 不做这些产品的任何担保、默示或其他有关的性能或可靠性。

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?

谢谢您的反馈!

×