OGG 安全特性--加密trail檔案

來源:互聯網
上載者:User

GoldenGate軟體已經被很多大型企業用於資料容災。如果用作異地備份容災,很多是需要通過租用公網的線路進行傳輸,而這些資料很多都是企業的機密,為了防止機密資料被駭客擷取進而損害企業的利益,需要對GoldenGate的安全做一些增強。

除了通過制定作業系統和資料庫層級安全防範措施以外,還可以在GoldenGate層面來制定相應的安全性原則。在本地可以通過加密trail檔案和資料庫檔案來保護GoldenGate抽取到的資料。在網路傳輸過程中GoldenGate也可以加密傳輸的資料,使用者可以自己定義key來加密資料,使得駭客就算擷取了資料也無法對其解密。

下面來一一介紹著幾種保護GoldenGate和資料安全的方法。


一、加密trail檔案

加密extract trail檔案非常的簡單,只需要在Extract參數檔案中加入ENCRYPTTRAIL參數。Extract進程就會對加入參數以後產生的trail檔案進行加密。如果生產端trail檔案加密,那麼在容災端參數檔案中必須加入對應的DECRYPTTRAIL參數解密trail檔案再入庫。

下面用logdump查看GoldenGate trial檔案的工具)對比一下加密之前和加密以後trail檔案中內容的變化。


沒加密之前Extract的內容:

樣本1:

GGSCI OE5) 55> view params extma

EXTRACT extma

userid GoldenGate@orcl1, password GoldenGate

setenv NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

GETTRUNCATES

REPORTCOUNT EVERY 1 MINUTES, RATE

numfiles 50000

DISCARDFILE ./dirrpt/extma.dsc,APPEND,MEGABYTES 50

WARNLONGTRANS 2h,CHECKINTERVAL 3m

EXTTRAIL ./dirdat/ma

DBOPTIONS ALLOWUNUSEDCOLUMN

TRANLOGOPTIONS  CONVERTUCS2CLOBS

DYNAMICRESOLUTION

table scott.* ;


沒加密之前Extract trail檔案的內容:

樣本2:

Logdump 55 >open ./dirdat/ma000001

Current LogTrail is /opt/GoldenGate/orcl1/dirdat/ma000001

Logdump 56 >ghdr on

Logdump 57 >detail data

Logdump 58 >ggstoken detail

Logdump 59 >pos 0

Reading forward from RBA 0

Logdump 60 >n

Logdump 65 >n

___________________________________________________________________

Hdr-Ind  :     E  x45)   Partition  :     .  x04)

UndoFlag :     .  x00)   BeforeAfter:     A  x41)

RecLength:    23  x0017)I/O Time   : 2011/03/22 00:09:39.000.000

IOType    :     5  x05)  OrigNode  :   255  xff)

TransInd  :     .  x00)  FormatType:     R  x52)

SyskeyLen :     0  x00)  Incomplete:     .  x00)

AuditRBA  :          2     AuditPos  : 29881732

Continued :     N  x00)  RecCount  :     1  x01)

2011/03/22 00:09:39.000.000 Insert          Len    23 RBA 1391

Name: SCOTT.TEST

After  Image:                                   Partition 4   G  b

0000 0005 0000 0001 3100 0100 0a00 0000 066f 7261| ……1……ora

636c 65                                           | cle

Column     0 x0000), Len     5 x0005)

0000 0001 31                                      | …1

Column     1 x0001), Len    10 x000a)

0000 0006 6f72 6163 6c65                          | …oracle  --可以明顯的看到單詞


GGS tokens:

TokenID x52 'R' ORAROWID         Info x00  Length   20

4141 414d 3058 4141 4541 4141 4147 5741 4141 0001| AAAM0XAAEAAAAGWAAA

TokenID x4c 'L' LOGCSN           Info x00  Length    6

3438 3937 3831                                    | 489781

TokenID x36 '6' TRANID           Info x00  Length    8

392e 3130 2e32 3939                               | 9.299


接下來再在參數檔案中加入ENCRYPTTRAIL參數,使其對trail檔案加密:

樣本3:

GGSCI OE5) 55> view params extma

EXTRACT extma

userid GoldenGate@orcl1, password GoldenGate

setenv NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

GETTRUNCATES

REPORTCOUNT EVERY 1 MINUTES, RATE

numfiles 50000

DISCARDFILE ./dirrpt/extma.dsc,APPEND,MEGABYTES 50

WARNLONGTRANS 2h,CHECKINTERVAL 3m

ENCRYPTTRAIL

EXTTRAIL ./dirdat/ma

DBOPTIONS ALLOWUNUSEDCOLUMN

TRANLOGOPTIONS  CONVERTUCS2CLOBS

DYNAMICRESOLUTION

table scott.* ;


再查看加密後產生的Extract trail檔案內容:

樣本4:

Logdump 66 >open ./dirdat/ma000002

Current LogTrail is /opt/GoldenGate/orcl1/dirdat/ma000002

Logdump 67 >ghdr on

Logdump 68 >detail data

Logdump 69 >ggstoken detail

Logdump 74 >n

___________________________________________________________________

Hdr-Ind   :     E  x45)   Partition  :     .  x04)

