赞
踩
操作条件:
1. 需要DBA权限;
2. 需要重启数据库;
3. 确保所需集成的表具有主键(物理或逻辑);
4. 操作⼈必须熟悉当前数据库的⽇常管理操作;
5. 操作之前请做好备份⼯作。
注意事项:
1. 下列脚本中若遇 <...>内容,需要替换所需内容;
2. 所创建对象名称请按学校所需规范进⾏命名;
3. 由于环境和版本差异,若不能正常运⾏时,会涉及进⼀步的微调设置;
4. 此⽂档仅是要求和指引,未涉及详解数据库的各项指令操作,具体可查阅相关数据库的管理操作 。
注:SQL Server表结构发⽣变化后,需要重建表级CDC后重新⽣效。
- 一. 设置
- 1. 开启数据库级CDC特性
- USE <库名>
- GO
- EXEC sys.sp_cdc_enable_db
- GO
-
- select is_cdc_enabled from sys.databases where name='库名'
-
- ----授权日志表 sa 用户下面操作
-
- ALTER AUTHORIZATION ON DATABASE::[库名] TO [sa]
-
-
- 2. 创建访问⽤户并授权
- USE <库名>
- GO
- CREATE LOGIN usr_cdc WITH PASSWORD = '<密码>'
- GO
- CREATE USER usr_cdc FOR LOGIN usr_cdc WITH DEFAULT_SCHEMA = <schema>
- GO
- EXEC sp_addrolemember N'db_datareader', N'usr_cdc'
- GO
- 3. 开启表级CDC特性
- USE <库名>
- GO
- -- 多个表请分别执⾏
- EXEC sys.sp_cdc_enable_table
- @source_schema = N'<schema>',
- @source_name = N'<table>',
- @role_name = N'usr_cdc',
- @supports_net_changes = 0
- GO
- 二. 验证
- ⽤上述usr_cdc账号登录,执⾏以下SQL:select count(*) from <schema>.<table1>;-- 检查是否成功执⾏,其中
- ,<schema>.<table1>是所需同步的表
- EXEC sys.sp_cdc_help_change_data_capture;-- 检查返回结果是否包含<s
- chema>.<table1>
- SELECT sys.fn_cdc_get_max_lsn();-- 检查是否成功执⾏
- SELECT count(*) FROM cdc.lsn_time_mapping;-- 检查是否成功执⾏
- SELECT sys.fn_cdc_get_min_lsn('#');-- 检查是否成功执⾏
- SELECT count(*) FROM cdc.change_tables;-- 检查是否成功执⾏
开启表级别配置。 如果不设置用户可以role_name = NULL
- IF EXISTS(SELECT 1 FROM sys.tables WHERE name='ba' AND is_tracked_by_cdc = 0)
- BEGIN
- EXEC sys.sp_cdc_enable_table
- @source_schema = 'dbo', -- source_schema
- @source_name = 'ba', -- table_name
- @capture_instance = NULL, -- capture_instance
- @supports_net_changes = 1, -- supports_net_changes
- @role_name = NULL -- role_name
- END
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。