中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle ogg搭建

發布時間:2020-05-17 21:23:57 來源:網絡 閱讀:1789 作者:18620626259 欄目:關系型數據庫

 

 

1.環境介紹

項目

源端

目標端

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

操作系統版本

linux

linux


2. ogg基礎環境配置

2.1創建ogg操作系統用戶

  兩臺服務器都需要創建ogg操作系統用戶(此步驟非必須)

  useradd -u 1003 -g oinstall -G dba ogg1 passwd ogg

2.2修改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

2.3創建OGG安裝目錄

    mkdir /ogg chown -Rogg:oinstall /ogg

2.4上傳OGG安裝介質

 OGG安裝文件上傳到兩臺服務器的OGG操作系統用戶的家目錄(默認為/home/ogg)  

  fbo_ggs_Linux_x64_ora11g_64bit.tar  

fbo_ggs_Linux_x64_ora11g_64bit.tar解包到/ogg目錄(源和目標端都需要操作)

tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /ogg

2.5登錄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參數各的配置信息

/u01/app/oracle/ogg/dirrpt

 存放進程報告文件

/u01/app/oracle/ogg/dirchk

 存放檢查點文件

/u01/app/oracle/ogg/dirpcs

 存放進程狀態文件

/u01/app/oracle/ogg/dirsql

 存放SQL腳本文件

/u01/app/oracle/ogg/dirdef

 存放DEFGEN工具生成的數據定義


2.6建立OGG表空間

 ORACLE建議使用單獨的表空間存放OGG數據,表空間大小50M就可以,但是最好設置數據文件的自動擴展。

  SQL>create  tablespace  ogg  datafile'/u01/app/oracle/oradata/orcl/ogg01.dbf'size 50M autoextend on

2.7創建OGG用戶

SQL>create user ogg identified by ogg default tablespace ogg;

2.8OGG用戶授權

OGG用戶需要以下權限,也有人為了省事,直接給OGG用戶DBA權限。

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; 

2.9打開源數據庫的附加日志和force log

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;

2.10運行OGG支持DDL腳本

如果要讓OGG支持DDL操作,還需要額外運行幾個腳本,這些腳本是OGG帶的而不是ORACLE帶的,在OGG的安裝目錄都可以找到,如果在OGG的安裝目錄登錄數據庫,可以直接@加腳本的名字,源端與目標端都需要運行

如下:

sqlplus / as sysdba

GRANT CREATE TABLE,CREATE SEQUENCE TO OGG;

權限配置以后.要重新執行

SQL>@ddl_setup

 SQL>@role_setup

 SQL> grantGGS_GGSUSER_ROLE to ogg;

 SQL>@ddl_enable

3.OGG配置

3.1OGG原理及數據制造

創建測試數據

源數據庫

@demo_ora_create.sql

@demo_ora_insert.sql

目標數據

@demo_ora_create.sql


3.2源端添加表級TRANDATA

  添加表級的trandata可以理解為需要將哪些用戶的哪些表和目標庫同步,其實也是添加表級的

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.*

3.4目標和源端配置MGR管理進程

GGSCI (stream) 2> EDITPARAMS MGR 加入以下兩行內容

PORT 7809

PURGEOLDEXTRACTS /ogg/dirdat,USECHECKPOINTS

參數說明:

PORT 7809:OGG管理進程監控端口。

PURGEOLDEXTRACTS:清除不需要的trail文件。

/ogg/dirdat:trail文件存放位置。

USECHECKPOINTS:使用檢查點隊列。

start mgr

GGSCI (oggtarget) 4> info  mgr

文件存放路徑$OGG_HOME/dirprm

3.5配置初始化數據進程(此步驟非必須,可以由其他方式完成)

   由于在創建測試表的時候,源端的測試表有數據,而目標端的測試表只有結構,沒有數據,所以需要初始化目標端的數據,所謂初始化,就是讓目標端的數據和源端的數據在這個時間點是一模一樣的,所以初始化工作并不需要一定使用OGG,也可以使用EXP、EXPDP、SQLLOAD等其他工具,

