文档中心MogDBMogDB StackUqbar

文档:v2.0

支持的版本:

SQL Server为源库

支持版本

2016(SP1)及以后版本

数据库设置

用户权限

开启CDC所需权限:

1、用户是SQL Server的sysadmin固定服务器角色的成员。
2、用户是数据库的db_owner。

开启 SQL Server 代理服务

1、在 “对象资源管理器”中,单击加号以展开要管理 SQL Server 代理服务的服务器。
2、右键单击“SQL Server 代理”,然后选择“启动”、“停止”或“重启”。
3、在“用户帐户控制”对话框中,单击“是”。
4、系统提示是否要执行该操作时,请单击 “是”。

开启数据库CDC

1、在SQL Server Management Studio的“视图”菜单中,单击“模板资源管理器”。
2、在模板浏览器中,展开SQL Server模板。
3、展开Change Data Capture>Configuration,然后单击Enable Database for CDC。
4、在模板中,用要为CDC启用的数据库名称替换USE语句中的数据库名称。
5、运行存储过程sys.sp_cdc_enable_db启用数据库CDC。

示例:为数据库MyDB启用CDC

    USE MyDB -- MyDB: 数据库名
    GO
    EXEC sys.sp_cdc_enable_db
    GO

开启同步表CDC

1、在SQL Server Management Studio的“视图”菜单中,单击“模板资源管理器”。
2、在模板浏览器中,展开SQL Server模板。
3、展开Change Data Capture>Configuration,然后单击启Enable Table Specifying Filegroup Option。
4、在模板中,用要同步的表的名称替换USE语句中的表名。
5、运行存储过程sys.sp_cdc_enable_table。

示例:为同步表MyTable启用CDC

    USE MyDB -- MyDB: 已开启CDC数据库名
    GO

    EXEC sys.sp_cdc_enable_table
    @source_schema = N'mySchema', -- mySchema: 同步表所属schema名
    @source_name   = N'myTable',  -- myTable: 同步表名
    @role_name     = NULL,  
    @supports_net_changes = 0
    GO

同步表结构变更

如果已开启CDC的同步表,表结构发生变化,需要重新执行新存储过程。

示例:mySchema.myTable 表结构发生变化

ALTER TABLE myTable ADD phone_number VARCHAR(32);

1、通过运行sys.sp_cdc_enable_table存储过程创建新的捕获实例。

    EXEC sys.sp_cdc_enable_table 
    @source_schema = 'mySchema', -- schema
    @source_name = 'myTable',  -- table
    @role_name = NULL, 
    @supports_net_changes = 0, 
    @capture_instance = 'mySchema_myTable_v2'; -- 新实例名与旧实例名不能重名,默认实例名:mySchema_myTable

2、 通过运行sys.sp_cdc_disable_table存储过程删除旧的捕获实例。

    EXEC sys.sp_cdc_disable_table 
    @source_schema = 'mySchema', -- schema
    @source_name = 'myTable',  -- table
    @capture_instance = 'mySchema_myTable'; -- 默认实例名:mySchema_myTable
    GO

开启心跳配置

该配置属性可用于确认连接器是否仍在从数据库接收更改事件。

开启心跳需要在通道高级参数中,设置heartbeatIntervalMs为正整数。

字符集映射

源库 目标库 源库字符集 目标库字符集
SQL Server MogDB UTF8
Copyright © 2011-2025 www.enmotech.com All rights reserved.