数据交换 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