三种数据库的CDC模式配置

数据交换 ANYWHERE  于 2018-11-27 15:21:55 发布  5080  已收藏 5
文章标签: 数据交换 CDC 数据库配置
版权
一、Oracle数据库
二、MySQL数据库
三、SQLServer数据库
[TurboDX配置]
一、Oracle数据库
Oracle数据库的增量捕获功能,需要对源数据库做以下配置:

数据库系统管理员需要配置至少三个redo log日志文件,每个数据文件至少500M,以便日志文件能够保留更长时间不被循环覆盖。

数据库系统管理员登录

启用最小补充日志,SQL命令:

ALTER DATABASE ADD Supplemental LOG DATA;
1
启用主键补充日志,SQL命令:

alter database add supplemental log data (Primary key) columns;
1
赋予数据库用户读取数据库日志权限,SQL命令:

GRANT SELECT_CATALOG_ROLE TO [用户名];
GRANT EXECUTE_CATALOG_ROLE TO [用户名];

GRANT CREATE SESSION TO [用户名];
GRANT SELECT ANY TRANSACTION TO [用户名];
1
2
3
4
5
赋予数据库用户需要交换的数据库表的读权限,SQL命令:

grant select  on [schema名].[表名] to [用户名];
1
二、MySQL数据库
MySQL数据库的增量捕获功能,需要对源数据库做以下配置:

增量捕获功能需要修改 MySQL配置文件 linux为my.cnf或windows为my.ini,添加内容如下:
[mysqld]
log-bin=mysql-bin     #添加这一行
binlog-format=ROW     #选择row模式
server_id=1         #配置mysql replaction需要定义
1
2
3
4
赋予数据库用户binlog权限,SQL语句如下:
grant REPLICATION SLAVE ON *.* TO [用户名]  
grant REPLICATION CLIENT ON *.* TO [用户名] 
1
2
三、SQLServer数据库
SQLServer数据库增量捕获功能,需要对源数据库做以下配置

数据库系统管理员登录
启动对应的库的增量捕获功能,SQL命令:

EXEC [库名].SYS.SP_CDC_ENABLE_DB
1
设置保留触发增量数据的时间,超过时间的数据被将自动清除,SQL命令:

显示原有配置时间(单位分钟)

EXEC sp_cdc_help_jobs
1
更改数据保留时间为XXX分钟

EXECUTE sys.sp_cdc_change_job
  @job_type = N'cleanup',
  @retention=XXX
1
2
3
重启一下作业,以使设置生效:
先停用作业

EXEC sys.sp_cdc_stop_job N'cleanup'
1
再启用作业

EXEC sys.sp_cdc_start_job N'cleanup'
1
如果sql重启作业不成功,可以到SQL Server Management Studio去右键对应的作业禁用再启用就可以了。

赋予数据库用户对应库的owner的权限:

use [库名]
EXEC sp_grantdbaccess '用户名'
exec sp_addrolemember 'db_owner', '用户名'
1
2
3
【全文完】
————————————————
版权声明:本文为优快云博主「数据交换 ANYWHERE」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/anywhere88/article/details/84566414

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值