ogg12.3+mmsql配置写入kafka

1、解压ogg压缩包

注意:源端是安装了sqlserver的机器,sqlserver环境变量之前都配置好了,解压之后在希望安装 OracleGoldenGate 的位置(在本示例中为C:\Users\Administrator\Desktop\GG)解压缩下载的压缩包。然后打开命令提示符,转到 C:\Users\Administrator\Desktop\GG目录,启动GGSCI(GoldenGate 命令界面)

ogg12.3+mmsql配置写入kafka_第1张图片

2、ogg初始化(和mysql是一样的)

接着执行CREATE SUBDIRS 命令创建 Oracle GoldenGate 工作目录进行初始化

ogg12.3+mmsql配置写入kafka_第2张图片

3、创建测试数据库和表数据

创建一个数据库在该库下新建测试表,数据库名、表名均为 test_ogg:

create database test_ogg

在下面选择数据库创建表

ogg12.3+mmsql配置写入kafka_第3张图片

4、配置dsn数据源

现在,为使 Oracle GoldenGate 能够访问test_ogg 数据库,必须为其创建一个 ODBC 数据源。转到 Control

Panel -> Administrative Tools -> Data Sources (ODBC),添加一个新的系统 DSN。选择 SQL Server 作为数据库驱动程序并将该数据源命名为 HRT。将来源指向本地 SQL Server (MSSQL) 并填写登录凭证。数据源摘要应类似如下所示:

Window系统下,打开控制面板->管理工具->选中数据源


ogg12.3+mmsql配置写入kafka_第4张图片

选择系统dsn进行添加,选择sqlserver点击完成

ogg12.3+mmsql配置写入kafka_第5张图片

输入数据源名称,选择连接的服务器,如下拉框中没有你本地数据源,cmd中输入hostname查看本地服务,然后粘贴。


ogg12.3+mmsql配置写入kafka_第6张图片

然后这个使用默认的,不加以修改,你也可以选择输入登录id和密码进行sqlserver验证,但是sqlserver需要修改一些配置(暂时没研究),所以我们使用默认的

ogg12.3+mmsql配置写入kafka_第7张图片

修改默认的数据库,看你需要访问那个数据库


ogg12.3+mmsql配置写入kafka_第8张图片

然后使用默认配置,点击完成和测试数据源


ogg12.3+mmsql配置写入kafka_第9张图片

如显示测试成功,那就dsn添加成功。

5、配置用户sysadmin权限

打开microsoft sql server management studio连接数据库->服务器角色->sysadmin


ogg12.3+mmsql配置写入kafka_第10张图片

点击添加nt authority\system用户点击确定。(不配置sysadmin权限启动extract会有权限问题)

ogg12.3+mmsql配置写入kafka_第11张图片

6、清理作业

在Management Studio中,在源数据库的查询窗口中。您必须手动删除数据库的SQL Server CDC清除作业,因为它可能导致Extract的数据丢失。(EXECUTE sys.sp_cdc_drop_job 'cleanup';)


ogg12.3+mmsql配置写入kafka_第12张图片

7、启用cdc

在sqlserver studio新建查询运行:

EXECUTEsys.sp_cdc_enable_db;

如果报错执行

ALTER AUTHORIZATION ON DATABASE::[数据库名称] TO [sa]

8、配置globals配置文件

使用Sql Server系统管理员用户创建ogg Schema,这个schema会存cdc抽取的一些数据记录:

-- 创建schema

create schema ogg

进入OGG安装目录下,使用CMD命令行配置globals文件:

ggsci.exe

GGSCI(ambari.master.com) 2> edit param ./globals

输入以下命令,

ggschema [创建的schema]

9、add trandata

如果是新建ojdbc是windowid验证则在ogg命令行中输入以下命令

GGSCI(ambari.master.com) 2> dblogin sourcedb hrt

GGSCI(ambari.master.com) 2> add trandata [schema].*

如果是新建ojdbc是通过账号密码验证验证则在ogg命令行中输入以下命令

GGSCI(ambari.master.com) 2>dblogin sourcedbhrt, userid sa, password xxxxxx

GGSCI(ambari.master.com) 2>add trandata [schema].*

如果add trandata失败显示如下图错误

ogg12.3+mmsql配置写入kafka_第13张图片

原因:SqlServer安装后修改了主机名,导致以下两个语句结果不一致

SELECT * FROMmaster.dbo.sysservers

SELECTSERVERPROPERTY('ServerName')

如果不一致就在sql studio执行如下语句

iF serverproperty('servername')<>@@servername

BEGIN

DECLARE @server SYSNAME

SET  @server=@@servername

EXEC sp_dropserver @server=@server

SET  @server=cast(serverproperty('servername') AS SYSNAME)

EXEC sp_addserver @server=@server,@local='LOCAL'

END

ELSE

PRINT '实例名与主机名一致,无需修改!'

执行成功后就重新dblogin然后add trandata

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

ogg12.3+mmsql配置写入kafka_第14张图片

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

10、开启sql server agent

设置sql serveragent开启,进入sqlserver managermant studio,打开连接选择sqlserver代理进行开启


ogg12.3+mmsql配置写入kafka_第15张图片

11、配置清理作业和关联对象

