1. 程式人生 > >使用ogg的Oracle-Oracle的雙向複製

使用ogg的Oracle-Oracle的雙向複製

不使用資料泵完成Oracle-Oracle的雙向複製。

作業系統: redhat  as   4.5

oracle version:10.2.0.1

源端ip:          172.17.61.131          rhel131

目標端ip 172.17.61.132          rhel132

目標:將scott.test1表從源端可以複製到目標端,並且目標端的資料更改也能同步到源端。

1) 設定源庫和目標庫的ORACLE使用者環境(源庫、目標庫都一樣設定)

[[email protected] ~]$ cat .bash_profile

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

       . ~/.bashrc

fi

# User specific environment and startupprograms

PATH=$PATH:$HOME/bin

export PATH

unset USERNAME

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/10201

ORA_OGG_HOME=$ORACLE_BASE/ogg11

ORACLE_SID=orcl

PATH=$HOME/bin:$ORACLE_HOME/bin:$ORA_OGG_HOM

E:$PATH:$ORACLE_HOME/OPatch

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$ORA_GG_HOME

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATHLD_LIBRARY_PATHORA_OGG_HOME

unset USERNAME

umask 022

2)  初始化源端資料庫(由於是雙向同步,所以兩臺機器都要設定)

a)        開啟歸檔模式

SQL> alter system setlog_archive_dest_1='location=/u01/app/oracle/oradata/orcl/arch' scope=both;

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database open;

SQL> alter database add supplemental log data;

SQL> altersystem switch logfile;

SQL> selectsupplemental_log_data_min from v$database;

c)        開啟強制日誌模式

 SQL>alter database forcelogging;

d)        goldengate建立使用者並授權

SQL> create tablespace tbs_oggdatafile

2 '/u01/app/oracle/oradata/orcl/tbs_ogg01.dbf' size 100m autoextend on;

SQL> create user ogg identified byogg default tablespace tbs_ogg temporary tablespace temp quota unlimited ontbs_ogg;

 SQL>   grant connect,resource to ogg;

 SQL>   grant create session,alter session to ogg;

 SQL>   grant select any dictionary,select any table to 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 delete any table to ogg;

  SQL> grant update any table to ogg;

3)軟體安裝(源端和目標端相同的操作)

[[email protected] ogg11]$ unzipogg112101_fbo_ggs_Linux_x86_ora10g_32bit.zip

[[email protected] ogg11]$ tar -xvffbo_ggs_Linux_x86_ora10g_32bit.tar

[[email protected] ogg11]$ ggsci

GGSCI (rhel131) 1> create subdirs

4)  源端和目標端都配置好manager程序

在源庫和目標庫上配置 GoldenGate 管理程序(源庫、目標庫都一樣) GGSCI (rhel131) 1>edit params mgr
PORT7809
PURGEOLDEXTRACTS/u01/app/oracle/ogg11/dirdat, USECHECKPOINTS, MINKEEPDAYS 10

GGSCI (rhel131) 1>start mgr
Manager started.

5)  源端配置extract程序

GGSCI(rhel131) 1> add extract ext1,tranlog,begin now

EXTRACTadded.

GGSCI(rhel131) 2> add rmttrail/u01/app/oracle/ogg11/dirdat/lt, extract ext1

EXTTRAILadded.

這裡不能用add exttrail,因為是直接將trail檔案傳輸到目的端。

GGSCI(rhel131) 3> edit params ext1

extractext1

TRANLOGOPTIONS EXCLUDEUSER ogg

--加上這個參加是為了避免雙向複製時目標和源重複複製資料。

setenv(oracle_sid=orcl,nls_lang= AMERICAN_AMERICA.WE8ISO8859P1)

useridogg, password ogg

rmthost172.17.61.132, mgrport 7809

rmttrail/u01/app/oracle/ogg11/dirdat/lt

tablescott.test1;

GGSCI(rhel131) 8>  start extract ext1

SendingSTART request to MANAGER ...

EXTRACTEXT1 starting

GGSCI(rhel131) 9>  info all

Program     Status     Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

EXTRACT     RUNNING    EXT1        00:13:28      00:00:01

至此源庫的操作已結束。

6)  目標庫建立checkpoint

GGSCI (rhel132) 1> edit params GLOBALS

GGSCHEMAOGG

CHECKPOINTTABLEogg.checkpoint

GGSCI(rhel132) 2> dblogin userid ogg password ogg

GGSCI(rhel132) 3> add checkpointtable ogg.checkpoint

7)  目標庫建立replicate程序

GGSCI(rhel132) 4> add replicat rep1, exttrail ./dirdat/lt, checkpointtableogg.checkpoint

REPLICATadded.

GGSCI(rhel132) 5> edit params rep1

replicatrep1

