goldengate OGG引數規範

quanshengaa發表於2016-06-20
goldengate OGG引數規範

如果goldengate安裝在unix或者linux作業系統下,則建議以oracle系統使用者進行安裝。如果使用其他使用者進行安裝,則需要確保該使用者在dba組中,以確保該使用者具備讀取redo和歸檔日誌的系統許可權;
注:
1) Goldengate軟體建議安裝在伺服器Server/goldengate路徑下,該目錄的屬主為oracle:dba,許可權為775;
2)/goldengate目錄一般是建立在共享儲存上,這樣實際上goldengate的軟體和相應的檔案如引數檔案,佇列檔案等都是在共享儲存上的。這樣做的好處是,例如在RAC環境下,如果一臺服務區當機,則可以將/goldengate mount到另外一個正常的rac節點上,啟動goldengate各個程式就可以了,不需要做任何其他的動作。






3.      附錄2開啟DDL複製(在實施DML複製之後)
如果系統當前已經完成了Goldengate的DML複製實施(請確保DML實施遵循了本實施規範,開啟的是資料庫一級的PK,UI,FK,而不是在表一級實行add trandata的操作),並且正在執行,想在此基礎上開啟DDL複製,則需要按照本節介紹的步驟進行相應的操作。

3.1.  準備工作
1)       明確在配置DML時所建立的golengate的使用者名稱,密碼,表空間以及許可權等資訊;參考本文件的2.3.4小節部分內容。
2)       在配置DDL時,停止目前正在執行的goldengate所有程式,如mgr,extract,datapump,以及目標端的replicat程式
3)       在配置DDL時,生產端的資料庫所有的session連線都應該退出(強烈建議);

3.2.  解除安裝DDL配置(可選)
如果之前曾經安裝過ddl,需要重新進行安裝,則需要先將ddl的一些元件解除安裝掉,然後再重新安裝:
依次在OGG的根目錄執行
1)       切換到Goldengate安裝目錄下,並且按照順序以SYS使用者依次執行以下指令碼:
2)       SQLPLUS SYS/ORACLE@ORCL  @./ddl_disable.sql
3)       SQL>/goldengate/ddl_remove.sql
4)       SQL>/goldengate/marker_remove.sql
注:在執行上述指令碼的時候,會提示輸入安裝時所指定的schema名稱。

3.3.  配置資料庫級別的附加日誌

以下指令碼用以查詢和開啟資料庫級別的附加日誌資訊,
conn /as sysdba

SQL>Select SUPPLEMENTAL_LOG_DATA_MIN,SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI,SUPPLEMENTAL_LOG_DATA_FKfrom v$database;

SQL>alterdatabase add supplemental log data;

SQL>alterdatabase add supplemental log data (PRIMARY KEY,FOREIGN KEY,UNIQUE) columns;

--附加日誌開啟以後,正常需要執行一次歸檔操作,以使附加日誌即時生效:

SQL>ALTERSYSTEM ARCHIVE LOG CURRENT;

--ALL COLUMNS的附加日誌不建議開啟:
SQL>alter database add supplemental log data (ALL) columns;
--以下為取消資料庫級別附加日誌的方法:
SQL>alter database drop supplemental log data;
SQL>alter database drop supplemental log data(PRIMARY KEY,FOREIGN KEY,UNIQUE) columns;
SQL>alter database drop supplemental log data(ALL) columns;

注:正常需要切換一次redo,以確保附加日誌即時生效

3.4.  刪除表級別的附加日誌
如果在實施DML操作時,曾經新增過表級別的附加日誌資訊,如:
--在ggsci的介面中執行:
Ggsci>addtrandata scott.table1;
--或者在sql介面中執行以下sql語句:
SQL>alter tablescott.t1 add supplemental log data (primary key, unique, foreign key) columns;
都是在表一級開啟的附加日誌資訊。
因為已經開啟了資料庫級別的附加日誌資訊,所以對錶級別的附加日誌配置進行清除,使用以下指令碼可以生成批次可執行的sql語句:
Conn / as sysdba
Sql>set line200
Sql>set headoff
Sql>Spooldroptrandata.sql
Sql>select'alter table '||owner|| '.' ||table_name|| ' drop supplemental log group '||log_group_name||';' from dba_log_groups where dba_log_groups.owner  in (’SAPSR3’,’xxx’);
Sql>spool off
--確認指令碼儲存路徑,如/home/oracle
--在sys使用者下執行droptrandata.sql指令碼,清除表級別的附加日誌資訊:
Sql>@/home/oracle/droptrandata.sql
           
3.5.  編輯GLOBALS引數檔案

這裡直接建立在goldengate使用者下:
Ggsci>EDITPARAMS ./GLOBALS
GGSCHEMAgoldengate

3.6.  關閉資料庫的recyclebin
SQL> showparameter recyclebin