UndoFlag  :     .  x00)   BeforeAfter:     A  x41)

RecLength :    24  x0018)I/O Time   : 2011/03/22 00:35:13.000.000

IOType    :     5  x05)   OrigNode   :   255  xff)

TransInd  :     .  x01)   FormatType:     R  x52)

SyskeyLen :     0  x00)   Incomplete:     .  x00)

AuditRBA  :          2      AuditPos  : 31891236

Continued :     N  x00)   RecCount  :     1  x01)

2011/03/22 00:35:13.000.000 Insert         Len    24 RBA 1212

Name: SCOTT.TEST

After  Image:                                    Partition 4   G  m

5e50 86ba af70 962b cc52 5bf9 a3f7 9760 7eda abd0| ^P…p.+.R[…`~…


–加密後看到的是不可識別的密文

c092 111e                                         | …

Bad compressed block, found length of 34490 x86ba), RBA 1212

GGS tokens:

TokenID x52 'R' ORAROWID         Info x00  Length   20

4141 414d 3058 4141 4541 4141 4147 5741 4130 0001| AAAM0XAAEAAAAGWAA0


加密後容災端進程abend。



下面是容災端進程的參數和錯誤資訊:

樣本5:

GGSCI OE5) 3> view params repma

REPLICAT repma

USERID GoldenGate@orcl2, PASSWORD GoldenGate

setenv NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

--REPORT AT 01:59

REPORTCOUNT EVERY 30 MINUTES, RATE

REPERROR DEFAULT, abend

numfiles 50000

DBOPTIONS ALLOWUNUSEDCOLUMN

MAXTRANSOPS   500000

GROUPTRANSOPS 10000

CHECKPOINTSECS 40

--HANDLECOLLISIONS

assumetargetdefs

DISCARDFILE ./dirrpt/repma.dsc, APPEND, MEGABYTES 50

GETTRUNCATES

ALLOWNOOPUPDATES

map scott.* , target scott.* ;

-----ERROR資訊―――――――

Source Context :

SourceModule         : [ggstd.conv.endian]

SourceID            : [/mnt/ecloud/workspace/Build_FBO_OpenSys_r11.1.

1.0.11_001_[41228]/perforce/src/gglib/ggstd/

lecnv.c]

SourceFunction       : [convCompSQL]

SourceLine            : [531]

ThreadBacktrace      : [9] elements

: [/opt/GoldenGate/orcl2/replicatCMessageContext::

AddThreadContext)+0x26) [0x82021d6]]

: [/opt/GoldenGate/orcl2/replicatCMessageFactory::

CreateMessageCSourceContext*, unsigned int, …)  +0x817) [0x81f8887]]

: [/opt/GoldenGate/orcl2/replicat_MSG_ERR_MAP_

COL_INDEX_INVALIDCSourceContext*, DBString<777>   const&, int, int, CMessageFactory::Message-

Disposition)+0x8b) [0x81d6c4b]]

: [/opt/GoldenGate/orcl2/replicat [0x84aa2bc]]

: [/opt/GoldenGate/orcl2/replicatggConvRecLEchar*,

file_def*, int, char, char)+0x4d) [0x84aa3bd]]

: [/opt/GoldenGate/orcl2/replicat [0x849dd2d]]

: [/opt/GoldenGate/orcl2/replicatmain+0x1f8b)    [0x812670b]]

: [/lib/libc.so.6__libc_start_main+0xdc)    [0x68de8c]]

: [/opt/GoldenGate/orcl2/replicat__gxx_   personality_v0+0x1b5) [0x810a171]]

2011-03-22 00:36:37  ERROR   OGG-01161  Bad column index 24144) specified for table SCOTT.TEST, max columns = 2.

根據錯誤資訊猜測是由於抽取進程加密了trail檔案,Replicat進程無法還原為真實的資訊,導致了進程abend。


下面在容災端參數檔案中加入DECRYPTTRAIL參數,讓其對trail檔案解密並查看進程的狀態:

樣本6:

GGSCI OE5) 3> view params repma

REPLICAT repma

USERID GoldenGate@orcl2, PASSWORD GoldenGate

setenv NLS_LANG="AMERICAN_AMERICA.WE8ISO8859P1")

--REPORT AT 01:59

REPORTCOUNT EVERY 30 MINUTES, RATE

REPERROR DEFAULT, abend

DECRYPTTRAIL    -----加入解密參數

numfiles 50000

DBOPTIONS ALLOWUNUSEDCOLUMN

MAXTRANSOPS   500000

GROUPTRANSOPS 10000

CHECKPOINTSECS 40

--HANDLECOLLISIONS

assumetargetdefs

DISCARDFILE ./dirrpt/repma.dsc, APPEND, MEGABYTES 50

GETTRUNCATES

ALLOWNOOPUPDATES

map scott.* , target scott.* ;

GGSCI OE5) 14> info all

Program     Status      Group       Lag           Time Since Chkpt

MANAGER

REPLICAT    RUNNING     REPMA       00:00:00      00:00:03

加入解密參數後重新啟動Replicat進程,Replicat進程顯示running狀態。


oracle視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.