OGG账号成功连接数据库了,说明加过密的口令是能正常工作。接下来就是要修改Extract或Replicat的配置文件了。修改也很简单,就是将USERID这一行的内容修改下就可以了:
...
SETENV (Oracle_HOME=/u01/app/oracle/product/11.2.0/db_1)
SETENV (ORACLE_SID=ggtest)
--USERID OGG, PASSWORD OGG123
USERID OGG, PASSWORD AADAAAAAAAAAAAGASBQGIAYGCFRCWELGFJMHBHHDOHWDWGRBBCKCYFSGGJTEJFFJUBQFKESGNAVBRDTF, ENCRYPTKEY PASSWDKEY
EXTTRAIL /data/ggate/dirext/ggtest/ea
...
然后将Extract获Replicat进程起来能正常工作就表示完成口令加密的配置了。
Trail文件加密
Trail文件加密,就是将Extract进程解析出来的数据以加密的形式存放在trail文件中(注意不是对整个trail文件进行加密)。不加密的时候数据是以明文的形式存放在trail文件中的(这不是废话么,呵呵)。打开trail文件就可以观察到数据:
或者用logdump工具可以更方便的观察到数据:
如果是加过密的,那数据就是一团乱码了:
即使用logdump工具,也是只能观察到乱码的数据:
这样数据的安全性就有了很好的保障。Trail文件加密适合对数据安全性要求比较高的情形。Trail文件加密的使用模式主要有以下两种:
使用模式1:
使用模式2:
这两者的区别在于,模式1的trail在Extract进程加密后,Pump进程不做任何处理,直接将加密过的数据传送给目标,目标经过解密后将数据应用到目标库。这种模式适合Pump进程只是做传输,而不需要进行如数据过滤、转换等操作的情形。模式2的trail在Extract进程加密后,Pump进程先对trail进行解密,然后又重新加密,再将重新加密后的数据传送给目标,目标经过解密后将数据应用到目标库。这种模式适合Pump进程需要先对数据进行如过滤、转换等操作的情形。
配置Trail文件加密也是非常容易,首先还是生成密钥文件(见口令加密一节中关于密钥文件的内容)。然后修改Extract和Replicat的配置:
# Extract进程配置文件中增加ENCRYPTTRAIL内容
...
SETENV (ORACLE_SID=ggtest)
USERID OGG, PASSWORD AADAAAAAAAAAAAGASBQGIAYGCFRCWELGFJMHBHHDOHWDWGRBBCKCYFSGGJTEJFFJUBQFKESGNAVBRDTF, ENCRYPTKEY PASSWDKEY
ENCRYPTTRAIL AES128 KEYNAME TRAILKEY
EXTTRAIL /data/ggate/dirext/jet2/ea
DISCARDFILE /u01/app/oracle/product/ggate/current/dirrpt/EJET2.dsc, APPEND, MEGABYTES 500
FETCHOPTIONS FETCHPKUPDATECOLS
...
需要注意的是ENCRYPTTRAIL的位置必须要在EXTTRAIL之前。如果把ENCRYPTTRAIL配置在EXTTRAIL之后,那么Extract进程也能正常工作,只是没起到加密作用。
# Replicat进程配置文件中增加DECRYPTTRAIL内容
...
SHOWSYNTAX
DYNSQL
DBOPTIONS DEFERREFCONST
DECRYPTTRAIL AES128 KEYNAME TRAILKEY
MAP JET2.*, TARGET JET2.*;
...