NAME                                 TYPE        VALUE
----------------------------------------------- ------------------------------
recyclebin                           string      OFF
--如不是off,需要關閉recyclebin:
SQL>altersystem set recyclebin=off scope=both;
3.7.  停止資料庫的所有Session
OGG的DDL物件安裝時不能有執行的sessoin存在,請DBA執行停機清理或者殺死所有資料庫中的Session。
建議有條件先執行停止業務,並關閉Oracle的Listener。

3.8.  建立OGG的DDL物件

sqlplus "/ assysdba"
SQL>@marker_setup.sql
Enter GoldenGateschema name:goldengate

SQL>@ddl_setup.sql
Enter GoldenGateschema name:goldengate

SQL>@role_setup.sql

Grant this role toeach user assigned to the Extract, Replicat, GGSCI, and Manager processes, byusing the following SQL command:

GRANTGGS_GGSUSER_ROLE TO <loggedUser>

where<loggedUser> is the user assigned to the GoldenGate processes.

注意這裡的提示:它需要你手工將這個GGS_GGSUSER_ROLE指定給你的extract所使用的資料庫使用者(即引數檔案裡面透過userid指定的使用者),可以到sqlplus下執行類似的sql:
GRANT GGS_GGSUSER_ROLETO goldengate;
這裡的goldengate是extract使用的使用者。如果你有多個extract,使用不同的資料庫使用者,則需要重述以上過程全部賦予GGS_GGSUSER_ROLE許可權。


3.9.  安裝提升效能工具
本步驟為可選步驟。
為了提供OGG的DDL複製的效能,可以將ddl_pin指令碼加入到資料庫啟動的指令碼後面,該指令碼需要帶一個OGG的DDL使用者(即安裝DDL物件的使用者,本例中是goldengate)的引數:
SQL> @ddl_pin<DDL_user>

3.10. 配置OGG程式中DDL引數
GoldenGate的data pump程式和replicat的ddl開關預設是開啟的,只有主extract是預設關閉的,所以DDL的配置要在extract程式中配置;同時因為replicat程式預設是所有DDL都複製,如果有多個replicat程式,如果在引數中不進行復制範圍限制,必然引起DDL的重複複製,所以在replicat程式中也需要進行配置。
Extract中需要新增的配置引數:
DDL &
INCLUDE MAPPEDOBJTYPE 'table' &
INCLUDE MAPPED OBJTYPE'index' &
EXCLUDE OPTYPECOMMENT
DDLOPTIONS  NOCROSSRENAME REPORT 
Replicat中需要新增的配置引數:
DDL include mapped
DDLOPTIONS report

3.11. MGR的配置(只需配置源端)
另外,在mgr裡面加入自動purge ddl中間表的引數:
PURGEDDLHISTORYMINKEEPDAYS 3, MAXKEEPDAYS 7
PURGEMARKERHISTORYMINKEEPDAYS 3, MAXKEEPDAYS 7

3.12. 刪除系統已有的OGG程式和佇列,重新新增
GGSCI>delete er*
進入dirdat目錄,刪除裡面的所有佇列檔案,進入dirrpt目錄,刪除裡面的所有日誌檔案
GGSCI>add extextea,tranlog ,begin now
GGSCI>addexttrail ./dirdat/ea,ext extea,megabytes 200
GGSCI>add extdpeea,exttrailsource ./dirdat/ea
GGSCI>add rmttrail./dirdat/ea,ext dpeea,megabytes 200

GGSCI>alterrepea,extseqno 0,extrba 0
GGSCI>alterrepeb,extseqno 0,extrba 0
GGSCI>alterrepec,extseqno 0,extrba 0
3.13. 啟動OGG DDL捕捉的trigger
在sqlplus裡面執行ddl_enable.sql指令碼啟用ddl捕捉的trigger。
說明:ddl捕捉的trigger與OGG的extract程式是相互獨立的,它並不依賴於extract程式存在。即使OGG的extract程式不存在或者沒有啟動,但是trigger已經啟用了,那麼捕捉ddl的動作就一直延續下去。如想徹底停止捕捉DDL捕捉,需要禁用ddl的trigger,此時需要執行ddl_disable.sql
1)       啟動OGG的ext資料抽取程式,等抽取程式開始工作後,進行系統資料庫熱備份,具體方法參考資料庫熱備方案。
2)       在容災中心的資料庫上禁用外來鍵、觸發器、級聯刪除、帶有dml操作的JOB,參考本文件的2.5.4部分。
3)       啟動OGG所有程式
注意:啟動容災中心的REP程式的時候,使用如下的啟動命令
GGSCI>startrepea,aftercsn <recover時候指定的SCN>
GGSCI>startrepeB,aftercsn <recover時候指定的SCN>
GGSCI>startrepeC,aftercsn <recover時候指定的SCN>
GGSCI>startrepeD,aftercsn <recover時候指定的SCN>
--轉載劉相兵

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15797451/viewspace-2120448/,如需轉載,請註明出處,否則將追究法律責任。

相關文章