goldengate OGG引數規範
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. 準備工作
3.2. 解除安裝DDL配置(可選)
如果之前曾經安裝過ddl,需要重新進行安裝,則需要先將ddl的一些元件解除安裝掉,然後再重新安裝:
依次在OGG的根目錄執行
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
GGSCI>startrepea,aftercsn <recover時候指定的SCN>
GGSCI>startrepeB,aftercsn <recover時候指定的SCN>
GGSCI>startrepeC,aftercsn <recover時候指定的SCN>
GGSCI>startrepeD,aftercsn <recover時候指定的SCN>
--轉載劉相兵
如果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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- goldengate規範Go
- beego 前後端引數規範Go後端
- API介面通訊引數規範API
- ogg引數解析
- API介面通訊引數規範(2)API
- GOLDENGATE常用引數Go
- OGG引數詳解
- goldengate的HANDLECOLLISIONS引數Go
- goldengate的ASSUMETARGETDEFS引數Go
- JSR規範,系統引數測試大全JS
- OGG -FILTER 引數過濾Filter
- OGG:ALLOWNOOPUPDATES,NOALLOWNOOPUPDATES 引數概念OOP
- GoldenGate 基本引數含義Go
- HANDLECOLLISIONS :GoldenGate Replicat的引數Go
- goldengate 的 COMPRESSUPDATES 引數Go
- oracle goldengate引數學習OracleGo
- OGG 行過濾filter 引數Filter
- OGG-01387 【goldengate】表列數超過33個Go
- OGG goldengate 日常維護Go
- Oracle GoldenGate(OGG)診斷OracleGo
- PLSQL不規範的引數命名導致的問題SQL
- Oracle GoldenGate常用引數詳解OracleGo
- GoldenGate HANDLECOLLISIONS引數使用說明Go
- goldengate 引數之GETTRUNCATES | IGNORETRUNCATESGo
- Goldengate引數簡要說明Go
- 編碼規範:不要用引數控制程式碼邏輯
- 瞭解GoldenGate Replicat的HANDLECOLLISIONS引數Go
- http params規範中,允許一個引數多次出現嗎?HTTP
- 前端開發規範:命名規範、html規範、css規範、js規範前端HTMLCSSJS
- Oracle GoldenGate OGG管理員手冊OracleGo
- GoldenGate學習筆記(11)_常用引數Go筆記
- CSS 單雙引號應用規範CSS
- 【版本更新】PerfDog新增幫助引導,規範化CPU利用率與效能引數命名
- JS變數與命名規範JS變數
- 資料探勘實驗(一)資料規範化【最小-最大規範化、零-均值規範化、小數定標規範化】
- MySQL + Oracle GoldenGate + OGG Application AdpaterMySqlOracleGoAPP
- GoldenGate的一些引數的意義Go
- goldengate關於CONVERTUCS2CLOBS引數Go