setenv(oracle_sid=orcl,nls_lang= AMERICAN_AMERICA.WE8ISO8859P1)

useridogg, password ogg

handlecollisions

assumetargetdefs

discardfile./dirrpt/rora_aa.dsc, purge

mapscott.test1, target scott.test1;

~

GGSCI(rhel132) 6> start replicat rep1

GGSCI(rhel132) 7> info all

Program     Status     Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

REPLICAT    RUNNING    REP1        00:00:00      00:00:02

8)  測試一下是否能同步過來

SQL>insert into scott.test1

  2 values (1);

1row created.

SQL>commit;

目標庫同步沒有問題:

SQL>  select * from test1;

        T1

----------

         1

下面要進行雙向同步的操作:

9)  在目標端配置extract程序

GGSCI(rhel132) 8> add extract ext2, tranlog, begin now

EXTRACTadded.

GGSCI(rhel132) 10> add rmttrail /u01/app/oracle/ogg11/dirdat/tl, extract ext2

RMTTRAILadded.

Trail產生的檔名必須要和之前的分開,之前用的是lt,現在是tl

GGSCI(rhel132) 11> edit params ext2

extractext2

TRANLOGOPTIONSEXCLUDEUSER ogg

setenv(oracle_sid=orcl,nls_lang= AMERICAN_AMERICA.WE8ISO8859P1)

useridogg, password ogg

rmthost172.17.61.131, mgrport 7809

rmttrail/u01/app/oracle/ogg11/dirdat/tl

tablescott.test1;

GGSCI(rhel132) 19> info all

Program     Status     Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

EXTRACT     RUNNING    EXT2        00:00:00      00:00:02

REPLICAT    RUNNING    REP1        00:00:00      00:00:00

10)             源庫建立checkpoint

GGSCI (rhel131) 1> edit params GLOBALS

GGSCHEMAOGG

CHECKPOINTTABLEogg.checkpoint

GGSCI(rhel131) 2> dblogin userid ogg password ogg

GGSCI(rhel131) 3> add checkpointtable ogg.checkpoint

11)             源庫建立replicate程序

GGSCI(rhel131) 1> add replicat rep2, exttrail ./dirdat/tl, checkpointtableogg.checkpoint

REPLICATadded.

GGSCI(rhel131) 2> edit params rep2

replicatrep2

setenv(oracle_sid=orcl,nls_lang= AMERICAN_AMERICA.WE8ISO8859P1)

useridogg, password ogg

handlecollisions

assumetargetdefs

discardfile./dirrpt/rora_aa.dsc, purge

mapscott.test1, target scott.test1;

GGSCI(rhel131) 3> start replicat rep2

GGSCI(rhel131) 4> info all

Program     Status     Group       Lag at Chkpt  Time Since Chkpt

MANAGER     RUNNING

EXTRACT     RUNNING    EXT1        00:00:00      00:00:08

REPLICAT    RUNNING    REP2        00:00:00      00:00:01

12)             測試一下反向的同步:

目標端:

SQL> insertinto test1 values(4);

1 row created.

SQL> commit;

Commitcomplete.

SQL>  select * from test1;

        T1

----------

         4

         4

         2

         3

         1

源端:

SQL>select * from test1;

        T1

----------

         2

         3

         1

         4

同步成功了!

相關推薦

oracle 11g golden gate(ogg)雙向複製的配置

源端:qht115    目標端:qht131 單向複製已完成qht115到qht131的複製,現在的目的是將qht131的資料同步複製到qht115 昨天完成了og的配置,不過是單向的複製,而ogg更多的應用是雙向複製 下面完成雙向的複製 : 在安裝單向複製的時

搭建一個OracleOracle的GoldenGate雙向複製環境

目標:搭建一個Oracle到Oracle的Goldengate雙向複製環境(支援DDL+DML)。 環境: OS:Red Hat Enterprise Linux Server release 5.5 (Tikanga) DB:Oracle Database 1

使用ogg的Oracle-Oracle雙向複製

不使用資料泵完成Oracle-Oracle的雙向複製。 作業系統: redhat  as   4.5 oracle version:10.2.0.1 源端ip:          172.17.61.131          rhel131 目標端ip: 172.17.6

Oracle EBS 複製使用者職責

DECLARE l_new_user_name VARCHAR2(100) := 'HAND_HYL'; l_new_password VARCHAR2(100) := '54321'; l_new_user_id NUMBER; l_user_name_copy_from VA

OGG配置sqlserver2005到oracle單向複製

一、概述 實現SQLServer庫到Oracle庫的資料實時同步功能; 源端資料庫型別:sqlserver 2005 目標端資料庫型別:oracle 11gR2 二、OGG實現原理圖 三、源端配置 1、環境準備 作業系統管理許可權使用者登入,安裝vcredist

如何在Oracle複製表結構和表資料

