【问题标题】:AWS DMS unable to truncate SQL transaction logAWS DMS 无法截断 SQL 事务日志
【发布时间】:2018-10-11 20:59:56
【问题描述】:

我们正在运行 AWS DMS,其中 SQL 作为源,DynamoDB 作为目标。

我们很难截断事务日志,我们看到每个 AWS DMS 有 2 个 SQL 任务,如下所示:

begin transaction [WVGLQ7HFWFWJCCPK4RQVRQGDVE]; update [dbo].[awsdms_truncation_safeguard] set [latchLocker] = GETDATE() where [latchTaskName]='[WVGLQ7HFWFWJCCPK4RQVRQGDVE]' and [latchMachineGUID]='660a2d00-681b-46fd-89c3-3abdcfc8df18' and [LatchKey]='A'

知道如何让 AWS DMS 完成我们可以截断日志的事务

AWS 文档说:https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html

名称说明 保障政策

为了获得最佳性能,AWS DMS 会尝试从活动事务日志 (TLOG) 中捕获所有未读更改。但是,有时由于截断,活动 TLOG 可能不包含所有未读更改。发生这种情况时,AWS DMS 会访问备份日志以捕获丢失的更改。为了尽量减少访问备份日志的需要,AWS DMS 使用以下方法之一防止截断:

  1. 在数据库中启动事务:这是默认方法。使用此方法时,AWS DMS 通过模仿数据库中的事务来防止 TLOG 截断。只要此类事务处于打开状态,事务启动后出现的更改就不会被截断。如果您需要在数据库中启用 Microsoft Replication,则必须选择此方法。

  2. 在单个任务中仅使用 sp_repldone:使用此方法时,AWS DMS 会读取更改,然后使用 sp_repldone 将 TLOG 事务标记为可以截断。尽管此方法不涉及任何事务活动,但它只能在 Microsoft Replication 未运行时使用。此外,使用此方法时,在任何给定时间只有一个 AWS DMS 任务可以访问数据库。因此,如果您需要对同一数据库运行并行 AWS DMS 任务,请使用默认方法。

默认值:RELY_ON_SQL_SERVER_REPLICATION_AGENT

有效值:{EXCLUSIVE_AUTOMATIC_TRUNCATION, RELY_ON_SQL_SERVER_REPLICATION_AGENT}

示例:safeguardPolicy= RELY_ON_SQL_SERVER_REPLICATION_AGENT

只读备份

当此参数设置为 Y 时,AWS DMS 仅从事务日志备份中读取更改,并且在持续复制期间不会从活动事务日志文件中读取。将此参数设置为 Y 可能会为正在进行的复制增加一些源延迟,但它可以让您在完全加载和正在进行的复制任务期间控制活动事务日志文件的增长。

有效值:N 或 Y。默认值为 N。

示例:readBackupOnly=Y

我们正在使用 SQL 复制,因为我们使用带有主键的表,是否有解决方法。我们还有什么需要配置的吗

【问题讨论】:

    标签: sql-server amazon-web-services aws-dms


    【解决方案1】:

    我遇到了同样的问题。

    运行:

    EXEC sp_replcounters
    

    如文档所说,添加参数

    safeguardPolicy : EXCLUSIVE_AUTOMATIC_TRUNCATION 
    

    并运行日志阅读器或创建新作业并添加以下命令并以特定间隔运行作业。日志文件不会占用任何空间,因为旧记录将被标记为已导出。

    EXEC sp_replshowcmds
    
    EXEC sp_repldone @xactid = NULL, @xact_segno = NULL, @numtrans = 0, @time = 0, @reset = 1
    

    再次运行sp_replcounter

    检查这个:https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-repldone-transact-sql?view=sql-server-2017

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 2017-11-15
      • 2018-01-17
      相关资源
      最近更新 更多