当前位置:Gxlcms > mysql > OracleGoldenGate学习教程三、加密

OracleGoldenGate学习教程三、加密

时间:2021-07-01 10:21:17 帮助过:27人阅读

从上周开始,我花了大量的业余时间阅读GoldenGate官方文档,并根据文档实践和进一步学习了解GoldenGate,以下便是根据官方文档理

阅读导航

写在开始前

  从上周开始,我花了大量的业余时间阅读GoldenGate官方文档,并根据文档实践和进一步学习了解GoldenGate,以下便是根据官方文档理解总结的GoldenGate学习内容:

Oracle GoldenGate 学习教程一:介绍和安装

Oracle GoldenGate 学习教程二、配置和使用

在[美] 莫提默·J.艾德勒,[美] 查尔斯·范多伦著的【How to Read a Book】一书中,作者强调如果你每天所学的知识你不能用你自己的语言去描述或记忆它,那说明你未真正学习和了解所学的知识,So 那以后我改变了我的学习方式,把生搬硬套的学习方式改变为用自己的语言用、自己的了解去描述和记忆知识,描述难免有错,请谅解,也请指导,谢谢!

1 加密的使用场景 2 GoldenGate提供的加密算法 3 产生密钥

必须先产生密钥并且保存在ENCKEYS LookUp文件中然后才能使用以下功能

产生密钥
切换到GoldenGate home 目录,使用KEYGEN工具产生密钥;语法:

./keygen >

key length 表示加密密钥的长度;
n 表示产生多少个key;

[oracle@sywu ogg_src]$ ./keygen 128 2 0xDEE44B0133536B0DA1B858620E4A240D 0x71DF8D01C352097FC76BBA31232DA95A

每一次产生的key都是不一样的,产生key后为每一个key定义一个名称(keyName)复制保存到GoldenGate home根目录的ENCKEYS文件内。ENCKEYS文件是一个lookup file。
保存key到ENCKEYS文件

[oracle@sywu ogg_src]$ vim ENCKEYS #GoldenGate encryption key #keyName key securekey1 0xDEE44B0133536B0DA1B858620E4A240D securekey2 0x71DF8D01C352097FC76BBA31232DA95A

在GGSCI命令行通过key对密码加密

GGSCI (sywu) 8> encrypt password ogg_owner aes128 encryptkey securekey1 Encrypted password: AADAAAAAAAAAAAJATJEEYELAGIQFZDWHQAMDMCCHGIVGFIPHOCABMAYCHGSCPHGILCPCLCXCCHUEFGOC Algorithm used: AES128 GGSCI (sywu) 9> encrypt password ogg_owner aes128 encryptkey securekey1 Encrypted password: AADAAAAAAAAAAAJANJBHVDBAGCCBOIUCTJHJVIOCVGBFSGNJFFAAGIOHBJNBWAPANGWILCPFGIXBOIXB Algorithm used: AES128

密码加密后可以尝试使用dblogin登录数据库,验证密码

GGSCI (sywu as ogg_owner@sydb) 11> dblogin userid ogg_owner,password AADAAAAAAAAAAAJANJBHVDBAGCCBOIUCTJHJVIOCVGBFSGNJFFAAGIOHBJNBWAPANGWILCPFGIXBOIXB aes128 encryptkey securekey1 Successfully logged into database.

注意:因为在创建key时指定了key的长度,所以使用时指定的加密类型密钥长度也必须一致。

4 源端加密配置

源端配置主抽取进程加密和Data Pump进程加密。

4.1 配置主抽取进程 GGSCI (sywu as ogg_owner@sydb) 31> EDIT PaRAM ESYDB001 extract ESYDB001 SETENV(ORACLE_SID="sydb") SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8) userid ogg_owner,password AADAAAAAAAAAAAJANJBHVDBAGCCBOIUCTJHJVIOCVGBFSGNJFFAAGIOHBJNBWAPANGWILCPFGIXBOIXB & aes128,ENCRYPTKEY securekey1 ENCRYPTTRAIL aes128,KEYNAME securekey1 EXTTRAIL /u01/app/product/ogg_src/dirdat/es table ogg_owner.togg;

userid 中将password由原来的明码用加密后的密码代替,后面指定加密类型和密钥名称(ENCRYPTKEY);
ENCRYPTTRAIL 指定trail文件的加密类型和密钥名称(KEYNAME);

4.2 配置Data Pump进程 GGSCI (sywu) 10> edit param PSYDB001 extract psydb001 SETENV(ORACLE_SID="sydb") SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8) userid ogg_owner,password AADAAAAAAAAAAAJANJBHVDBAGCCBOIUCTJHJVIOCVGBFSGNJFFAAGIOHBJNBWAPANGWILCPFGIXBOIXB aes128 encryptkey securekey1 DECRYPTTRAIL aes128 KEYNAME securekey1 RMTHOST sywu,mgrport 7909 ENCRYPTTRAIL aes128 KEYNAME securekey1 RMTTRAIL /u01/app/product/ogg_trg/dirdat/ps TABLE ogg_owner.togg;

因为Data Pump要读取主抽取进程保存的trail文件数据并且提供了对数据的操作功能如实现过滤、运算等复杂的工作,所以在读取后必须先对原数据进行解密再处理,最后再次加密发送到目标端;
DECRYPTTRAIL 定义将要解密的文件的加密类型和加密key(KEYNAME);
ENCRYPTTRAIL 定义最终处理后的数据加密类型和加密key(KEYNAME);
注意:解密类型和keyname必须和主进程配置的相同。
启动进程

GGSCI (sywu as ogg_owner@sydb) 42> start * Sending START request to MANAGER ... EXTRACT ESYDB001 starting EXTRACT PSYDB001 is already running. GGSCI (sywu as ogg_owner@sydb) 43> info all Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING ESYDB001 00:01:31 00:00:08 EXTRACT RUNNING PSYDB001 00:00:00 116:02:26 5 目标端解密配置

目标端后台Collector进程在接受到源端的发送请求后将数据写入到目标端trail文件中,再由replicat进程读取、解密、重构dml或ddl语句应用到数据库,so 如果源端配置了加密则目标端必须进行解密配置,并且解密的类型和key必须和源端相同,操作步骤:

发送源端ENCKEYS文件到目标端可以scp或复制粘贴到目标端,此处省略其操作。

5.1 Replicat进程配置解密操作 [oracle@sywu ~]$ tggsci Oracle GoldenGate Command Interpreter for Oracle Version 12.1.2.1.0 OGGCORE_12.1.2.1.0_PLATFORMS_140727.2135.1_FBO Linux, x64, 64bit (optimized), Oracle 11g on Aug 7 2014 09:14:25 Operating system character set identified as UTF-8. Copyright (C) 1995, 2014, Oracle and/or its affiliates. All rights reserved. GGSCI (sywu) 1> edit param RSYDB001 REPLICAT rsydb001 SETENV(ORACLE_SID="sydb") SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8) USERID ogg_trg,password AADAAAAAAAAAAAHABDQFVJMADCAFECACYEPIQEJCFGDGMDHBRJXCUBOBQJEGLBPEBDMCOAACDILGAJKA & aes128,ENCRYPTKEY securekey1 DISCARDFILE /u01/app/product/ogg_trg/discrd/reptr.desc,append,megabytes 512 DECRYPTTRAIL AES128, KEYNAME securekey1 ALLOWNOOPUPDATES ASSUMETARGETDEFS MAP OGG_OWNER.TOGG,target OGG_TRG.TOGG;

人气教程排行