• OGG for sqlserver engryption && insert/delete


    OGG for sqlserver engryption && insert/delete

    1. 源端操作

    1.1 获取key

    作为数据库用户密码加密

    d:GoldenGategg>keygen 128 1
    0xC6E1D0189BCF020DECDFF52DC23FCA39
    

    作为抽取进程日志加密以及目投递进程加密的密钥
    d:GoldenGategg>keygen 192 1
    0x0542696E32B8342A7E1EEF23CFC9F707C26D27726785C14A

    1.2 创建秘钥文件

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

     qktz_key  0xC6E1D0189BCF020DECDFF52DC23FCA39
    
     key_extr  0x0542696E32B8342A7E1EEF23CFC9F707C26D27726785C14A
    
    1.3 登陆ggsci,产生加密值
     d:GoldenGategg>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:GoldenGateggdirdatex, 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:GoldenGateggdirdatex
    COMPRESSUPDATES
    GETTRUNCATES
    numfiles 5000
    DISCARDFILE  D:GoldenGateggdirrptext2.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:GoldenGateggdirdatex一致。

    GGSCI>add EXTRACT pumprate ,EXTTRAILSOURCE D:GoldenGateggdirdatex,BEGIN NOW
    

    用add rmttrail命令指定远端trail文件

    GGSCI>add rmttrail  D:GoldenGateggdirdatex 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:GoldenGateggdirdatex
    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:GoldenGategg>创建 ENCKEYS文件(注意:没有后缀名),文件内容:

     key_repr  0x91BFD764AE5979206A20FB795D951D7F112DB138B5926B60 
    

    在目标端的秘钥存放文件中添加解密的key信息. 注意这里的key_repr和源端的pump进程的keyname 必须一致,否则replicat进程无法解析pump进程传递过来的队列文件

    2.2 安装 GoldenGate
    目录 D:GoldenGategg 下
    cmd  运行 ggsci
    CREATE SUBDIRS
    
    exit  
    
    2.3 安装服务,配置全局文件
    D:GoldenGategg
    ggsci
    
    --编辑全局文件
    edit params ./GLOBALS
    输入一下内容:
    MGRSERVNAME mgrtarget
    
    --安装服务
    cd D:GoldenGategg  
    install ADDSERVICE AUTOSTART
    
    sc query mgrsouce
    
    ggsci
    
    dblogin sourcedb  dbxxxx,userid gg01,password xxxxxxxx
    
    2.4 目标数据库配置mgr,启动manager进程
    D:GoldenGategg
    ggsci
    GGSCI>EDIT PARAMS MGR
    
    --GoldenGate主进程端口号
    PORT 8001
    --GoldenGate为进程间通讯动态分配的端口段,注意这里如果分配的端口段少于extract-replicat进程对的话,会导致部分进程因通讯失败而出错。
    DYNAMICPORTLIST 8001-8020
    -- 指定ExtractReplicat进程的自动重启(每次尝试时间间隔为5秒,最多尝试5次)
    AUTORESTART ER *, WAITMINUTES 5, RETRIES 5
    -- 自动回收旧的捕获文件
    PURGEOLDEXTRACTS D:GoldenGateGGdirdat* ,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:GoldenGateggdirdatex, 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:GoldenGateggdirrpt
    t.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. 验证

  • 相关阅读:
    Hadoop大数据单词统计
    selenium 框架
    uniapp开发知识点记录
    企业微信开发H5如果获取当前用户的信息
    Java面试题(10)消息中间件MQ
    Java面试题(7)分布式
    Java面试题(8)Zookeeper
    几种消息队列的比较
    Java面试题(9) Springcloud组件介绍
    js中的toString()方法
  • 原文地址:https://www.cnblogs.com/chinesern/p/8342437.html
Copyright © 2020-2023  润新知