OGG for sqlserver engryption && insert/delete

1. 源端操作

1.1 获取key

作为数据库用户密码加密

d:\GoldenGate\gg>keygen 128 1
0xC6E1D0189BCF020DECDFF52DC23FCA39

作为抽取进程日志加密以及目投递进程加密的密钥

d:\GoldenGate\gg>keygen 192 1

0x0542696E32B8342A7E1EEF23CFC9F707C26D27726785C14A

1.2 创建秘钥文件

在ogg目录下d:\GoldenGate\gg>创建 ENCKEYS文件(注意:没有后缀名),文件内容:

 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.

创建测试表

 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 组

-- 基于日志方式,立即生效

 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. 验证

OGG for sqlserver engryption && insert/delete的更多相关文章

  1. sqlserver触发器insert,delete,update

    Create Trigger [dbo].[upemployee_kefyu_sale] on [dbo].[employee] for update as if update(FullName) b ...

  2. [LeetCode] Insert Delete GetRandom O(1) - Duplicates allowed 常数时间内插入删除和获得随机数 - 允许重复

    Design a data structure that supports all following operations in average O(1) time. Note: Duplicate ...

  3. [LeetCode] Insert Delete GetRandom O(1) 常数时间内插入删除和获得随机数

    Design a data structure that supports all following operations in average O(1) time. insert(val): In ...

  4. 带有OUTPUT的INSERT,DELETE,UPDATE

    原文地址:http://blog.sina.com.cn/s/blog_71460d950100nld2.html OUTPUT是SQL SERVER2005的新特性.可以从数据修改语句中返回输出.可 ...

  5. Use Select To Generate Any Insert/Delete/Update Statement

    If you don't have the permission to generate script according to an existing db, but you have the re ...

  6. LeetCode 380. Insert Delete GetRandom O(1)

    380. Insert Delete GetRandom O(1) Add to List Description Submission Solutions Total Accepted: 21771 ...

  7. sql server 带有OUTPUT的INSERT,DELETE,UPDATE

    原文:sql server 带有OUTPUT的INSERT,DELETE,UPDATE OUTPUT是SQL SERVER2005的新特性.可以从数据修改语句中返回输出.可以看作是"返回结果 ...

  8. 381. Insert Delete GetRandom O(1) - Duplicates allowed

    Design a data structure that supports all following operations in average O(1) time. Note: Duplicate ...

  9. SQL server触发器中 update insert delete 分别给写个例子被。

    SQL server触发器中 update insert delete 分别给写个例子以及解释下例子的作用和意思被, 万分感谢!!!! 主要想知道下各个语句的书写规范. INSERT: 表1 (ID, ...

随机推荐

  1. 【网络】<网络是怎样连接的>笔记

    [一] 浏览器 http://user:pwd@hosturl:port/dir/of/file 基本思路: 1.1 生成http请求信息 包含“对什么”“进行怎样的操作”两个方法.一般常用操作是GE ...

  2. sysbench安装for oracle

    RHEL7.2+ 1.依赖包安装 * autoconf * automake * cdbs * debhelper (>= 9) * docbook-xml * docbook-xsl * li ...

  3. ip分包研究-以UDP为例

    原文 http://www.jianshu.com/p/741cb12ab0c9 测试环境: 利用iOS的NE从TUN抓取IP packets,如下代码分析ip包: uint16_t iphid = ...

  4. 从无到有开发自己的Wordpress博客主题---运行环境准备

    目前只做本地开发,只在本地搭建测试环境,最后会在服务器的CentOS中搭建正式环境,我使用的是Mac,最简单的办法就是安装MAMP. 1.下载并安装MAMP 下载地址:https://www.mamp ...

  5. mac 开启SSH服务

    SSH服务适用于所有类UNIX系统,例如Ubuntu.CentOS.RedHat,包括Mac OX,在这里简单介绍一下它的部分适用方法. 首先,介绍一下Mac OX,因为SSH在苹果系统上嵌入了,不需 ...

  6. android wifi 热点、socket通讯

    WiFi管理工具类 package com.wyf.app.common; import java.lang.reflect.InvocationTargetException; import jav ...

  7. 对django整个网站搭建文件的总结

    1.比方说现在是写一个使用HTTP 2.0的HTTP服务器,在不改变现有程序配置的情况下,需要重新编译HTTP服务器,比方说,用的是Nginx服务器,需要隐藏服务器版本,如果想要小绿锁 也就是网站安全 ...

  8. 常用的文件数据类型mime

    有时在编程中会用到文件的类型,比如http的请求或相应header头信息,文件上传时自定义头信息等. ai application/postscript aif audio/x-aiff aifc a ...

  9. hadoop之 Zookeeper 分布式应用程序协调服务

    (1) Zookeeper 在 Hadoop 集群中的作用 Zookeeper 是分布式管理协作框架,Zookeeper 集群用来保证 Hadoop 集群的高可用,(高可用的含义是:集群中就算有一部分 ...

  10. Arcmap10.1下安装ArcBrutile0.2.2 (Win7)(转)

    前阵子换了高级新电脑,用的win7旗舰版装了Arcgis10.1,一直没试过ArcBrutile0.2.2能不能用,今天想用的时候发现自己竟然忘记怎么加载这个工具了!!!   网上搜了一下,度娘今天不 ...