OGG for sqlserver engryption && insert/delete

###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. 驗證

相關文章
相關標籤/搜索