1、解压ogg压缩包
注意:源端是安装了sqlserver的机器,sqlserver环境变量之前都配置好了,解压之后在希望安装 OracleGoldenGate 的位置(在本示例中为C:\Users\Administrator\Desktop\GG)解压缩下载的压缩包。然后打开命令提示符,转到 C:\Users\Administrator\Desktop\GG目录,启动GGSCI(GoldenGate 命令界面)
2、ogg初始化(和mysql是一样的)
接着执行CREATE SUBDIRS 命令创建 Oracle GoldenGate 工作目录进行初始化
3、创建测试数据库和表数据
创建一个数据库在该库下新建测试表,数据库名、表名均为 test_ogg:
create database test_ogg
在下面选择数据库创建表
4、配置dsn数据源
现在,为使 Oracle GoldenGate 能够访问test_ogg 数据库,必须为其创建一个 ODBC 数据源。转到 Control
Panel -> Administrative Tools -> Data Sources (ODBC),添加一个新的系统 DSN。选择 SQL Server 作为数据库驱动程序并将该数据源命名为 HRT。将来源指向本地 SQL Server (MSSQL) 并填写登录凭证。数据源摘要应类似如下所示:
Window系统下,打开控制面板->管理工具->选中数据源
选择系统dsn进行添加,选择sqlserver点击完成
输入数据源名称,选择连接的服务器,如下拉框中没有你本地数据源,cmd中输入hostname查看本地服务,然后粘贴。
然后这个使用默认的,不加以修改,你也可以选择输入登录id和密码进行sqlserver验证,但是sqlserver需要修改一些配置(暂时没研究),所以我们使用默认的
修改默认的数据库,看你需要访问那个数据库
然后使用默认配置,点击完成和测试数据源
如显示测试成功,那就dsn添加成功。
5、配置用户sysadmin权限
打开microsoft sql server management studio连接数据库->服务器角色->sysadmin
点击添加nt authority\system用户点击确定。(不配置sysadmin权限启动extract会有权限问题)
6、清理作业
在Management Studio中,在源数据库的查询窗口中。您必须手动删除数据库的SQL Server CDC清除作业,因为它可能导致Extract的数据丢失。(EXECUTE sys.sp_cdc_drop_job 'cleanup';)
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失败显示如下图错误
原因: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
执行完成之后,可以看到多了一张配置表
如果数据表没有add trandata,则不能捕获其变更数据。
10、开启sql server agent
设置sql serveragent开启,进入sqlserver managermant studio,打开连接选择sqlserver代理进行开启
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服务中找到服务设置开机自启动。
如果是windos环境oracle数据库,可能需要设置自动延时启动,在oracle启动之后在进行启动,如果设置了延时启动ogg进程还是启动报错,报错如下图所示
那可以设置通过bat脚本文件进行开机自启。
网友评论