久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何進行OGG中的審計

159次閱讀
沒有評論

共計 4049 個字符,預計需要花費 11 分鐘才能閱讀完成。

如何進行 OGG 中的審計,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

源表:

create table TB11(id number primary key,name varchar(10));

目標表:

create table TB11(id number primary key,name varchar(10), src_time date);

create table TB11_audit(id number,name varchar(10),src_time date, trg_time date,op_type varchar2(20),src_user varchar2(10));

源端:

GGSCI (pc6) 20 edit params ext_s1

extract ext_s1

setenv (NLS_LANG= AMERICAN_AMERICA.AL32UTF8)

setenv (ORACLE_SID= hyyk)

userid ogg,password oracle

gettruncates

exttrail /u01/app/oggs/dirdat/ss

table sender.tb11, TOKENS (TKN-USERNAME=@getenv( TRANSACTION , CSN

– 說明:在源端 extract 進程中使用 TOKEN 在 trail 文件頭部用戶 TOKEN 部分定義了一個變量:

TKN-USERNAME,這個變量的值是通過 @GETENV 來獲得當前 Goldengate 運行環境中和數據庫事務相關源端數據庫提交事務的用戶信息

目標端 replicat 進程(用于加時間戳):

GGSCI (ogg-80 as ogg@ogg) 144 view params rep_s1

replicat rep_s1

setenv(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)

setenv(ORACLE_SID= ogg)

userid ogg,password oracle

–handlecollisions

ASSUMETARGETDEFS

–SOURCEDEFS /u01/app/oggd/dirdef/test.def

DISCARDFILE ./dirrpt/rorabb.dsc,PURGE

userid ogg,password oracle

map sender.tb11,target receiver.tb11,

COLMAP (USEDEFAULTS,

SRC_TIME = @GETENV(GGHEADER , COMMITTIMESTAMP

說明:此時目標有 2 個 replicat 進程,這兩個進程讀的 trail 文件是同一份,這里是第一個進程:ggs_rep1,這個進程負責正常的數據復制,

即從源端的 TB11 表復制到目標的 TB11 表,只不過在目標的 TB11 表上多了一個字段 SRC_TIME(記錄源端事務提交的時間),因為多了一個字

段,這里就要調用 COLMAP 來做映射了,在 COLMAP 字句中使用 @GETENV 函數,該函數配置的參數是 GGHEADER 類別下的 COMMITTIMESTAMP 這個屬

性,而這個屬性就是用來獲取時間戳,即記錄事務提交的時間,格式為 YYY-MM-DD HH:MI:SS.FFFFFF。

目標 replicat 進程(用于審計):

REPLICAT ggs_rep2

USERID ogg, PASSWORD oracle

ASSUMETARGETDEFS

INSERTALLRECORDS

DISCARDFILE ./dirrpt/ggs_rep2.dsc, APPEND, MEGABYTES 1024

WILDCARDRESOLVE DYNAMIC

DYNAMICRESOLUTION

MAP SENDER.TB11, TARGET RECEVIER.TB11_AUDIT,

COLMAP (USEDEFAULTS,

SRC_TIME = @GETENV(GGHEADER , COMMITTIMESTAMP),

TRG_TIME = @DATENOW (),

OP_TYPE = @GETENV(GGHEADER , OPTYPE),

SRC_USER = @TOKEN (TKN-USERNAME

TRG_TIME = @DATENOW () –DATENOW 返回當前的日期和時間

add replicat ggs_rep2,exttrail /u01/app/oggd/dirdat/sd,checkpointtable ogg.ckpt

說明:這是目標第二個 replicat 進程,這個進程負責審計表的復制,即從源端的 TB11 表復制到目標審計表 TB11_AUDIT,前面也看到需求中的內容了,

審計表多了 4 個字段,分別用于記錄源端每個事務操作的時間、目標端提交的時間、源端的操作類型、源端數據庫用戶名。該進程參數文件中使用了

一個非常重要的參數:INSERTALLRECORDS,這個參數會讓復制進程插入對于目標端一條記錄所有的變化修改,即能起到審計的作用。同時在這個進

程中,使用 @GETENV 函數來獲取 goldengate 運行環境中的 GGHEADER 下的 COMMITTIMESTAMP(源端時間)和 OPTYPE(操作類型);使用 @DATENOW () 來獲

取目標端提交時間;使用 @TOKEN 函數來獲取源端定義在 trail 文件頭部定義的用戶令牌部分的變量 TKN-USERNAME 的值,即源端的數據庫用戶信息。

源端執行了以下 sql:

SQL insert into TB11 values(1, a

SQL commit;

SQL insert into TB11 values(2, a

SQL commit;

SQL update TB11 set name= c where id=2;

SQL commit;

SQL delete from TB11 where id=2;

SQL commit;

SQL update TB11 set id=2 where id=1;

SQL commit;

完成后,源端表查詢記錄如下:

SENDER@hyyk select * from tb11;

ID NAME

———- ———-

2 a

從目標表查詢的結果如下:

RECEIVER@ogg select * from tb11;

ID NAME       SRC_TIME

———- ———- ——————-

2 a      2018-03-16 11:41:34

SQL set linesize 200

RECEIVER@ogg select * from TB11_AUDIT;

ID NAME       SRC_TIME  TRG_TIME      OP_TYPE        SRC_USER

———- ———- ——————- ——————- ——————– ———-

1 a      2018-03-16 11:05:07 2018-03-16 11:27:51 INSERT                1849360

2 a      2018-03-16 11:31:00 2018-03-16 11:31:06 INSERT                1850347

c      2018-03-16 11:39:46 2018-03-16 11:39:52 SQL COMPUPDATE 1850679

2 c      2018-03-16 11:41:11 2018-03-16 11:41:19 DELETE        1850749

2      2018-03-16 11:41:34 2018-03-16 11:41:43 PK UPDATE               1850766

說明:目標端 TB11 表中的數據和源端保持一致,只是多了一列表示最后事務提交的時間;目標表 TB11_AUDIT 負責將源表所有的操作審計下來,其中最后兩行 name 字段沒有填充值進來,

是因為 TB11 表上有主鍵,對于刪除操作和鍵值更新的操作時,在日志中只有鍵值列相關的信息,如果需要顯示其他字段信息,就需要把這些字段都加入附加日志中去。同時 OP_TYPE 這

列中和 update 操作相關的有兩個值“SQL COMPUPDATE”和“PK UPDATE”, 分別表示了非鍵值列的更新和鍵值列的更新。

這里將審計表的列與 logdump 出來的 tiail 對比

ID NAME       SRC_TIME  TRG_TIME      OP_TYPE          SRC_USER

———- ———- ——————- ——————- ——————– ———-

1 a      2018-03-16 11:05:07 2018-03-16 11:27:51 INSERT                1849360

2018/03/16 11:05:07.932.429 Insert  Len    18 RBA 1972

Name: SENDER.TB11  (TDR Index: 1)

After  Image:                                             Partition 12   GU s

0000 0005 0000 0001 3100 0100 0500 0000 0161      | ……..1……..a

Column     0 (x0000), Len     5 (x0005)

0000 0001 31                                      | ….1

Column     1 (x0001), Len     5 (x0005)

0000 0001 61                                      | ….a

User tokens:   21 bytes

544b 4e2d 5553 4552 4e41 4d45 0031 3834 3933 3630 | TKN-USERNAME.1849360

00                                                | .

關于如何進行 OGG 中的審計問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-17發表,共計4049字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 乐平市| 日照市| 唐河县| 敖汉旗| 麻阳| 中江县| 灵宝市| 体育| 上思县| 景泰县| 芜湖县| 铅山县| 日照市| 揭东县| 西平县| 栾川县| 寿宁县| 融水| 理塘县| 老河口市| 太谷县| 华宁县| 华安县| 平罗县| 泰宁县| 洛浦县| 绥滨县| 永胜县| 长治市| 梧州市| 榕江县| 盘山县| 余姚市| 华容县| 阳江市| 荣昌县| 儋州市| 绩溪县| 祁阳县| 滨州市| 湖州市|