1. 程式人生 > >Linux下Oracle GoldenGate(OGG)的配置

Linux下Oracle GoldenGate(OGG)的配置

返回YES或IMPLICIT表示附加日誌被開啟。
3. 回收站
在gg 11之前版本需要關閉回收站才能完成DDL同步
在gg 11 版本開始可以開啟回收站也能完成DDL同步


SQL> select value from v$parameter where name='recyclebin';


VALUE
--------------------------------------------------------------------------------
on


on 表示開啟回收站
off 表示關閉回收站
關閉回收站
SQL> alter system set recyclebin=off scope=spfile;
System altered.
如果你不配置DDL同步的本步驟可以不做
Recyclebin 在 10.1 中是隱含引數,關掉 recyclebin 的命令為:
SQL>ALTER SYSTEM SET “_ recyclebin” = false;
4. GG軟體使用者設定
gg使用者有2種:


管理使用者
管理使用者是管理,維護GG軟體的使用者,此使用者必須在後臺數據庫建立起來,並分配必要的許可權。管理使用者需要在原資料端建立,也需要在目標資料端建立。而原資料端與目標資料端需要的許可權最小化也不相同。為了方便可以授予dba許可權,甚至不建立管理使用者,直接使用system使用者。


資料使用者  
資料使用者是gg執行中資料載入,資料同步的使用者。比如需要將scott使用者資料載入與同步到s1使用者下。scott為原資料端使用者,s1為目標資料端使用者。資料使用者存在就可以了,但管理使用者必須有相應操作資料使用者的許可權。 比如原資料端管理使用者至少有查詢,修改,閃回資料使用者物件的許可權,目標資料端管理使用者至少需要dml操作資料使用者的許可權.
在源端和目標端建立 GoldenGate 管理使用者,並授予下列許可權。
SQL>create tablespace ggdata datafile '$ORACLE_BASE/oradata/$ORACLE_SID/ggdata01.dbf' size 200m;
SQL>create userggs identified by ggm default tablespace ggdata;
SQL>grant connect,resource,unlimited tablespace to ggm ; SQL>grant execute on utl_file to ggm;
在源端還需要授予 ggm 使用者以下許可權:
SQL>grant connect,resource to ggm ;
SQL>grant select any dictionary,select any table to ggm;
SQL>grant alter any table to ggm;
SQL>grant flashback any table to ggm;
SQL>grant execute on DBMS_FLAHBACK TO ggm;
在目標端需要授予 ggm 使用者以下許可權:
grant insert any table to ggm; 
grant delete any table to ggm; 
grant update any table to ggm;


上面的 insert、delete、update 沒有指定模式,表示在所有模式都能進行 insert、 delete、update 操作。


原資料端使用者設定   略
目標資料端使用者設定 略
5. 新增表級的transdata
這裡的表級的 trandata 就是指表級的 supplemental log。
表級supplemental log 需要在資料庫級別最小supplemental log 開啟的情況下才起作用。如果資料庫沒有開啟 minimal supplemental log,即使指定了表級supplemental log,實際在redo log 輸出描述的記錄仍只記錄rowid和相關列值,所以我們還需要同時開啟表級的transadata。新增表級的 transdat 可以理解為你需要將源端的哪些schema下的哪些表傳輸到目標庫中,那麼就需要你手動新增這些transdata。按照上一小節的內容建立GoldenGate管理使用者並授予必要的許可權之後,就可以使用dblogin 登入資料庫,然後新增特定表的trandata。


操作步驟如下:


在 scott 使用者下建立一張表 demo,用來作為需要同步的表:

圖片


對這個表新增 trandata:

圖片


提示:在對錶新增 trandata 的時候,表名可以使用萬用字元。例如如果我要新增 scott 使用者下所有的表,則語句可以這樣寫:


GGSCI(source 4) add trandata scott.*;
查看錶有沒有附加日誌:
GGSCI(source 5) info trandata scott.*;
enabled 表示開啟附加日誌
disabled 表示沒開啟附加日誌
當然也可以在oracle中執行sql命令增加附加日誌