本文主要介紹如何使用OGG進行數據初始化,

下面在源端配置捕獲進程EINI_1。

GGSCI (dbdream) 11> ADD EXTRACT EINI_1, SOURCEISTABLE--------------源端加同步進程

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-----目標端名字一定要對應

TABLE SCOTT.EMP_OGG;

TABLE SCOTT.DEPT_OGG;

EXTRACT EINI_1:說明這是EXTRACT進程,名字是EINI_1 SETENV:

環境變量,一定要設置和數據庫字符集一樣,否則可能會亂碼

USERID:數據庫OGG用戶 PASSWORD:數據庫用戶OGG的密碼

RMTHOST:目標端地址,如果在/etc/hosts文件里已經設置解析,可以寫主機名 MGRPORT:

目標端MGR管理進程監聽的端口RMTTASK REPLICAT:

目標端REPLICAT應用進程的組和名字

TABLE:源端要初始化數據的表的名字

B、配置目標端REPLICAT進程

---------------------特別留意名字為源端配置的名

add replicatRINI_1,specialrun------目標端添加同步進程

EDIT PARAMS RINI_1

--加入以下內容

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應用進程,名字叫RINI_1

SETENV:語言變量,同捕獲進程EINI_1

ASSUMETARGETDEFS:告訴OGG目標端和源端需要同步的表的結構完全一致,不需要OGG去檢查表的結構,包括表名、字段名、字段類型、字段長度等,如果目標端和源端同步的表的結構不一樣,需要使用SOURCEDEFS參數,

USERIDPASSWORD:同捕獲進程EINI_1參數介紹

DISCARDFILE:錯誤信息存放位置及命名規則

MAP:源端捕獲的表的名字

TARGET:目標端同步的表的名字,可以不在同一SCHEMA

C、初始化數據-----源端

   配置好目標端的應用進程RINI_1后,就可以啟動源端的捕獲進程進行捕獲數據了,而目標端的應用進程RINI_1不需要手動去啟動,也就是說目標端RINI_1進程不需要管。

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

可以看到初始化是正確的。初始化之后,上文提到的初始化進程(EINI_1、RINI_1)自動停止,因為通常情況下初始化數據工作只會做一次。可以通過INFO命令查看進程的狀態。

INFO EXTRACT EINI_1-------------源端

INFO REPLICAT RINI_1-------目標端

3.6源端和目標端配置OGG的檢查點

此步驟不是必須的,但是為了讓OGG網絡中斷、服務器宕機、掉電等在突發情況也能正確斷點續傳,ORACLE建議配置OGG的檢查點隊列。

GGSCI (stream) 2> EDIT PARAMS ./GLOBALS

CHECKPOINTTABLE ogg.ggschkpt

這就告訴OGG檢查點存放到OGG用戶下的GGSCHKPT表中,但是還需要使用OGG用戶登錄數據庫,創建檢查點表,此時需要退出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登錄數據庫,就可以看到OGG創建的檢查點表。

SQL> select * from tab;

3.7源端配置捕獲進程

$ 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

3.7配置源端的PUMP進程

添加PUMP進程PORA_1OGG,并指定本地的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進程PORA_1指定將本地TRAIL文件傳輸到目標端后保存成目標端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

注意路徑存在和環境變量相關內容

3.8目標端配置同步進程RORA_1

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

注意參數

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被注釋了,也就是說當target端缺失delete update數據時,target端無法自動處理。

驗證數據

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

厦门市| 凉城县| 鸡西市| 湖北省| 迭部县| 来宾市| 会昌县| 南和县| 盐源县| 青岛市| 民丰县| 磐安县| 揭东县| 张北县| 获嘉县| 岚皋县| 和平区| 太原市| 应城市| 崇阳县| 琼海市| 十堰市| 云霄县| 太湖县| 邹城市| 绥德县| 高要市| 丹江口市| 盐城市| 泰州市| 文水县| 二手房| 温泉县| 龙山县| 天长市| 青河县| 商河县| 永清县| 花垣县| 肥乡县| 焦作市|