本篇文章給大家分享的是有關(guān)RAC下怎樣進(jìn)行OGG 配置,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括湯陰網(wǎng)站建設(shè)、湯陰網(wǎng)站制作、湯陰網(wǎng)頁(yè)制作以及湯陰網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,湯陰網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到湯陰省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
RAC下OGG配置(僅傳輸DML操作)
1.【源端和目標(biāo)端】創(chuàng)建ACFS文件系統(tǒng),在共享存儲(chǔ)創(chuàng)建ogg軟件安裝目錄,上傳文件并解壓縮ogg軟件
cd /ogg
tar -xvf /soft/fbo...
添加oracle環(huán)境變量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 --關(guān)閉數(shù)據(jù)庫(kù):
STARTUP MOUNT --啟動(dòng)到Mount狀態(tài)
ALTER DATABASE ARCHIVE LOG; --開啟歸檔
ALTER DATABASE OPEN --打開數(shù)據(jù)庫(kù)
ARCHIVE LOG LIST --檢查歸檔狀態(tài),確認(rèn)歸檔位置是否合適
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.【源端目標(biāo)端】確定所有待同步的表必須有主鍵或唯一索引
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用戶創(chuàng)建:
_________________________________________________________________
【源端】:
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;
【目標(biāo)端】:
建立OGG數(shù)據(jù)庫(kù)用戶
?通過sql將數(shù)據(jù)寫入數(shù)據(jù)庫(kù)
? OGG目標(biāo)數(shù)據(jù)庫(kù)用戶權(quán)限
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 //監(jiān)聽端口PORT
DYNAMICPORTLIST 7810-7900 //動(dòng)態(tài)監(jiān)聽端口PORT,監(jiān)聽端口失敗時(shí)使用
--AUTOSTART ER * //開啟管理進(jìn)程后,自動(dòng)啟動(dòng)所有的EXTRACT及REPLICAT進(jìn)程
AUTORESTART ER *,RETRIES 5,WAITMINUTES 3,RESETMINUTES 60 //自動(dòng)重啟異常中止的進(jìn)程,重試5次,每次等2分鐘,一小時(shí)后重試
STARTUPVALIDATIONDELAY 5 //啟動(dòng)時(shí)延遲5秒校驗(yàn)
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS, MINKEEPDAYS 3 //自動(dòng)清理使用過的trail隊(duì)列,最少保留3天
LAGREPORTHOURS 1 //每一小時(shí)檢查延遲
LAGINFOMINUTES 30 //延遲30分鐘記錄信息到error log
LAGCRITICALMINUTES 45 //延50分鐘記錄警告到error log
GGSCI> START MGR //打開管理進(jìn)程
GGSCI> INFO ALL //驗(yàn)證已打開
5.2添加抽取進(jìn)程及隊(duì)列文件
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配置抽取進(jìn)程參數(shù)
extract抽取進(jìn)程參數(shù)配置:
./ggsci
GGSCI> edit param ex_jtwx1
EXTRACT ex_jtwx1
--[環(huán)境變量,非必須]
--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 //動(dòng)態(tài)解析表結(jié)構(gòu)
--TRANLOGOPTIONS CONVERTUCS2CLOBS //抽取CLOB必須加上
--GETTRUNCATES //捕獲truncate操作,默認(rèn)不捕獲
--[待傳輸?shù)谋韂
table myschema.maytable1;
table myschema.maytable2;
table myschema.*;
--TABLE hq.acct, COLS (col1, col3); --只復(fù)制1,3列
--TABLE hq.acct, where (id=1 and name=2); --過濾,只復(fù)制滿足條件記錄
--TABLE hq.acct, COLSEXCEPT (col4); --復(fù)制除了第4列
datapump傳輸進(jìn)程參數(shù)配置:
GGSCI>edit param dp_jtwx1
extract dp_jtwx1
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
passthru //passthru表示本進(jìn)程是一個(gè)傳輸進(jìn)程data pump,無(wú)需跟數(shù)據(jù)庫(kù)交互,只需要搬運(yùn)數(shù)據(jù)即可
--REPORT AT 01:59 //配置在特定時(shí)間報(bào)告?zhèn)鬏敔顟B(tài)
--reportrollover at 02:00 //指定每日在特定時(shí)間生成一個(gè)新的報(bào)告
rmthost 10.128.59.52,mgrport 7809, compress //傳輸進(jìn)程需要知道目標(biāo)端的主機(jī)端口信息
rmttrail /ogg/dirdat/ra
Dynamicresolution
numfiles 8000
table myschema.mytable1;
table myschema.mytable2;
TABLE hq.acct; //注意此時(shí)不用再過濾cols了。
5.4添加表級(jí)附加日志
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 * --啟動(dòng)抽取進(jìn)程和傳輸進(jìn)程
GGSCI> INFO ALL --檢查是否正常啟動(dòng)
--------------
【備注1】
GGSCI> VIEW REPORT ex_jtwx1 --排錯(cuò)常用方法1
GGSCI> sh tail -10 ggserr.log --排錯(cuò)常用方法2
6.【目標(biāo)端配置】
6.1配置GLOBALS參數(shù)
GGSCI> EDIT PARAM ./GLOBALS
GGSCHEMA ggadmin
CHECKPOINTTABLE ggadmin.checkpointtable
6.2創(chuàng)建檢查點(diǎn)記錄表
GGSCI> DBLOGIN USERID ggadmin, PASSWORD ggadmin123,
GGSCI> ADD CHECKPOINTTABLE ggadmin.checkpointtable
6.3配置投遞進(jìn)程
GGSCI> ADD REP rp_jtwx1, EXTTRAIL ./dirdat/ra, CHECKPOINTTABLE ggadmin.checkpointtable
GGSCI> EDIT PARAM rp_jtwx1
REPLICAT rp_jtwx1
--環(huán)境變量,非必須
--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 //配置在特定時(shí)間報(bào)告復(fù)制狀態(tài)
--REPORTROLLOVER AT 02:00 //指定每日在特定時(shí)間生成一個(gè)新的報(bào)告
REPERROR default,discard //配置如果出現(xiàn)錯(cuò)誤后的處理模式,這里abend表示出現(xiàn)錯(cuò)誤即進(jìn)程終止,等待客戶修正后恢復(fù);也可以設(shè)置為discard,此時(shí)會(huì)將錯(cuò)誤數(shù)據(jù)寫到下面參數(shù)定義的文件中,但是繼續(xù)處理,進(jìn)程不退出
INSERTALLRECORDS
DISCARDFILE ./dirrpt/rp_jtwx1.dsc,append, megabytes 200 //定義出錯(cuò)后寫錯(cuò)誤信息的目標(biāo)文件,為查錯(cuò)提供幫助。 Append表示在尾部添加, purge表示每次生成一個(gè)新的disard文件; megabyte表示最大允許大小,如果超過了此大小則進(jìn)程也會(huì)終止。
ASSUMETARGETDEFS //表示源和目標(biāo)表的結(jié)構(gòu)相同,即相同數(shù)據(jù)庫(kù)類型、表的字段定義相同
DYNAMICRESOLUTION //動(dòng)態(tài)解析表的結(jié)構(gòu),加快啟動(dòng)速度
--HANDLECOLLISIONS //沖突數(shù)據(jù)處理,主要在初始化時(shí)候用到
--GETTRUNCATES //同步truncate操作
MAP scott.emp, TARGET scott.emp;
MAP scott.dept, TARGET scott.dept1 , COLMAP (usedefaults , committime = @GETENV ("GGHEADER", "COMMITTIMESTAMP"));
--//定義源表和目標(biāo)表的映射, colmap里面定義列映射,如果是兩端表的列全部相同則不用colmap;
--userdefaults表示,沒有列在后面的列全部按照缺省規(guī)則(列名相同的對(duì)應(yīng))進(jìn)行映射,而列在后面的如committime則賦給GoldenGate的一個(gè)自有變量,這里是指提交時(shí)間。
GGSCI> START REP rp_jtwx1 //啟動(dòng)投遞進(jìn)程
GGSCI> INFO ALL //檢查狀態(tài)
--------------
【備注2】
GGSCI> help --查看可用命令
GGSCI> help add exttrail --查看添加隊(duì)列文件命令使用方法
GGSCI> send rp_jtwx1,status --查看數(shù)據(jù)同步進(jìn)度
GGSCI> stats rp_jtwx1 --查看投遞進(jìn)程處理數(shù)據(jù)量統(tǒng)計(jì)
【場(chǎng)景一】主鍵不一致
目標(biāo)端: MAP src.s_tab, TARGET tar.t_tab, KEYCOLS ( s_tab_pk_col );
或源端: Add trandata src.s_tab, cols ( t_tab_pk_col),nokey
【場(chǎng)景二】數(shù)據(jù)過濾
源端: TABLE demo_src.people, FILTER (age > 50);
age需為主鍵才能過濾,或者Add trandata demo_src.people, cols (age)強(qiáng)制為該列加入附加日志
【場(chǎng)景三】數(shù)據(jù)初始化
通過導(dǎo)入加載初始數(shù)據(jù)后
源端: ALTER ex_jtwx1,begin 2010-03-21 08:00:00 (保證歸檔存在)
或目標(biāo)端: ALTER REPLICAT rp_jtwx1, EXTSEQNO 53, EXTRBA 0
【場(chǎng)景四】數(shù)據(jù)沖突處理
在replicat使用handlecollisions(必須有主鍵或者唯一索引)
以上就是RAC下怎樣進(jìn)行OGG 配置,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。