創(chuàng)新互聯(lián)建站是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計公司的優(yōu)秀設(shè)計人員和策劃人員組成的一個具有豐富經(jīng)驗的團(tuán)隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計師、平面廣告設(shè)計師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:網(wǎng)站建設(shè)、成都做網(wǎng)站、網(wǎng)站改版、網(wǎng)頁設(shè)計制作、網(wǎng)站建設(shè)與維護(hù)、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務(wù)。
項目 | 源端 | 目標(biāo)端 |
ip | 192.168.12.23 | 192.168.22.24 |
oracle sid | orcl | orcl |
goldengate用戶 | oracle | oracle |
ogg版本 | 11.2.1.0.1 | 11.2.1.0.1 |
操作系統(tǒng)版本 | linux | linux |
兩臺服務(wù)器都需要創(chuàng)建ogg操作系統(tǒng)用戶(此步驟非必須)。
useradd -u 1003 -g oinstall -G dba ogg1 passwd ogg
PATH=$PATH:$HOME/bin
export PATH
umask 022
export ORACLE_HOSTNAME=segment2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
exportPATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_BASE/ogg
exportPATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
exportLD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE
exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/JRE/lib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
exportCLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
exportLIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib
export ORACLE_OWNER=oracle
export SPFILE_PATH=$ORACLE_HOME/dbs
export ORA_NLS10=$ORACLE_HOME/nls/data
exportOGG_HOME=$ORACLE_BASE/ogg
mkdir /ogg chown -Rogg:oinstall /ogg
將OGG安裝文件上傳到兩臺服務(wù)器的OGG操作系統(tǒng)用戶的家目錄(默認(rèn)為/home/ogg)。
fbo_ggs_Linux_x64_ora11g_64bit.tar
fbo_ggs_Linux_x64_ora11g_64bit.tar解包到/ogg目錄(源和目標(biāo)端都需要操作)
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /ogg
$./ggsci
解壓安裝后目錄
[oracle@sourceogg]$ ls -l |grep ^d
drwxr-x---2 oracle oinstall 4096 Apr 23 2012 cfg
drwxr-x---2 oracle oinstall 4096 Apr 23 2012 dirjar
drwxr-x---2 oracle oinstall 4096 Apr 23 2012 dirprm
drwxr-x---7 oracle oinstall 4096 Apr 23 2012 UserExitExamples
GGSCI(source) 1> create subdirs
Creatingsubdirectories under current directory /u01/app/oracle/ogg
Parameterfiles /u01/app/oracle/ogg/dirprm: already exists
Reportfiles /u01/app/oracle/ogg/dirrpt: created
Checkpointfiles /u01/app/oracle/ogg/dirchk: created
Processstatus files /u01/app/oracle/ogg/dirpcs: created
SQLscript files /u01/app/oracle/ogg/dirsql: created
Databasedefinitions files /u01/app/oracle/ogg/dirdef: created
Extractdata files /u01/app/oracle/ogg/dirdat: created
Temporaryfiles /u01/app/oracle/ogg/dirtmp: created
Stdoutfiles /u01/app/oracle/ogg/dirout: created
文件路徑 | 說明 |
/u01/app/oracle/ogg/dirprm | 存放OGG參數(shù)各的配置信息 |
/u01/app/oracle/ogg/dirrpt | 存放進(jìn)程報告文件 |
/u01/app/oracle/ogg/dirchk | 存放檢查點文件 |
/u01/app/oracle/ogg/dirpcs | 存放進(jìn)程狀態(tài)文件 |
/u01/app/oracle/ogg/dirsql | 存放SQL腳本文件 |
/u01/app/oracle/ogg/dirdef | 存放DEFGEN工具生成的數(shù)據(jù)定義 |
ORACLE建議使用單獨的表空間存放OGG數(shù)據(jù),表空間大小50M就可以,但是最好設(shè)置數(shù)據(jù)文件的自動擴(kuò)展。
SQL>create tablespace ogg datafile'/u01/app/oracle/oradata/orcl/ogg01.dbf'size 50M autoextend on
SQL>create user ogg identified by ogg default tablespace ogg;
OGG用戶需要以下權(quán)限,也有人為了省事,直接給OGG用戶DBA權(quán)限。
SQL> grant CONNECT, RESOURCE to ogg;
SQL> grant SELECT ANY DICTIONARY, SELECT ANY TABLEto ogg;
SQL> grant ALTER ANY TABLE to ogg;
SQL> grant FLASHBACK ANY TABLE to ogg;
SQL> grant EXECUTE on DBMS_FLASHBACK to ogg;
SQL> grant insert any table to ogg;
SQL> grant update any table to ogg;
SQL>grant delete any table to ogg;
SQL> selectNAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from v$database;
SQL> alter database force logging;
SQL> alter database add SUPPLEMENTAL log data;
SQL> select NAME,OPEN_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MINfrom v$database;
如果要讓OGG支持DDL操作,還需要額外運行幾個腳本,這些腳本是OGG帶的而不是ORACLE帶的,在OGG的安裝目錄都可以找到,如果在OGG的安裝目錄登錄數(shù)據(jù)庫,可以直接@加腳本的名字,源端與目標(biāo)端都需要運行
如下:
sqlplus / as sysdba
GRANT CREATE TABLE,CREATE SEQUENCE TO OGG;
權(quán)限配置以后.要重新執(zhí)行
SQL>@ddl_setup
SQL>@role_setup
SQL> grantGGS_GGSUSER_ROLE to ogg;
SQL>@ddl_enable
創(chuàng)建測試數(shù)據(jù)
源數(shù)據(jù)庫
@demo_ora_create.sql
@demo_ora_insert.sql
目標(biāo)數(shù)據(jù)
@demo_ora_create.sql
添加表級的trandata可以理解為需要將哪些用戶的哪些表和目標(biāo)庫同步,其實也是添加表級的
supplemental log,但是只有上文打開的minimal supplemental log后,這個才生效。
GGSCI (oggsource) 2> dbloginuserid ogg,password ogg
GGSCI (dbdream) 3> add trandata hr.tcustmer;
GGSCI (dbdream) 4> add trandata scott.dept_ogg
成功添加表級TRANDATA后,可以通過INFO命令查看哪些表被添加了TRANDATA.
INFO TRANDATA scott.*
GGSCI (stream) 2>EDITPARAMS MGR加入以下兩行內(nèi)容
PORT 7809
PURGEOLDEXTRACTS /ogg/dirdat,USECHECKPOINTS
參數(shù)說明:
PORT 7809:OGG管理進(jìn)程監(jiān)控端口。
PURGEOLDEXTRACTS:清除不需要的trail文件。
/ogg/dirdat:trail文件存放位置。
USECHECKPOINTS:使用檢查點隊列。
start mgr
GGSCI (oggtarget) 4>info mgr
文件存放路徑$OGG_HOME/dirprm
由于在創(chuàng)建測試表的時候,源端的測試表有數(shù)據(jù),而目標(biāo)端的測試表只有結(jié)構(gòu),沒有數(shù)據(jù),所以需要初始化目標(biāo)端的數(shù)據(jù),所謂初始化,就是讓目標(biāo)端的數(shù)據(jù)和源端的數(shù)據(jù)在這個時間點是一模一樣的,所以初始化工作并不需要一定使用OGG,也可以使用EXP、EXPDP、SQLLOAD等其他工具,
本文主要介紹如何使用OGG進(jìn)行數(shù)據(jù)初始化,
下面在源端配置捕獲進(jìn)程EINI_1。
GGSCI (dbdream) 11> ADD EXTRACT EINI_1, SOURCEISTABLE--------------源端加同步進(jìn)程
GGSCI (dbdream) 12> INFO EXTRACT *, TASKS EXTRACT
GGSCI (dbdream) 13> EDIT PARAMS EINI_1
EXTRACT EINI_1
SETENV (NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
setenv (ORACLE_SID=dbdream)
userid ogg, passwordogg
RMTHOST 192.168.12.203, MGRPORT 7839
RMTTASK REPLICAT, GROUP RINI_1-----目標(biāo)端名字一定要對應(yīng)
TABLE SCOTT.EMP_OGG;
TABLE SCOTT.DEPT_OGG;
EXTRACT EINI_1:說明這是EXTRACT進(jìn)程,名字是EINI_1 SETENV:
環(huán)境變量,一定要設(shè)置和數(shù)據(jù)庫字符集一樣,否則可能會亂碼
USERID:數(shù)據(jù)庫OGG用戶 PASSWORD:數(shù)據(jù)庫用戶OGG的密碼
RMTHOST:目標(biāo)端地址,如果在/etc/hosts文件里已經(jīng)設(shè)置解析,可以寫主機(jī)名 MGRPORT:
目標(biāo)端MGR管理進(jìn)程監(jiān)聽的端口RMTTASK REPLICAT:
目標(biāo)端REPLICAT應(yīng)用進(jìn)程的組和名字
TABLE:源端要初始化數(shù)據(jù)的表的名字
B、配置目標(biāo)端REPLICAT進(jìn)程
---------------------特別留意名字為源端配置的名
add replicatRINI_1,specialrun------目標(biāo)端添加同步進(jìn)程
EDIT PARAMS RINI_1
--加入以下內(nèi)容
REPLICAT RINI_1
SETENV(NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
ASSUMETARGETDEFS
USERID ogg, PASSWORD ogg
DISCARDFILE /u01/app/oracle/ogg/dirrpt/RINIaa.dsc, PURGE
MAP scott.*, TARGET scott.*;
REPLICAT RINI_1:說明這是REPLICAT應(yīng)用進(jìn)程,名字叫RINI_1
SETENV:語言變量,同捕獲進(jìn)程EINI_1
ASSUMETARGETDEFS:告訴OGG目標(biāo)端和源端需要同步的表的結(jié)構(gòu)完全一致,不需要OGG去檢查表的結(jié)構(gòu),包括表名、字段名、字段類型、字段長度等,如果目標(biāo)端和源端同步的表的結(jié)構(gòu)不一樣,需要使用SOURCEDEFS參數(shù),
USERID、PASSWORD:同捕獲進(jìn)程EINI_1參數(shù)介紹
DISCARDFILE:錯誤信息存放位置及命名規(guī)則
MAP:源端捕獲的表的名字
TARGET:目標(biāo)端同步的表的名字,可以不在同一SCHEMA
C、初始化數(shù)據(jù)-----源端
配置好目標(biāo)端的應(yīng)用進(jìn)程RINI_1后,就可以啟動源端的捕獲進(jìn)程進(jìn)行捕獲數(shù)據(jù)了,而目標(biāo)端的應(yīng)用進(jìn)程RINI_1不需要手動去啟動,也就是說目標(biāo)端RINI_1進(jìn)程不需要管。
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION = TRUE SCOPE=BOTH;
GGSCI (oggsource asogg@dbdream) 17>START EXTRACT EINI_1
GGSCI (oggsource as ogg@dbdream) 17>VIEW REPORT EINI_1
可以看到初始化是正確的。初始化之后,上文提到的初始化進(jìn)程(EINI_1、RINI_1)自動停止,因為通常情況下初始化數(shù)據(jù)工作只會做一次。可以通過INFO命令查看進(jìn)程的狀態(tài)。
INFO EXTRACT EINI_1-------------源端
INFO REPLICAT RINI_1-------目標(biāo)端
此步驟不是必須的,但是為了讓OGG網(wǎng)絡(luò)中斷、服務(wù)器宕機(jī)、掉電等在突發(fā)情況也能正確斷點續(xù)傳,ORACLE建議配置OGG的檢查點隊列。
GGSCI (stream) 2> EDIT PARAMS ./GLOBALS
CHECKPOINTTABLE ogg.ggschkpt
這就告訴OGG檢查點存放到OGG用戶下的GGSCHKPT表中,但是還需要使用OGG用戶登錄數(shù)據(jù)庫,創(chuàng)建檢查點表,此時需要退出OGG,重新登錄,否則可能會遇到下面的錯誤。
[ogg@oggsource ogg]$ ./ggsci
GGSCI (oggsource) 1> dblogin userid ogg,password ogg
GGSCI (oggsource as ogg@dbdream) 2> ADD CHECKPOINTTABLE
[ogg@dbdream ogg]$ sqlplus ogg/ogg
No checkpoint table specified. Using GLOBALS specification(ogg.ggschkpt)...
Successfully created checkpoint table ogg.ggschkpt.
此時用OGG登錄數(shù)據(jù)庫,就可以看到OGG創(chuàng)建的檢查點表。
SQL> select * from tab;
$ edit param ext1
EXTRACT ext1
SETENV(ORACLE_HOME="/oracle/app/product/11.2/db")
SETENV (ORACLE_SID="orcl")
SETENV(NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
USERID ogg password ogg
EXTTRAIL ./dirdat/ext1/sd
gettruncates
DDL INCLUDE MAPPED , OBJTYPE 'TABLE' &
INCLUDE MAPPED OBJTYPE 'INDEX'
table scott.*;
add extract ext1 tranlog, begin now
ADD EXTTRAIL ./dirdat/ext1/sd EXTRACT ext1, MEGABYTES 100-----注意是相對路徑
start ext1
ADD EXTRACT EORA_2, TRANLOG, BEGIN NOW
ADD EXTTRAIL /u01/app/oracle/ogg/dirdat/zz,EXTRACT EORA_2, MEGABYTES 5
添加PUMP進(jìn)程PORA_1到OGG,并指定本地的TRAIL文件。
edit pram dp1
EXTRACT dp1
PASSTHRU
DYNAMICRESOLUTION
RMTHOST 192.168.12.24 ,MGRPORT 7809
RMTTRAIL ./dirdat/ext2/sd
DISCARDFILE./dirrpt/dp2.dsc,APPEND,MEGABYTES 100
DISCARDROLLOVER AT 6:00
REPORTROLLOVER AT 6:00
REPORTCOUNT EVERY 1 HOURS,RATE
TABLE scott.*;
ADD EXTRACT dp1, EXTTRAILSOURCE./dirdat/ext1/sd
INFO EXTRACT dp2
ADD RMTTRAIL ./dirdat/ext1/sd, EXTRACT dp1, MEGABYTES100-----注意相對路徑
ADD EXTRACT PORA_1, EXTTRAILSOURCE /u01/app/oracle/ogg/dirdat/pa
為PUMP進(jìn)程PORA_1指定將本地TRAIL文件傳輸?shù)侥繕?biāo)端后保存成目標(biāo)端TRAIL文件的名字。
ADD RMTTRAIL /u01/app/oracle/ogg/dirdat/pa, EXTRACTPORA_1, MEGABYTES 5
START EXTRACT dp1
GGSCI (oggsource as ogg@dbdream) 36>INFO EXTRACT dp1
注意路徑存在和環(huán)境變量相關(guān)內(nèi)容
edit param rep1
REPLICAT rep1
SETENV (ORACLE_HOME ="/u01/app/oracle/product/11.2.0/db_1" )
SETENV (ORACLE_SID = "orcl")
SETENV (NLS_LANG ="AMERICAN_AMERICA.ZHS16GBK")
USERID ogg, PASSWORD ogg
--HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/rep2.dsc ,append,megabytes 10
---SOURCEDEFS./dirdef/def.def
DDL INCLUDE MAPPED , OBJTYPE 'TABLE' &
INCLUDE MAPPED OBJTYPE 'INDEX'
MAP SCOTT.EMP_OGG ,TARGET SCOTT.EMP_OGG ;
MAP SCOTT.DEPT_OGG ,TARGET SCOTT.DEPT_OGG ;
ADD REPLICAT rep1, EXTTRAIL ./dirdat/ext1/sd
START REPLICAT rep1
注意參數(shù)
ERROR OGG-00423 Could not find definitionfor source.person
In the Replicat param Please tryASSUMETARGETDEFS , if source and target have same table structure..
if both the structures are different ,generate the source definition and use SOURCEDEFS in Replicate Param.
handcollisions被注釋了,也就是說當(dāng)target端缺失delete 、update數(shù)據(jù)時,target端無法自動處理。
分享文章:oracleogg搭建
本文來源:http://aaarwkj.com/article6/godsig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、建站公司、App設(shè)計、品牌網(wǎng)站設(shè)計、虛擬主機(jī)、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)