在cmd目录下使用该ogg_cdc_cleanup_setup.bat实用程序(在Oracle GoldenGate安装目录中)创建Oracle GoldenGate CDC清理作业和关联对象。使用的ggschema名称必须与您GGSCHEMA在GLOBALS文件参数中使用的名称相同。您必须使用具有sysadmin权限的SQL Server身份验证用户。在解压的ogg文件夹下进行:

ogg_cdc_cleanup_setup.bat createJob username password databasename servername\instancename ggschema

创建样例:ogg_cdc_cleanup_setup.bat  createJob sa  xxxxx  ogg_test NewESB1  ogg

删除样例:ogg_cdc_cleanup_setup.bat  dropJob sa  xxxx ogg_test NewESB1  ogg

Username:数据库用户名,password数据库密码,databasename数据库名称,服务名\实例名 globals文件中定义的schema(用户自己创建一个schema)。

12、配置mgr

GGSCI(ambari.master.com) 3> edit param mgr

文件内容:

PORT 7809

AUTOSTART ER *

AUTORESTART ER*,RETRIES 3, WAITMINUTES 5, RESETMINUTES 10

说明:PORT即mgr的默认监听端口,AUTORESTART重启参数设置表示重启所有EXTRACT和Replicat进程,最多5次,每次间隔3分钟,最多等待5分钟,AUTOSTART开启自启所有EXTRACT和Replicat进程。

13、配置extract 抽取进程

GGSCI(ambari.master.com) 6>edit param  extkafka

文件内容:

Extract extkafka

SOURCEDB HRT

TRANLOGOPTIONS  MANAGECDCCLEANUP

exttrail

C:/Users/Administrator/Desktop/GG/[extkafka]/to

TABLE dbo.TEST_OGG;

说明:第一行指定extract进程名称;sourcedb hrt连接数据源;TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT。此选项告诉 Extract 进程定期检查和删除 CDC 捕获作业,从而提高性能并减小捕获数据所占用的空间;exttrail定义trail文件的保存位置以及文件名,注意这里文件名只能是2个字母,其余部分OGG会补齐;table即复制表的表名,test_ogg.test_ogg代表抽取test_ogg表(支持*通配,必须以;结尾)

添加extract进程:

GGSCI(ambari.master.com) 16> add extract extkafka,tranlog,begin now

添加trail文件的定义与extract进程绑定,extract进程监听文件夹文件是否有变动:

GGSCI(ambari.master.com) 17> add exttrail C:/Users/Administrator/Desktop/GG/[extkafka]/to,extract extkafka

13、配置pump推送进程

pump进程本质上来说也是一个extract,只不过他的作用仅仅是把trail文件传递到目标端,配置过程和extract进程类似,只是逻辑上称之为pump进程:

GGSCI(ambari.master.com) 18>edit parampukafka

文件内容:

extract pukafka

passthru

dynamicresolution

rmthost192.168.124.173 mgrport 7809

rmttrail /opt/ogg/[extkafka]/to

table dbo.*;

说明:第一行指定extract进程名称;passthru即禁止OGG与Oracle交互,我们这里使用pump逻辑传输,故禁止即可;dynamicresolution动态解析;rmthost和mgrhost即目标端(kafka)OGG的mgr服务的地址以及监听端口;rmttrail即目标端trail文件存储位置以及名称。

分别将本地trail文件和目标端的trail文件绑定到extract进程:

GGSCI(ambari.master.com) 1> add extract pukafka,exttrailsource C:/Users/Administrator/Desktop/GG/[extkafka]/to

GGSCI(ambari.master.com) 2> add rmttrail /opt/ogg/[extkafka]/to,extract pukafka

14、配置define进程

Oracle与MySQL,Hadoop集群(HDFS,Hive,kafka等)等之间数据传输可以定义为异构数据类型的传输,故需要定义表之间的关系映射,在OGG命令行执行:

GGSCI(ambari.master.com) 3> edit param [extkafka]

defsfile C:\Users\Administrator\Desktop\GG\dirdef\[extkafka]

sourcedb hrt

table test_ogg.*;

在OGG主目录下执行:

C:\Users\Administrator\Desktop\GG> defgen paramfile C:\Users\Administrator\Desktop\GG\dirprm\[extkafka].prm

将生成的C:\Users\Administrator\Desktop\GG\dirdef\[extkafka]发送的目标端ogg目录下的dirdef里,源端配置完成。

15、开机自启mgr

在goldengate环境ggsci下输入以下命令:

edit params ./GLOBALS

#(注意./GLOBALS为大写)编辑文件,添加以下内容。

MGRSERVNAME GGMGR

#GGMGR 是个性化设置的OGG管理进程服务名,保存退出。

在OGG安装目录下使用“以管理员身份运行”模式打开cmd提示符,执行命令,执行install addservice激活服务。

然后在windows服务中找到服务设置开机自启动。

ogg12.3+mmsql配置写入kafka_第16张图片

如果是windos环境oracle数据库,可能需要设置自动延时启动,在oracle启动之后在进行启动,如果设置了延时启动ogg进程还是启动报错,报错如下图所示

ogg12.3+mmsql配置写入kafka_第17张图片

那可以设置通过bat脚本文件进行开机自启。

你可能感兴趣的:(ogg12.3+mmsql配置写入kafka)