###OGG for sqlserver engryption && insert/deletesql
####1. 源端操做数据库
1.1 获取key
做为数据库用户密码加密app
d:\GoldenGate\gg>keygen 128 1 0xC6E1D0189BCF020DECDFF52DC23FCA39
做为抽取进程日志加密以及目投递进程加密的密钥 d:\GoldenGate\gg>keygen 192 1 0x0542696E32B8342A7E1EEF23CFC9F707C26D27726785C14Aide
1.2 建立秘钥文件
在ogg目录下d:\GoldenGate\gg>建立 ENCKEYS文件(注意:没有后缀名),文件内容:sqlserver
qktz_key 0xC6E1D0189BCF020DECDFF52DC23FCA39 key_extr 0x0542696E32B8342A7E1EEF23CFC9F707C26D27726785C14A
1.3 登录ggsci,产生加密值
d:\GoldenGate\gg>ggsci Oracle GoldenGate Command Interpreter for ODBC Version 11.1.1.0.0 Build 078 Windows (optimized), Microsoft SQL Server on Jul 28 2010 18:55:52 Copyright (C) 1995, 2010, Oracle and/or its affiliates. All rights reserved. GGSCI (WIN-T5DNTIITL4R) 3> encrypt password xxxxxxxxxx encryptkey xxxxxx Encrypted password: AACAAAAAAAAAAAQAPGTBCFPGTARDEAGGCHUCAGHBEIHDZILA
验证一下登陆测试
dblogin sourcedb dbxxxxx userid gg01 ,password AACAAAAAAAAAAAQAPGTBCFPGTARDEAGGCHUCAGHBEIHDZILA,encryptkey xxxxx Successfully logged into database.
建立测试表ui
create table u_test(id int primary key identity(1,1) ,tel nvarchar(20))
启用扩展日志加密
dblogin sourcedb dbxxxx userid gg01 ,password AACAAAAAAAAAAAQAPGTBCFPGTARDEAGGCHUCAGHBEIHDZILA,encryptkey xxxxx add trandata dbo.u_test --查看扩展状况信息 Info trandata dbo.u_test
1.4 配置源端EXTRACT 进程
DD EXTRACT 命令新建一个 EXTRACT 组 -- 基于日志方式,当即生效spa
GGSCI>add extract extrate ,tranlog,begin now
ADD EXTTRAIL 命令新建一个 local trail日志
GGSCI>add exttrail D:\GoldenGate\gg\dirdat\ex, extract extrate
1.5 编辑源端ogg抽取进程extrate的参数文件
edit param extrate
extract extrate sourcedb dbxxxx ,userid gg01, password AACAAAAAAAAAAAQAPGTBCFPGTARDEAGGCHUCAGHBEIHDZILA ,encryptkey xxxx --Encrypt My trail with AES192 ENCRYPTTRAIL AES192 KEYNAME key_extr exttrail D:\GoldenGate\gg\dirdat\ex COMPRESSUPDATES GETTRUNCATES numfiles 5000 DISCARDFILE D:\GoldenGate\gg\dirrpt\ext2.dsc, append, megabytes 100 WILDCARDRESOLVE DYNAMIC TRANLOGOPTIONS NOMANAGESECONDARYTRUNCATIONPOINT table dbo.u_test;
1.6源端开启抽取进程
注意:这里可能会报错:
2017-03-28 13:25:49 ERROR OGG-00868 Oracle GoldenGate Capture for ODBC, EXTRATE.prm: Supplemental logging is disabled for database 'chkjdb'. To enable logging, perform the following: 1) Set 'trunc. log on chkpt.' to false. 2) Create a full backup of the database. Please refer to the "Oracle GoldenGate For Windows and UNIX Administration Guide" for details.
是因为抽取程序开启时,SqlServer数据库须要有完整全备+的日志链,全部这里须要先全备一次 而后 作一第二天志备份
start extrate GGSCI (WIN-T5DNTIITL4R) 19> info all Program Status Group Lag Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING EXTRATE 00:00:00 00:00:03
1.7 配置源端PUMP投递进程
用add extract 新建本地trail文件 --注意:本地位置必须和抽取进程配置文件中的的rmttrail D:\GoldenGate\gg\dirdat\ex一致。
GGSCI>add EXTRACT pumprate ,EXTTRAILSOURCE D:\GoldenGate\gg\dirdat\ex,BEGIN NOW
用add rmttrail命令指定远端trail文件
GGSCI>add rmttrail D:\GoldenGate\gg\dirdat\ex extract pumprate
1.8 编辑源端ogg投递进程pumprate的参数文件
edit param pumprate
extract pumprate RMTHOST 192.168.0.x, MGRPORT 8001 PASSTHRU gettruncates wildcardresolve dynamic DECRYPTTRAIL AES128 KEYNAME qktz_key ENCRYPTTRAIL AES128 KEYNAME qktz_key RMTTRAIL D:\GoldenGate\gg\dirdat\ex table dbo.u_test;
由于Data Pump要读取主抽取进程保存的trail文件数据而且提供了对数据的操做功能如实现过滤、运算等复杂的工做,因此在读取后必须先对原数据进行解密再处理,最后再次加密发送到目标端; DECRYPTTRAIL 定义将要解密的文件的加密类型和加密key(KEYNAME); ENCRYPTTRAIL 定义最终处理后的数据加密类型和加密key(KEYNAME); 注意:解密类型和keyname必须和主进程配置的相同。 固然 若是仅仅只是投递 没有过滤运算等工做 能够不须要解密再加密
1.9源端开启投递进程
start pumprate GGSCI (WIN-T5DNTIITL4R) 43> info all Program Status Group Lag Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING EXTRATE 00:00:00 00:00:02 EXTRACT RUNNING PUMPRATE 00:00:00 00:00:00
####2. 目标端操做
2.1 建立秘钥文件
在ogg目录下d:\GoldenGate\gg>建立 ENCKEYS文件(注意:没有后缀名),文件内容:
key_repr 0x91BFD764AE5979206A20FB795D951D7F112DB138B5926B60
在目标端的秘钥存放文件中添加解密的key信息. 注意这里的key_repr和源端的pump进程的keyname 必须一致,不然replicat进程没法解析pump进程传递过来的队列文件
2.2 安装 GoldenGate
目录 D:\GoldenGate\gg\ 下 cmd 运行 ggsci CREATE SUBDIRS exit
2.3 安装服务,配置全局文件
D:\GoldenGate\gg\ ggsci --编辑全局文件 edit params ./GLOBALS 输入一下内容: MGRSERVNAME mgrtarget --安装服务 cd D:\GoldenGate\gg\ install ADDSERVICE AUTOSTART sc query mgrsouce ggsci dblogin sourcedb dbxxxx,userid gg01,password xxxxxxxx
2.4 目标数据库配置mgr,启动manager进程
D:\GoldenGate\gg\ ggsci GGSCI>EDIT PARAMS MGR --GoldenGate主进程端口号 PORT 8001 --GoldenGate为进程间通信动态分配的端口段,注意这里若是分配的端口段少于extract-replicat进程对的话,会致使部分进程因通信失败而出错。 DYNAMICPORTLIST 8001-8020 -- 指定Extract\Replicat进程的自动重启(每次尝试时间间隔为5秒,最多尝试5次) AUTORESTART ER *, WAITMINUTES 5, RETRIES 5 -- 自动回收旧的捕获文件 PURGEOLDEXTRACTS D:\GoldenGate\GG\dirdat\* ,usecheckpoints,minkeepdays 10 --查看mgr info mgr --开启mgr start mgr --新建检查电表和全局配置文件 --配置全局文件新增checkpointtable 属性 GGSCI>edit params ./GLOBALS CHECKPOINTTABLE dbo.checkpointtable exit --添加checkpointtable表 ggsci GGSCI>dblogin sourcedb 184, userid gg01, password ggpassword01 GGSCI>ADD CHECKPOINTTABLE dbo.checkpointtable
2.5配置目标端replicat进程
GGSCI>ADD replicat reprate EXTTRAIL D:\GoldenGate\gg\dirdat\ex, CHECKPOINTTABLE dbo.checkpointtable,begin now GGSCI>alter replicat reprate , begin 2017-03-29 06:00:00 ---编辑replicat进程参数文件并启动replicat进程 GGSCI>edit param reprate replicat reprate dboptions nolimitrows batchsql OPSPERBATCH 2000 targetdb 184,userid gg01,password ggpassword01 assumetargetdefs handlecollisions reperror default,discard numfiles 5000 DISCARDFILE D:\GoldenGate\gg\dirrpt\rt.dsc,append,megabytes 100 gettruncates wildcardresolve dynamic DECRYPTTRAIL AES192 KEYNAME key_repr --过滤delete,update IGNOREDELETES IGNOREUPDATES map dbo.u_test target dbo.u_test;
####3. 验证