您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關RAC下怎樣進行OGG 配置,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
RAC下OGG 配置(僅傳輸DML操作)
1. 【源端和目標端】創建ACFS文件系統,在共享存儲創建ogg軟件安裝目錄,上傳文件并解壓縮ogg軟件
cd /ogg
tar -xvf /soft/fbo...
添加oracle環境變量LD_LIBRARY_PATH
vi ~/.bash_profile
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
安裝:
./ggsci
create subdirs
--完成ogg 安裝
2.【源端】檢查是否開啟歸檔
SQL> select name,log_mode,supplemental_log_data_min from v$database;
NAME LOG_MODE SUPPLEME
--------- ------------ --------
MMDB NOARCHIVELOG NO
a.開啟歸檔
SHUTDOWN IMMEDIATE --關閉數據庫:
STARTUP MOUNT --啟動到Mount狀態
ALTER DATABASE ARCHIVE LOG; --開啟歸檔
ALTER DATABASE OPEN --打開數據庫
ARCHIVE LOG LIST --檢查歸檔狀態,確認歸檔位置是否合適
b.打開最小附加日志
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; --打開最小附加日志
ALTER SYSTEM SWITCH LOGFILE --切換日志使生效
c.打開OGG特性
SHOW PARAMETER GOLDENGATE
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;
3.【源端目標端】確定所有待同步的表必須有主鍵或唯一索引
COL OWNER FOR A20
COL TABLENAME FOR A30
SELECT OWNER,TABLE_NAME,CONSTRAINT_TYPE,INVALID FROM DBA_CONSTRAINTS WHERE OWNER='SCOTT' AND CONSTRAINT_TYPE IN ('P','U'); --查詢用戶下哪些表有主鍵
4. OGG用戶創建:
_________________________________________________________________
【源端】:
CREATE USER ggadmin IDENTIFIED BY ggadmin123, DEFAULT TABLESPACE USERS ;
GRANT CONNECT TO ggadmin;
GRANT CREATE SESSION TO ggadmin;
GRANT ALTER SESSION TO ggadmin;
GRANT RESOURCE TO ggadmin;
GRANT SELECT ANY DICTIONARY TO ggadmin;
GRANT SELECT ANY TABLE TO ggadmin;
GRANT FLASHBACK ANY TABLE TO ggadmin;
GRANT ALTER ANY TABLE TO ggadmin;
或
GRANT DBA TO ggadmin;
【目標端】:
建立OGG數據庫用戶
? 通過sql將數據寫入數據庫
? OGG目標數據庫用戶權限
CREATE USER ggadmin IDENTIFIED BY ggadmin123, DEFAULT TABLESPACE USERS ;
GRANT ALTER SESSION TO ggadmin;
GRANT CREATE SESSION TO ggadmin;
GRANT CONNECT TO ggadmin;
GRANT RESOURCE TO ggadmin;
GRANT SELECT ANY DICTIONARY TO ggadmin;
GRANT SELECT ANY TABLE TO ggadmin;
GRANT FLASHBACK ANY TABLE TO ggadmin;
GRANT INSERT ANY TABLE TO ggadmin;
GRANT UPDATE ANY TABLE TO ggadmin;
GRANT DELETE ANY TABLE TO ggadmin;
或
GRANT DBA TO ggadmin;
5.【源端配置】:
5.1 mgr 配置
./ggsci
GGSCI> edit param mgr
PORT 7809 //監聽端口PORT
DYNAMICPORTLIST 7810-7900 //動態監聽端口PORT,監聽端口失敗時使用
--AUTOSTART ER * //開啟管理進程后,自動啟動所有的EXTRACT及REPLICAT進程
AUTORESTART ER *,RETRIES 5,WAITMINUTES 3,RESETMINUTES 60 //自動重啟異常中止的進程,重試5次,每次等2分鐘,一小時后重試
STARTUPVALIDATIONDELAY 5 //啟動時延遲5秒校驗
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS, MINKEEPDAYS 3 //自動清理使用過的trail隊列,最少保留3天
LAGREPORTHOURS 1 //每一小時檢查延遲
LAGINFOMINUTES 30 //延遲30分鐘記錄信息到error log
LAGCRITICALMINUTES 45 //延50分鐘記錄警告到error log
GGSCI> START MGR //打開管理進程
GGSCI> INFO ALL //驗證已打開
5.2 添加抽取進程及隊列文件
GGSCI> ADD EXTRACT ex_jtwx1, tranlog, begin now,thread 2
GGSCI> ADD EXTTRAIL ./dirdat/la,EXT ex_jtwx1, MEGABYTES 100
GGSCI> ADD EXTRACT dp_jtwx1, EXTTRAILSOURCE ./dirdat/la
GGSCI> ADD RMTTRAIL /ogg/dirdat/ra, EXT dp_jtwx1, MEGABYTES 100
5.3 配置抽取進程參數
extract 抽取進程參數配置:
./ggsci
GGSCI> edit param ex_jtwx1
EXTRACT ex_jtwx1
--[環境變量,非必須]
--SETENV( ORACLE_SID=xxx )
--SETENV( ORACLE_HOME=xxx )
--SETENV( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
USERID ggadmin, PASSWORD ggadmin123,
TRANLOGOPTIONS DBLOGREADER, DBLOGREADER BUFSIZE 4194304, BUFSIZE 4194304
FETCHOPTIONS FETCHPKUPDATECOLS
NOCOMPRESSDELETES
EXTTRAIL ./dirdat/la
DYNAMICRESOLUTION //動態解析表結構
--TRANLOGOPTIONS CONVERTUCS2CLOBS //抽取CLOB必須加上
--GETTRUNCATES //捕獲truncate操作,默認不捕獲
--[待傳輸的表]
table myschema.maytable1;
table myschema.maytable2;
table myschema.*;
--TABLE hq.acct, COLS (col1, col3); --只復制1,3列
--TABLE hq.acct, where (id=1 and name=2); --過濾,只復制滿足條件記錄
--TABLE hq.acct, COLSEXCEPT (col4); --復制除了第4列
datapump傳輸進程參數配置:
GGSCI>edit param dp_jtwx1
extract dp_jtwx1
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
passthru //passthru表示本進程是一個傳輸進程data pump,無需跟數據庫交互,只需要搬運數據即可
--REPORT AT 01:59 //配置在特定時間報告傳輸狀態
--reportrollover at 02:00 //指定每日在特定時間生成一個新的報告
rmthost 10.128.59.52,mgrport 7809, compress //傳輸進程需要知道目標端的主機端口信息
rmttrail /ogg/dirdat/ra
Dynamicresolution
numfiles 8000
table myschema.mytable1;
table myschema.mytable2;
TABLE hq.acct; //注意此時不用再過濾cols了。
5.4 添加表級附加日志
GGSCI> DBLOGIN USERID ggadmin, PASSWORD ggadmin123,
GGSCI> LIST TABLES SCOTT.*
GGSCI> ADD TRANDATA scott.emp
GGSCI> ADD TRANDATA scott.dept
....
或
SQL>alter table user.table add supplemental log group ggs_table_1 (PK or UK) always;
SQL>
GGSCI> START * --啟動抽取進程和傳輸進程
GGSCI> INFO ALL --檢查是否正常啟動
--------------
【備注1】
GGSCI> VIEW REPORT ex_jtwx1 --排錯常用方法1
GGSCI> sh tail -10 ggserr.log --排錯常用方法2
6.【目標端配置】
6.1 配置GLOBALS參數
GGSCI> EDIT PARAM ./GLOBALS
GGSCHEMA ggadmin
CHECKPOINTTABLE ggadmin.checkpointtable
6.2 創建檢查點記錄表
GGSCI> DBLOGIN USERID ggadmin, PASSWORD ggadmin123,
GGSCI> ADD CHECKPOINTTABLE ggadmin.checkpointtable
6.3 配置投遞進程
GGSCI> ADD REP rp_jtwx1, EXTTRAIL ./dirdat/ra, CHECKPOINTTABLE ggadmin.checkpointtable
GGSCI> EDIT PARAM rp_jtwx1
REPLICAT rp_jtwx1
--環境變量,非必須
--SETENV( ORACLE_SID=ogg2 )
--SETENV( ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 )
--SETENV( NLS_LANG = AMERICAN_AMERICA.AL32UTF8 )
USERID ggadmin, PASSWORD ggadmin
--REPORT AT 01:59 //配置在特定時間報告復制狀態
--REPORTROLLOVER AT 02:00 //指定每日在特定時間生成一個新的報告
REPERROR default,discard //配置如果出現錯誤后的處理模式,這里abend表示出現錯誤即進程終止,等待客戶修正后恢復;也可以設置為discard,此時會將錯誤數據寫到下面參數定義的文件中,但是繼續處理,進程不退出
INSERTALLRECORDS
DISCARDFILE ./dirrpt/rp_jtwx1.dsc,append, megabytes 200 //定義出錯后寫錯誤信息的目標文件,為查錯提供幫助。 Append表示在尾部添加, purge表示每次生成一個新的disard文件; megabyte表示最大允許大小,如果超過了此大小則進程也會終止。
ASSUMETARGETDEFS //表示源和目標表的結構相同,即相同數據庫類型、表的字段定義相同
DYNAMICRESOLUTION //動態解析表的結構,加快啟動速度
--HANDLECOLLISIONS //沖突數據處理,主要在初始化時候用到
--GETTRUNCATES //同步truncate 操作
MAP scott.emp, TARGET scott.emp;
MAP scott.dept, TARGET scott.dept1 , COLMAP (usedefaults , committime = @GETENV ("GGHEADER", "COMMITTIMESTAMP"));
--//定義源表和目標表的映射, colmap里面定義列映射,如果是兩端表的列全部相同則不用colmap;
--userdefaults表示,沒有列在后面的列全部按照缺省規則(列名相同的對應)進行映射,而列在后面的如committime則賦給GoldenGate的一個自有變量,這里是指提交時間。
GGSCI> START REP rp_jtwx1 //啟動投遞進程
GGSCI> INFO ALL //檢查狀態
--------------
【備注2】
GGSCI> help --查看可用命令
GGSCI> help add exttrail --查看添加隊列文件命令使用方法
GGSCI> send rp_jtwx1,status --查看數據同步進度
GGSCI> stats rp_jtwx1 --查看投遞進程處理數據量統計
【場景一】主鍵不一致
目標端: MAP src.s_tab, TARGET tar.t_tab, KEYCOLS ( s_tab_pk_col );
或源端: Add trandata src.s_tab, cols ( t_tab_pk_col),nokey
【場景二】數據過濾
源端: TABLE demo_src.people, FILTER (age > 50);
age需為主鍵才能過濾,或者Add trandata demo_src.people, cols (age)強制為該列加入附加日志
【場景三】數據初始化
通過導入加載初始數據后
源端: ALTER ex_jtwx1,begin 2010-03-21 08:00:00 (保證歸檔存在)
或目標端: ALTER REPLICAT rp_jtwx1, EXTSEQNO 53, EXTRBA 0
【場景四】數據沖突處理
在replicat使用handlecollisions(必須有主鍵或者唯一索引)
以上就是RAC下怎樣進行OGG 配置,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。