一、Oracle数据库
Oracle数据库的增量捕获功能,需要对源数据库做以下配置:
-
数据库系统管理员需要配置至少三个redo log日志文件,每个数据文件至少500M,以便日志文件能够保留更长时间不被循环覆盖。
-
数据库系统管理员登录
启用最小补充日志,SQL命令:
ALTER DATABASE ADD Supplemental LOG DATA;
启用主键补充日志,SQL命令:
alter database add supplemental log data (Primary key) columns;
-
赋予数据库用户读取数据库日志权限,SQL命令:
GRANT SELECT_CATALOG_ROLE TO [用户名]; GRANT EXECUTE_CATALOG_ROLE TO [用户名]; GRANT CREATE SESSION TO [用户名]; GRANT SELECT ANY TRANSACTION TO [用户名];
-
赋予数据库用户需要交换的数据库表的读权限,SQL命令:
grant select on [schema名].[表名] to [用户名];
二、MySQL数据库
MySQL数据库的增量捕获功能,需要对源数据库做以下配置:
- 增量捕获功能需要修改 MySQL配置文件 linux为my.cnf或windows为my.ini,添加内容如下:
[mysqld] log-bin=mysql-bin #添加这一行 binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义
- 赋予数据库用户binlog权限,SQL语句如下:
grant REPLICATION SLAVE ON *.* TO [用户名] grant REPLICATION CLIENT ON *.* TO [用户名]
三、SQLServer数据库
SQLServer数据库增量捕获功能,需要对源数据库做以下配置
-
数据库系统管理员登录
启动对应的库的增量捕获功能,SQL命令:EXEC [库名].SYS.SP_CDC_ENABLE_DB
设置保留触发增量数据的时间,超过时间的数据被将自动清除,SQL命令:
显示原有配置时间(单位分钟)
EXEC sp_cdc_help_jobs
更改数据保留时间为XXX分钟
EXECUTE sys.sp_cdc_change_job @job_type = N'cleanup', @retention=XXX
重启一下作业,以使设置生效:
先停用作业EXEC sys.sp_cdc_stop_job N'cleanup'
再启用作业
EXEC sys.sp_cdc_start_job N'cleanup'
如果sql重启作业不成功,可以到SQL Server Management Studio去右键对应的作业禁用再启用就可以了。
-
赋予数据库用户对应库的owner的权限:
use [库名] EXEC sp_grantdbaccess '用户名' exec sp_addrolemember 'db_owner', '用户名'
【全文完】