1. 複製表結構及其資料: create table table_name_new as select * from table_name_old 2. 只複製表結構: create table table_name_new as select * from table_n

Oracle複製配置最佳實踐

一、通用配置1. 使用Oracle 10.2.0.4版本,並且安裝所有關鍵補訂包2. 下游捕獲需要源和目標庫執行在相同平臺上3. 準備源和目標資料庫的redo logs(1) 配置源和目標庫的archivelog模式(2) 配置本地歸檔目標路徑,log_archive_des

oraclevirtual的ubuntu18下的雙向複製貼上

設定虛擬機器為“雙向”共享貼上給虛擬機器安裝一下增強功能。需要啟動虛擬機器,安裝選單項“裝置”中的最後一項。常規高階裡共享貼上板已經選中雙向,但還是不能複製貼上,這時到虛擬機器設定-儲存-控制器SATA-勾選"使用主機輸入輸出(I/O)快取",再同樣在儲存-控制器SATA-點

Oracle複製表結構和表資料

1. 複製表結構及其資料:  create table table_name_new as select * from table_name_old  2. 只複製表結構:  create table

oracle複製一個使用者

現場人員需要將USRDB使用者複製出來,弄個USRDB1使用者,在這個使用者上匯入資料做測試。 複製方案的思路: 1.查USRDB的預設表空間,PROFILE,系統許可權,物件許可權,角色, 2.建新使用者,授權, 3.匯出USRDB方案 4.匯入方案 步驟如下: [sql] view pla

Oracle DB 複製資料庫

• 列出建立副本資料庫的目的 • 選擇用於複製資料庫的方法 • 使用RMAN 複製資料庫 • 使用RMAN 備份複製資料庫 • 基於正在執行的例項複製資料庫 使用副本資料庫 • 使用副本資料庫可執行以下任務: – 測試備份和恢復過程 – 測試升級到新版本的Oracle資

MySQL雙向主從複製

作為Master伺服器apenglinux-001.cn的配置/ -- 建庫,表,備份庫,將備份傳給另一臺機器-- /[[email protected] ~]# mysql -uroot -p123456 -e "create database db1;use db1;create table t

Oracle資料庫中複製表結構和表資料

1. 複製表結構及其資料: create table new_table as select * from old_table 2. 只複製表結構: create table new_tableas select * from old_tablewhere 1=2; 或者:

兩個Oracle資料庫中的表的結構和資料的複製方法

1. 複製表結構及其資料: create table table_name_new as select * from table_name_old 2. 只複製表結構: create table table_name_new as select * from table_name_old

SELECT INTO 和 INSERT INTO SELECT 兩種表複製語句詳解(SQL資料庫和Oracle資料庫的區別)

https://www.cnblogs.com/mq0036/p/4155136.html 我們經常會遇到需要表複製的情況,如將一個table1的資料的部分欄位複製到table2中,或者將整個table1複製到table2中,這時候我們就要使用SELECT INTO 和 INSER

oracle 完整性約束的禁用啟用以及對錶的影響,表的修改和複製

primary key ----表的唯一性約束,不能為空,且不能有重複值   foreign key ----倆表之間的約束,啟用之時,在刪除資料時需要先刪除父表資料,再刪除子表資料 禁用方式為:alter table table_name disable constraint FK_name

Oracle主從同步、雙向同步的配置[轉]

Oracle主從同步、雙向同步的配置 (把主資料庫obpm 和從資料庫orcl 用實際的資料庫名給替換掉) (配置主從同步後,再配置雙向同步,可能會有表資料重疊,建議在配置雙向同完成後,再匯入表資料!) 備註:主、從資料庫都用淡藍色標記了,方便查詢替換。 1.環境

Windows下Oracle Golden gate12的單向複製 Oracle-Oracle

1.首先,先來了解下Golden gate吧,ogg概念與機制 2.這裡記錄Oracle和Oracle的windows下的同步,那麼到官網下這個安裝包吧,Ogg For Oracle 3.安裝好了Oracle的機器上,解壓安裝包,然後安裝,點選setup,如圖(源端和目標端都要安裝喲):

ORACLE 資料同步 容災備份恢復 主從架構 讀寫分離 (OGG,ADG,DSG,高階複製,流複製,logmnr)

ORACLE 幾種同步災備手段(OGG,ADG,DSG,高階複製,流複製,logmnr) 2017年07月14日 13:45:47 小學生湯米 閱讀數:11073 目前所接觸的Oracle 的災備以及同步手段主要有ADG,OGG,DSG,高階複製,流複製以及自主開發的基於

Oracle新增一列,並複製資料,批量修改。

新增一列: alter table dt_ck_czry add( jszh varchar2(20) ) 給新增列新增資料: update dt_ck_czry set jszh = czy_dm; 將新增列中是字母的資料修改為空: update( select *