本文主要讲述ogg 12.3 通过CDC抽取sqlserver 2016 enterprise的过程,投递配置相对简单,所以不在此阐述。

1. 解压ogg 12.3 for sqlserver软件,执行create subdirs,编辑mgr并启动。

2. 数据库安装配置,并打补丁

3. create schema ogg

4. 创建测试表

5. 创建globals文件

6. 创建同步用户

7. 确保sqlagent能正常启动

8. 在源端DB上启用CDC

9. add trandata

10. 创建清理历史变更数据的job

11. 创建ODBC

12. 建立抽取进程

13. 测试

OGG软件及sqlserver 2016安装步骤在此省略。

安装完成sqlserver 2016 ent版本之后,还需要打补丁:

https://support.microsoft.com/en-us/help/3166120/fix-could-not-find-stored-procedure-sys-sp-cdc-parse-captured-column-l

用于存放配置表,其中cdc schema由启用CDC步骤的存储过程创建。

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

USE [source]

GO

CREATE SCHEMA [ogg] AUTHORIZATION [dbo]

GO

use source;

create table dbo.test1 (id int primary key, name varchar(50));

create table dbo.test2( id int, name varchar(50), age int);

use target;

create table dbo.test1 (id int primary key, name varchar(50));

create table dbo.test2( id int, name varchar(50), age int);

文件

OGG目录下,新建globals文件,输入如下内容

ggschema ogg

同步用户

并赋权

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

目标端用户

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

agent用于启动CDC对应的job, 所以必须要启动agent才能正常同步。

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

use source

EXECUTE sys.sp_cdc_enable_db

GGSCI>dblogin sourcedb srcdb, userid srcogg, password srcogg

GGSCI>add trandata dbo.test1

GGSCI>add trandata dbo.test2

执行完成之后,可以看到多了一张配置表

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

ogg.OracleGGTranTables will be added automatically.

如果数据表没有add trandata,则不能捕获其变更数据。

需要先删除DB自带的clean job

EXECUTE sys.sp_cdc_drop_job 'cleanup'

然后在OGG安装目录下,进入命令行,执行如下语句,其中(local)是默认的sqlserver实例

ogg_cdc_cleanup_setup.bat createjob srcogg srcogg source (local) ogg

add two tables:

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

and add a new job

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

如果需要远程捕获sqlserver,则只要配置通过odbc远程访问DB即可实现。

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

GGSCI (DESKTOP-V8IQDQP) 6> view param exsrc

extract exsrc

sourcedb srcdb, userid srcogg, password srcogg

exttrail ./dirdat/aa

table dbo.*;

add extract exsrc, tranlog, begin now

add exttrail ./dirdat/aa, extract exsrc

insert into dbo.test1 values(1, 'bc是中kos');

查看OGG的抽取进程状态

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

有捕获到数据。

ogg 12.3 for sqlserver 2016 CDC模式配置-LMLPHP

05-11 17:56