You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于AWS DMS的SQL Server 2017事务复制新增表操作咨询

在SQL Server 2017事务复制中新增表(副端为AWS DMS)的操作步骤

由于AWS DMS作为订阅端时,SQL Server本地无法通过SSMS看到订阅对象,需要结合SQL Server发布端脚本操作和AWS DMS端配置调整来完成新增表的同步,具体步骤如下:

一、SQL Server发布端操作

  1. 修改发布属性
    因为DMS对应的订阅属于匿名/推送类型,需先通过T-SQL调整发布的allow_anonymous和allow_sync_tran属性:
USE [你的发布数据库名]
-- 关闭匿名订阅允许
EXEC sp_changepublication 
    @publication = N'目标发布名称',
    @property = N'allow_anonymous',
    @value = 'false'
GO

-- 关闭同步事务允许
EXEC sp_changepublication 
    @publication = N'目标发布名称',
    @property = N'allow_sync_tran',
    @value = 'false'
GO
  1. 将新表添加到发布中
    使用脚本将目标表加入发布,可按需添加筛选、列映射等配置:
USE [你的发布数据库名]
EXEC sp_addarticle 
    @publication = N'目标发布名称',
    @article = N'新增表名',
    @source_object = N'新增表名',
    @source_owner = N'dbo' -- 替换为表实际所属架构
    -- 如需自定义复制规则,可添加@filter_clause、@destination_table等参数
GO
  1. 生成新的发布快照
    新增表需要通过快照完成初始化,直接生成发布的快照即可:
  • SSMS操作:找到对应发布,右键选择「生成快照」;
  • 脚本操作:
EXEC sp_startpublication_snapshot 
    @publication = N'目标发布名称'
GO

确认快照代理服务处于运行状态,且快照生成成功(可检查SQL Server快照文件夹的新增文件)。

二、AWS DMS端操作

  1. 暂停当前DMS复制任务
    登录AWS控制台,进入DMS服务,找到对应的复制任务,点击「暂停」。

  2. 更新表映射配置
    进入任务的「表映射」页面:

  • 如果之前使用通配符匹配表(如%),新增表会自动被包含,只需确认映射规则;
  • 如果是手动指定表,需添加新增表的映射规则,确保架构、表名映射正确,并设置同步模式为「全量+增量」(保证新表先同步全量数据,再跟进事务日志)。
  1. 重启DMS任务并初始化新表
    启动任务时,选择「重新加载目标表」或「应用快照初始化」选项,确保DMS从新生成的快照中加载新增表的全量数据,之后自动同步后续事务。

  2. 验证同步结果
    在DMS的目标数据库中,检查新增表的数据是否与源端完全一致,同时测试源端表的增删改操作,确认目标端能实时同步。

注意事项

  • 确保SQL Server快照代理拥有快照文件夹的读写权限,且DMS源端点具备读取SQL Server发布快照的权限;
  • 操作前建议备份源端发布数据库和目标端相关数据,避免意外数据丢失;
  • 若任务启动后报错,优先查看DMS任务日志和SQL Server复制代理日志,排查权限、表结构兼容等问题。

内容的提问来源于stack exchange,提问作者Aditya Sawant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 19:58:13