21
Anar Godjaev http://anargodjaev.wordpress.com/ Yazarlar: Emrah Uysal (Senior Technical Sales Consultant at Oracle) Anar Godjaev (Senior Oracle Database Admin at YKB Azerbaijan) Oracle Golden Gate 1.Oracle Golden GATE Nedir Oracle GoldenGate disaster çözümü, kritik sistemlerindeki sürekliliği sağlamak için gerekli olan master ve yedek veritabanı mimarisini oluşturmak için kullanılan bir teknolojidir. GoldenGate çözümü master veritabanındaki işlemleri yakalayıp, yedek veritabanına gerçek zamanlı olarak kopyalar ve yükler. Master veritabanında oluşabilecek herhangi bir donanım ya da yazılım arızası durumunda ise yedek veritabanı otomatik olarak devreye girer ve kurum içerisindeki işleyişin sekteye uğramadan devam etmesini sağlar.

Oracle Golden Gate

Embed Size (px)

Citation preview

Page 1: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

Yazarlar:

Emrah Uysal (Senior Technical Sales Consultant at Oracle) Anar Godjaev (Senior Oracle Database Admin at YKB Azerbaijan)

Oracle Golden Gate

1.Oracle Golden GATE Nedir

Oracle GoldenGate disaster çözümü, kritik sistemlerindeki sürekliliği sağlamak için

gerekli olan master ve yedek veritabanı mimarisini oluşturmak için kullanılan bir

teknolojidir. GoldenGate çözümü master veritabanındaki işlemleri yakalayıp, yedek

veritabanına gerçek zamanlı olarak kopyalar ve yükler. Master veritabanında

oluşabilecek herhangi bir donanım ya da yazılım arızası durumunda ise yedek veritabanı

otomatik olarak devreye girer ve kurum içerisindeki işleyişin sekteye uğramadan devam

etmesini sağlar.

Oracle GoldenGate çözümü bir çok farklı veritabanı teknoloji arasında senkronizasyon

sağlayabilir. Bu sayede sadece felaket senaryoları için yedekleme değil bunun dışında

verinizi bir veritabanından başka bir veritabanına taşımanız gibi ihtiyaçlarda da

Page 2: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

kullanılabilir. Oracle GoldenGate çözümünün desteklediği veritabanı teknolojilerini

aşağıdaki tablodaki gibidir.

 Master veritabanı:  Yedek Veritabanı:

-   Oracle-   IBM DB2-   Microsoft SQL Server

-   Sysbase ASE

-   Teradata

-   Enscribe

-   SQL/MP

-   SQL/MX

 - Yandaki veritabanlarının hepsi-   Ingres, MySql, HP-   Neoview

-   ODBC uyumlu herhangi bir veritabanı

Oracle GoldenGate için ilk etapta yapacağımız yazılımı kurmak olacaktır,yazılımı

kurduktan sonra konfigürasyon yapabiliriz.Biz denemelerimiz Redhat Enterprise 64 bit

linux üzerinde yapacağız.İlk olarak Golden Gate ürününü indirmemiz

gerekiyor.http://edelivery.oracle.com/ sayfasından ürünü indirebiliriz.Oracle Media Pack

aramasından Product type olarak Oracle Fusion Middleware ve ilgili işletim sistemini

seçiyoruz.Ürün paketi olarak Oracle GoldenGate on Oracle Media Pack for Linux x86-64

olarak seçiyoruz.Daha sonra gelen listeden işletim sistemimizin tipine ve kullandığımız

veritabanı versiyonuna göre seçim yapabiliriz.Ben seçim olarak Oracle GoldenGate

V10.4.0.x for Oracle 10g 64bit on RedHat 4.0′ı veya 5.0’u seçeceğim

2.Golden Gate Kurulumu

Download edilen V26185-01.zip isimli dosyayı her iki makinayada kopyalayacağız.Daha

sonra kurulum yapacağımız her iki makinada da / dizini altına ggs isimli klasör

yaratacağız ve bu klasöre oracle kullanıcısı ve oinstall grubunu yetkili olarak

vereceğiz.İndirdiğimiz dosyayı /ggs dizini altına kopyalayacağız.Bu işlemleri her iki

makinada da yapmalıyız.

Page 3: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

[root@ANAR1 /]# mkdir /ggs [root@ANAR1 /]# chown oracle:oinstall

/ggs

[root@ANAR1 /]# cp /V26185-01.zip /ggs/V26185-01.zip

Kopyalama bittikten sonra zip dosyasını açacağız açılan zip dosyasının içindeki tar

dosyasınıda açacağız.

[root@ANAR1 /]# su - oracle [oracle@ANAR1 ~]$ cd /ggs

[oracle@ANAR1 ~]$ unzip V26185-01.zip

[oracle@ANAR1 ~]$ tar -xvf

ggs_redhatAS40_x64_ora10g_64bit_v10.4.0.19_002.tar

Paketlerimizide açtıktan sonra artık golden gate için konfigürasyon kısmına

geçebiliriz.Yine her iki makinadada aşağıdaki adımları yapacağız.

[oracle@ANAR1 ~]$ export PATH=$PATH:/ggs

[oracle@ANAR1 ~]$ export GGATE=/ggs

[oracle@ANAR1 ~]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:

$ORACLE_HOME/lib:$GGATE

Bu export bilgilerinin hepsini oracle kullanıcısının .bash_profile yada .bash_rc hangi profil

dosyası kullanılıyorsa orayada eklenmesi gerekmektedir.Şimdi her iki makinada da bu

işlemi yapalım.Kırmızı ile belirtilen yerler golden gate için her iki makinanın oracle

kullanıcısının profiline eklenmiştir.

[oracle@ANAR1 ~]$ cd

[oracle@ANAR1 ~]$ vi .bash_profile

# .bash_profile

# Get the aliases and functions

Page 4: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

if [ -f ~/.bashrc ]; then        . ~/.bashrc fi

# User specific environment and startup programs

export ORACLE_HOME=/oracle/product/10.2.0/db_1 export

ORACLE_SID=test export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P9 alias

oh='cd $ORACLE_HOME;pwd' export

ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admi

n # Each RAC node must have a unique ORACLE_SID. (i.e. orcl1,

orcl2,...) export PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:

$ORACLE_HOME/bin export

PATH=${PATH}:/usr/bin:/usr/sbin/:/bin:/usr/X11R6/bin:/usr/local/bin

export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin export

ORACLE_TERM=xterm export TNS_ADMIN=$ORACLE_HOME/network/admin export

ORA_NLS10=$ORACLE_HOME/nls/data #export LD_LIBRARY_PATH=$

{LD_LIBRARY_PATH}:/usr/local/lib:/usr/bin/java:/usr/lib64 export

LD_LIBRARY_PATH=/oracle/product/10.2.0/db_1/lib/ #export

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib:/usr

/bin/java:/usr/lib64 #export CLASSPATH=$ORACLE_HOME/jre #export

CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib #export CLASSPATH=$

{CLASSPATH}:$ORACLE_HOME/rdbms/jlib #export CLASSPATH=${CLASSPATH}:

$ORACLE_HOME/network/jlib #export THREADS_FLAG=native export

TEMP=/tmp export TMPDIR=/tmp GG_HOME=/ggs; export GG_HOME export

GGATE=/ggs export PATH=$PATH:/ggs export

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:$GGATE alias

gg='cd /ggs'

Artık Golden Gate tarafına geçebiliriz.Her iki makinada da aşağıdaki işlemleri yapıyoruz.

İlk olarak ggsci ile goldengate arayüzüne giriyoruz.

[oracle@ANAR1 ~]$ cd /ggs

[oracle@ANAR1 ggs]$ ggsci

Oracle GoldenGate Command Interpreter for Oracle Version 10.4.0.19

Build 002 Linux, x64, 64bit (optimized), Oracle 10 on Sep 22 2009

14:18:08 Copyright (C) 1995, 2009, Oracle and/or its affiliates. 

All rights reserved.

Page 5: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

Golden Gate’in alt dizinlerini yaratıyoruz.

GGSCI (ANAR1) 1> CREATE SUBDIRS Creating subdirectories under

current directory /ggs Parameter files                /ggs/dirprm:

created Report files                   /ggs/dirrpt: created

Checkpoint files               /ggs/dirchk: created Process status

files           /ggs/dirpcs: created SQL script files              

/ggs/dirsql: created Database definitions files     /ggs/dirdef:

created Extract data files             /ggs/dirdat: created

Temporary files                /ggs/dirtmp: created Veridata

files                 /ggs/dirver: created Veridata Lock

files            /ggs/dirver/lock: created Veridata Out-Of-Sync

files     /ggs/dirver/oos: created Veridata Out-Of-Sync XML files

/ggs/dirver/oosxml: created Veridata Parameter files      

/ggs/dirver/params: created Veridata Report files         

/ggs/dirver/report: created Veridata Status files         

/ggs/dirver/status: created Veridata Trace files          

/ggs/dirver/trace: created Stdout files                  

/ggs/dirout: created

GGSCI (ANAR1) 2> exit

[oracle@ANAR1 ~]$ mkdir $GGATE/discard

Alt directory ler oluşmuşken aslında bu dizinlerin ne işe yaradığına bir bakabiliriz.

dirchk

 dirchk Extract ve Replicat prosesleri tarafından yaratılan checkpoint dosyalarının

tutulduğu default dizindir.Bu dizindeki dosyalar sayesinde verinin tutarlılığı sağlanmış

olur. Dosyalar  <group name><sequence number>.<file extension>. Şeklinde saklanır.

 dirdat

 Bu dizin ise replicat ve extract proseslerinin kullandığı trail dosyalarının tutulacağı

defaul dizini gösterir.Tutulan trail dosyalarının formatı < prefix> <sequence number>

şeklindedir.

Page 6: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

Prefix için max um 2 karakterlik bilgi girilebilir.Trail dosyalarının default boyutu 10M

dir.Buna göre bu dizin için ayrılacak alan hesaplanmalıdır.

dirdef

 Bu dizin data defination dosyalarının durduğu yerdir.Genellikle Oracle ile farklı

platformlar arasında replikasyon yaparken burada tabloların defination bilgileri tutulur

ve buna göre replikasyon yapılır.

Dirpcs

Bu dizin ise proselerinin durumlarını gösteren dosyaların tutulduğu yerdir.Yalnızca

prossler çalışırken dosyalar oluşur.Dosyaların formatı <group name>.<file extension>.

Şeklindedir.file extension eğer pce ise Extract prosesi olduğunu,Eğer pcr ise Replicat

prosesi olduğunu, yada pcm ise Manager prosesi olduğunu gösterir.

dirprm

Bu dizin Golden Gate parametre dosyalarının bulunduğu yerdir.Edit params .. komutuyla

GGSCI içinden edit edilebilir.Dosyaların formatı <group name/user-defined name>.prm

yada mgr.prm şeklindedir.

dirrpt

Rapor dosyalarının durduğu yerdir.Bir proses abend olduğunda raporunu alırız ,alınan

rapor bu dizine yazmaktadır.Dosyaların formatı <group name><sequence number>.rpt

şeklindedir.

dirsql

Sql dosyalarının saklandığı default dizindir

3.Veritabanı tarafındaki Hazırlıklar

 Yukarıda her iki makinada yapılan işlemlerden sonra yine her iki makinanın arşiv

modunun açık olması gerekmektedir.O yüzden her iki makinada da arşiv modunun aktif

olup olmadığını kontrol edelim.

[oracle@ANAR1 ~]$ sqlplus '/as sysdba'

Page 7: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

SQL*Plus: Release 10.2.0.3.0 - Production on Wed Nov 30 12:51:11

2011 Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to: Oracle Database 10g Enterprise Edition Release

10.2.0.3.0 - 64bit Production With the Partitioning, OLAP and Data

Mining options

SQL> select log_mode from v$database;

LOG_MODE ------------ ARCHIVELOG

[oracle@SERVER2 ~]$ sqlplus '/as sysdba'

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Oct 14 16:06:15

2010 Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to: Oracle Database 10g Release 10.2.0.4.0 - 64bit

Production

SQL> select log_mode from v$database;

LOG_MODE ------------ ARCHIVELOG

Görüldüğü gibi her iki veritabanıda arşiv modda görünüyor.Her iki veritabanında da

Supplemental logging’i aktif ederek ek olarak veritabanının log çıkmasını

sağlayacağız.Bunuda minimum düzeyde olan komut setimizle yapacağız.Bu işlem yine 2

veritabanında da yapılacaktır.

SQL> alter database add supplemental log data;

Supplemental logging için veritabanının durumunu gözlemleyebiliriz.

SQL> select SUPPLEMENTAL_LOG_DATA_MIN,

SUPPLEMENTAL_LOG_DATA_PK,SUPPLEMENTAL_LOG_DATA_UI from v$database;

SUPPLEME SUP SUP -------- --- --- YES      YES YES

Bunun dışında istersek tablo bazında da supplemnetal logging’i golden gate içinden

ADD TRANDATA komutu ile halledebiliriz.Örneğin;

GGSCI (ANAR1) 2> DBLOGIN USERID ggate, PASSWORD ggate

Page 8: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

Successfully logged into database.

GGSCI (ANAR1) 3> ADD TRANDATA SENDER.DENEME

Logging of supplemental redo data enabled for table SENDER.DENEME

DDL operasyonlarınıda yapabilmek için aşağıdaki birkaç adımı tamalayacağız. Bu

aşağıdaki işlemleri yine 2 veritabanında da yapacağız.

İlk olarak çöp kutusunun kullanımını kapatıyoruz.Çünkü DDL replikasyonu yapabilmek

için çöp kutusunun kapalı olması gereklidir.

SQL> alter system set recyclebin=off scope=both;

4.DDL KULLANIMININ AKTİF EDİLMESİ

DDL replikasyonunda kullanılacak bir kullanıcı yaratıp gerekli hakları veriyoruz.Bu işlemi

2 makinada da yapmak gerekir.

SQL> create user ggate identified by ggate default tablespace users

temporary tablespace temp;

SQL> grant connect,resource,unlimited tablespace to ggate; SQL>

grant execute on utl_file to ggate;

SQL> grant select any dictionary, select any table to ggate;

SQL> grant create table to ggate;

SQL> grant flashback any table to ggate;

SQL> grant execute on dbms_flashback to ggate;

SQL> grant execute on utl_file to ggate;

Yine DDL replikasyonu için aşağıdaki sql cümlelerinin çalıştırılıyor olması heriki noddada

çalıştırılıyor olması gerekmektedir.

Page 9: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

[oracle@ANAR1 ~]$ cd /ggs

SQL> @$GGATE/marker_setup.sql;

Marker setup script You will be prompted for the name of a schema

for the GoldenGate database objects. NOTE: The schema must be

created prior to running this script. NOTE: Stop all DDL replication

before starting this installation.

Enter GoldenGate schema name:ggate

Marker setup table script complete, running verification script...

Please enter the name of a schema for the GoldenGate database

objects: Setting schema name to GGATE MARKER TABLE

------------------------------- OK MARKER SEQUENCE

------------------------------- OK Script complete.

[oracle@SERVER2 ~]$ cd /ggs

SQL> create tablespace GGATE datafile

'/oracle/product/oradata/TEST/ggate.dbf' size 1000M;

Tablespace created.

SQL> alter user ggate default tablespace GGATE;

SQL> @$GGATE/ddl_setup.sql;

GoldenGate DDL Replication setup script Verifying that current user

has privileges to install DDL Replication... You will be prompted

for the name of a schema for the GoldenGate database objects. NOTE:

The schema must be created prior to running this script. NOTE: On

Oracle 10g and up, system recycle bin must be disabled. NOTE: Stop

all DDL replication before starting this installation. Enter

GoldenGate schema name:ggate You will be prompted for the mode of

installation. To install or reinstall DDL replication, enter

INITIALSETUP To upgrade DDL replication, enter NORMAL Enter mode of

installation:INITIALSETUP Working, please wait ... Spooling to file

ddl_setup_spool.txt Using GGATE as a GoldenGate schema name,

INITIALSETUP as a mode of installation. Working, please wait ...

RECYCLEBIN must be empty. This installation will purge RECYCLEBIN

for all users. To proceed, enter yes. To stop installation, enter

no. Enter yes or no:yes DDL replication setup script complete,

running verification script... Please enter the name of a schema for

the GoldenGate database objects: Setting schema name to GGATE

DDLORA_GETTABLESPACESIZE STATUS: Line/pos   Error ----------

----------------------------------------------------------------- No

Page 10: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

errors  No errors CLEAR_TRACE STATUS: Line/pos   Error ----------

----------------------------------------------------------------- No

errors  No errors CREATE_TRACE STATUS: Line/pos   Error ----------

----------------------------------------------------------------- No

errors  No errors TRACE_PUT_LINE STATUS: Line/pos   Error ----------

----------------------------------------------------------------- No

errors  No errors INITIAL_SETUP STATUS: Line/pos   Error ----------

----------------------------------------------------------------- No

errors  No errors DDLVERSIONSPECIFIC PACKAGE STATUS: Line/pos  

Error ----------

----------------------------------------------------------------- No

errors  No errors DDLREPLICATION PACKAGE STATUS: Line/pos   Error

----------

----------------------------------------------------------------- No

errors  No errors DDLREPLICATION PACKAGE BODY STATUS: Line/pos  

Error ----------

----------------------------------------------------------------- No

errors  No errors DDL HISTORY TABLE

----------------------------------- OK DDL HISTORY TABLE(1)

----------------------------------- OK DDL DUMP TABLES

----------------------------------- OK DDL DUMP COLUMNS

----------------------------------- OK DDL DUMP LOG GROUPS

----------------------------------- OK DDL DUMP PARTITIONS

----------------------------------- OK DDL DUMP PRIMARY KEYS

----------------------------------- OK DDL SEQUENCE

--------------------------------- OK GGS_TEMP_COLS

----------------------------------- OK GGS_TEMP_UK

----------------------------------- OK DDL TRIGGER CODE STATUS:

Line/pos   Error ----------

----------------------------------------------------------------- No

errors  No errors DDL TRIGGER INSTALL STATUS

----------------------------------- OK DDL TRIGGER RUNNING STATUS

----------------------------------- ENABLED STAYMETADATA IN TRIGGER

----------------------------------- OFF DDL TRIGGER SQL TRACING

----------------------------------- 0 DDL TRIGGER TRACE LEVEL

-----------------------------------0 LOCATION OF DDL TRACE FILE

--------------------------------------------------------------------

------------

/oracle/product/10.2.0/db_1/admin/test/udump/ggs_ddl_trace.log

Analyzing installation status... STATUS OF DDL REPLICATION

Page 11: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

--------------------------------------------------------------------

------------ SUCCESSFUL installation of DDL Replication software

components Script complete.

[oracle@ANAR1 ~]$ cd /ggs SQL> @$GGATE/role_setup.sql;

GGS Role setup script This script will drop and recreate the role

GGS_GGSUSER_ROLE To use a different role name, quit this script and

then edit the params.sql script to change the gg_role parameter to

the preferred name. (Do not run the script.)You will be prompted for

the name of a schema for the GoldenGate database objects. NOTE: The

schema must be created prior to running this script. NOTE: Stop all

DDL replication before starting this installation.

Enter GoldenGate schema name:ggate Wrote file role_setup_set.txt

PL/SQL procedure successfully completed. Role setup script complete

Grant this role to each user assigned to the Extract, GGSCI, and

Manager processes, by using the following SQL command:

GRANT GGS_GGSUSER_ROLE TO <loggedUser> where <loggedUser> is the

user assigned to the GoldenGate processes.

SQL> grant GGS_GGSUSER_ROLE to ggate; Grant succeeded.

SQL> @$GGATE/ddl_enable.sql;

Trigger altered.

5.Replikasyon Hazırlığı

DDL replikasyonunda kullanılacak ggate isimli kullanıcımızı yaratıp gerekli

çalışmalarımızı yaptıktan sonra source ile target arasında bir replikasyon

yapacağız.Source tarafta sender ve target tarafta receiver isimli kullanıclar yaratıp

gerekli çalışmaları yapacağız,bunları source ve destination veritabanları için ayrı ayrı

yapıyoruz.

Source database:

SQL> create user sender identified by qwerty default tablespace

users temporary tablespace temp;

SQL> grant connect,resource,unlimited tablespace to sender;

Page 12: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

SQL> GRANT SELECT any dictionary, SELECT any TABLE TO sender;

SQL> GRANT CREATE TABLE TO sender;

SQL> GRANT flashback any TABLE TO sender;

Destination database:

SQL> create user receiver identified by qwerty default tablespace

users temporary tablespace temp;

SQL> grant connect,resource,unlimited tablespace to receiver;

SQL> GRANT SELECT any dictionary, SELECT any TABLE TO receiver;

SQL> GRANT CREATE TABLE TO receiver;

SQL> GRANT flashback any TABLE TO receiver;

6.BASİT BİR REPLİKASYON

Replikasyon için hazırlıklar başladıktan sonra artık replikasyona başlıyabiliriz.İlk

yapacağımız repliasyonda pump prosesini kullanmayacağız direk olarak extract prosesi

üzerinden remote tarafa verileri yollayacağız.İlk olarak her iki makinada da manager’ın

ayağa kaldırılması gerekmektedir.

[oracle@ANAR1 ~]$ cd $GGATE

[oracle@ANAR1 ggs]$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle Version 10.4.0.19

Build 002 Linux, x64, 64bit (optimized), Oracle 10 on Sep 22 2009

14:18:08 Copyright (C) 1995, 2009, Oracle and/or its affiliates. 

All rights reserved.

GGSCI (ANAR1) 1> edit params mgr PORT 7809

GGSCI (ANAR1) 2> start manager Manager started.

Page 13: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

GGSCI (ANAR1) 3> info all Program     Status      Group      

Lag           Time Since Chkpt MANAGER     RUNNING

Her iki makinada da manager’ı başlattıktan sonra yalnızca source makinasında extration

için bir extract başlatmamız gerekiyor.Extract source veritabanından destination

veritabanına çıkacak veriler için kullanılmaktadır.add extract begin now dediğimizde

extract hemen başlayacak anlamındadır.

GGSCI (ANAR1) 7> add extract ext1, tranlog, begin now EXTRACT added.

Extract prosesini oluşturduktan sonra capture edilen transactionların localde bir alana

yazılması gerekmektedir.Bunları trail servisiyle yazıyoruz.

GGSCI (ANAR1) 8> ADD EXTTRAIL /ggs/dirdat/ex, EXTRACT EXT1 EXTTRAIL

added.

Daha sonra localdeki trail dosyalarının remote taraftaki trail alanına yazılması

gerekmektedir.Normalde en sağlıklısı bunun pump ile yapılmasıdır ama biz bunu extract

prosesi olan ext1 ile yapıyoruz.

GGSCI (ANAR1) 8> ADD RMTTRAIL /ggs/dirdat/lt, EXTRACT EXT1

Ext1 için gerekli olan parametre ayarlarını yapıyoruz.Kırmızı olan kısımda sender

kullanıcısına ait ddl işlemlerinin karşıya gideceğini söylüyoruz.Mavi ile yazılan yerde ise

* koyduğumuz için sender kullanıcısına ait tüm tabloların replike olacağını belirtiyoruz.

GGSCI (ANAR1) 9> edit params ext1 SETENV

(ORACLE_HOME = "/oracle/product/10.2.0/db_1") SETENV (ORACLE_SID =

"TEST") EXTRACT ext1 USERID ggate, PASSWORD ggate --EXTTRAIL

/ggs/dirdat/ex RMTHOST SERVER2, MGRPORT 7809 ddl include mapped

objname sender.*; RMTTRAIL /ggs/dirdat/lt TABLE sender.*;

GGSCI (ANAR1) 10> info all Program     Status      Group      

Lag           Time Since Chkpt MANAGER    

RUNNING                                          EXTRACT    

STOPPED     EXT1        00:00:00      00:12:24

Page 14: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

Extract olan source makinasından replike olan destination makinasına bir akış

başlattık.Şimdi ise replike olan destination tarafı için tanımlar yapalım.Target tarafta ki 

trail dosyalarını okuyup bunları veritabanına işleyen prosesin yani replicat’ın tanımlarını

destination tarafta yapıyoruz.

[oracle@SERVER2 ~]$ cd /ggs/

[oracle@SERVER2 ggs]$ mkdir discard

[oracle@SERVER2 ggs]$./ggsci

Goldengate’in home dizini içinde istersek ./GLOBALS dosyası kullanılarak verilerin read

write olma zamanı durumu gibi bilgileri saklayan en son ne işlendi ne işlenecek gibi

bilgileri tutan tablo olan checkpoint tablosunu buraya yazabiliriz.Aslında yazmak

zorunda değiliz.ggsci toolu’u içinden de add checkpoint table diyerek de bunu

yapabilirdik.Ama yazılmasının zararı yoktur.

GGSCI (SERVER2) 5> edit params ./GLOBAL GGSCHEMA ggate

CHECKPOINTTABLE ggate.checkpoint

GGSCI (SERVER2) 6> dblogin userid ggate Password: Successfully

logged into database.

GGSCI (SERVER2) 7> add checkpointtable ggate.checkpoint

Successfully created checkpoint table GGATE.CHECKPOINT.

GGSCI (SERVER2) 8> add replicat rep1, exttrail

/ggs/dirdat/lt,checkpointtable ggate.checkpoint REPLICAT added.

Replicat prosesinin parametre ayarlarınıda aşağıdan yapıyourz.Kırmızı ile yazılan yerde

görüleceği gibi bu komutla source tarafın tablo yapısının kaynak tarafla aynı olacağını

söylüyoruz.Mavi olan yerde ise işlenemeyen transactionların discard dosyasına 10’ar mb

lık dosyalar halinde yazılacağını belirtiyoruz.Yeşil yazılan yerde ise DDL operasyonlarının

işleneceğini belirtiyoruz.Son olarak mor olan yerde ise source tarafta sender

kullanıcısından gelen tüm DML,DDL işlemlerinin targetta receiver altında apply

edileceğini belirtiyoruz.

 GGSCI (ANAR1) 9> edit params rep1 SETENV (ORACLE_HOME =

"/oracle/product/10.2.0/db_1") SETENV (ORACLE_SID = "TEST") replicat

Page 15: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

rep1 ASSUMETARGETDEFS userid ggate, password ggate discardfile

/ggs/discard/rep1_discard.txt, append, megabytes 10 DDL map

sender.*, target receiver.*;

Şimdi source tarafındaki extract prosesini ve destination tarafındaki replicat prosesini

başlatabiliriz.

Source:

GGSCI (db1) 14> start extract ext1 Sending START request to

MANAGER ... EXTRACT EXT1 starting

GGSCI (ANAR1) 84> info all Program     Status      Group      

Lag           Time Since Chkpt MANAGER    

RUNNING                                          EXTRACT    

RUNNING     EXT1        00:00:00      01:20:19

Destination: GGSCI (SERVER2) 15> start replicat rep1 Sending START

request to MANAGER ... REPLICAT REP1 starting

GGSCI (SERVER2) 19> info all

Program     Status      Group       Lag           Time Since Chkpt

MANAGER     RUNNING                                         

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

Servislerden birinin başlamasında bir sıkıntı olursa bunu aşağıdaki komutla detaylı

olarak görebiliriz.

GGSCI (ANAR1) 90> view report ext1

********************************************************************

***                  Oracle GoldenGate Capture for Oracle

                Version 10.4.0.19 Build 002

   Linux, x64, 64bit (optimized), Oracle 10 on Sep 22 2009 14:21:44

Copyright (C) 1995, 2009, Oracle and/or its affiliates.  All rights

reserved.

Page 16: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

                     Starting at 2014-02-02 13:33:53

********************************************************************

*** Operating System Version: Linux Version #1 SMP Sun May 2

04:17:42 EDT 2010, Release 2.6.18-194.3.1.el5 Node: ANAR1 Machine:

x86_64                          soft limit   hard limit Address

Space Size   :    unlimited    unlimited Heap Size            :   

unlimited    unlimited File Size            :    unlimited   

unlimited CPU Time             :    unlimited    unlimited Process

id: 27201 Description:

********************************************************************

*** **            Running with the following

parameters                  **

********************************************************************

***

SETENV (ORACLE_HOME = "/oracle/product/10.2.0/db_1") SETENV

(ORACLE_SID = "TEST") EXTRACT ext1 USERID ggate, PASSWORD ggate --

EXTTRAIL /ggs/dirdat/ex RMTHOST SERVER2, MGRPORT 7809 ddl include

mapped objname sender.*; RMTTRAIL /ggs/dirdat/lt TABLE sender.*;

CACHEMGR virtual memory values (may have been adjusted)

CACHEBUFFERSIZE:                         64K

CACHESIZE:                                8G CACHEBUFFERSIZE (soft

max):               4M CACHEPAGEOUTSIZE (normal):                4M

PROCESS VM AVAIL FROM OS (min):          16G CACHESIZEMAX (strict

force to disk):  13.99G Database Version: Oracle Database 10g

Enterprise Edition Release 10.2.0.3.0 - 64bi PL/SQL Release

10.2.0.3.0 - Production CORE    10.2.0.3.0      Production TNS for

Linux: Version 10.2.0.3.0 - Production NLSRTL Version 10.2.0.3.0 -

Production

Database Language and Character Set: NLS_LANG =

"AMERICAN_AMERICA.WE8ISO8859P9" NLS_LANGUAGE     = "AMERICAN"

NLS_TERRITORY    = "AMERICA" NLS_CHARACTERSET = "WE8ISO8859P9"  

GGSCI (SERVER2) 24> view report rep1

********************************************************************

*** Oracle GoldenGate Delivery for Oracle                      

Page 17: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

Version 10.4.0.19 Build 002    Linux, x64, 64bit (optimized), Oracle

10 on Sep 22 2009 14:23:18 Copyright (C) 1995, 2009, Oracle and/or

its affiliates.  All rights reserved.

                     Starting at 2014-02-15 16:48:10

********************************************************************

*** Operating System Version: Linux Version #1 SMP Sun May 2

04:17:42 EDT 2010, Release 2.6.18-194.3.1.el5 Node: SERVER2Machine:

x86_64             soft limit   hard limit Address Space Size   :   

unlimited    unlimited Heap Size            :    unlimited   

unlimited File Size            :    unlimited    unlimited CPU

Time             :    unlimited    unlimited Process id: 17369

Description:

********************************************************************

*** **            Running with the following

parameters                  **

********************************************************************

*** SETENV (ORACLE_HOME = " /oracle/product/10.2.0/db_1") Set

environment variable (ORACLE_HOME=/oracle/product/10.2.0/db_1)

SETENV (ORACLE_SID = "TEST") Set environment variable

(ORACLE_SID=TEST) replicat rep1 ASSUMETARGETDEFS userid ggate,

password ***** discardfile /ggs/discard/rep1_discard.txt, append,

megabytes 10 DDL map sender.*, target receiver.*; CACHEMGR virtual

memory values (may have been adjusted)

CACHEBUFFERSIZE:                         64K

CACHESIZE:                              512M CACHEBUFFERSIZE (soft

max):               4M CACHEPAGEOUTSIZE (normal):                4M

PROCESS VM AVAIL FROM OS (min):           1G CACHESIZEMAX (strict

force to disk):    881M Database Version: Oracle Database 10g

Release 10.2.0.4.0 - 64bit Production PL/SQL Release 10.2.0.4.0 -

Production CORE    10.2.0.4.0      Production TNS for Linux: Version

10.2.0.4.0 - Production NLSRTL Version 10.2.0.4.0 - Production

Database Language and Character Set:

NLS_LANG environment variable not set, using default value

AMERICAN_AMERICA.US7ASCII. NLS_LANGUAGE     = "AMERICAN"

NLS_TERRITORY    = "AMERICA" NLS_CHARACTERSET = "WE8ISO8859P9"

Warning: NLS_LANG is not set. Please refer to user manual for more

information.

Page 18: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

Şimdi bir test yapalım Source tarafta bir tablo yaratalım ve içine biraz bilgi girelim

bakalım bunu destination tarafında görebilecekmiyiz.

Source:

[oracle@ANAR1 dirdat]$ sqlplus '/as sysdba'

SQL> conn sender/sender

Connected.

SQL> create table deneme (alan1 varchar2(10));

Table created.

SQL> insert into deneme values('DENEME');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from deneme;

ALAN1 ---------- DENEME

Şimdi destination tarafta yapılan bu işlemi görüntülüyelim,

Destination :

[oracle@SERVER2 ~]$ sqlplus '/as sysdba'

SQL> conn receiver/receiver

Connected.

SQL> select * from deneme;

Page 19: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

ALAN1 ---------- DENEME

Görüldüğü gibi replikasyon başarı ile tamamlandı.Aslında en temel komutlarla bunu

yaptık ama işimizi gördü.Hem DDL operasyonunun başarı ile bittiğini keza bunu create

table komutunun karşıya gitmesinden anladık hemde,DML yani insert cümleciğinin

karşıya gitmesinden anladık.

Yapılan çalışmalardan sonra replikasyonun durumu ve nelerin replike olduğunu

görebiliriz.Bunun içinde stats * komutunu hem extract hemde replicat tarafında

görebiliriz.

GGSCI (ANAR1) 80> stats *

Sending STATS request to EXTRACT EXT1 ... Start of Statistics at

2011-12-04 12:06:00. DDL replication statistics (for all trails):

*** Total statistics since extract started     ***        

Operations                                   1.00         Mapped

operations                            1.00         Unmapped

operations                          0.00         Other

operations                             0.00         Excluded

operations                          0.00

 Output to /ggs/dirdat/ex: Extracting from GGATE.GGS_MARKER to

GGATE.GGS_MARKER:

*** Total statistics since 2011-12-04 11:26:12 ***         No

database operations have been performed.

*** Daily statistics since 2011-12-04 11:26:12 ***

       No database operations have been performed.

*** Hourly statistics since 2011-12-04 12:00:00 ***

        No database operations have been performed.

 *** Latest statistics since 2011-12-04 11:26:12 ***

Page 20: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

       No database operations have been performed.

 Extracting from SENDER.DENEME to RECEIVER.DENEME:

 *** Total statistics since 2011-12-04 11:26:12 ***

  Total inserts                                1.00   Total

updates                                0.00 Total

deletes                                0.00 Total

discards                               0.00 Total

operations                             1.00

 *** Daily statistics since 2011-12-04 11:26:12 ***

       Total inserts                                1.00 Total

updates                                0.00 Total

deletes                                0.00 Total

discards                               0.00 Total

operations                             1.00

*** Hourly statistics since 2011-12-04 12:00:00 ***

        No database operations have been performed.

*** Latest statistics since 2011-12-04 11:26:12 ***           Total

inserts                                1.00 Total

updates                                0.00 Total

deletes                                0.00 Total

discards                               0.00 Total

operations                             1.00

End of Statistics.

GGSCI (SERVER2) 29> stats *

Sending STATS request to REPLICAT REP1 ... Start of Statistics at

2014-02-18 15:21:04. DDL replication statistics: *** Total

statistics since replicat started     *        

Operations                                   1.00         Mapped

Page 21: Oracle Golden Gate

Anar Godjaevhttp://anargodjaev.wordpress.com/

operations                            1.00         Unmapped

operations                          0.00         Other

operations                             0.00         Excluded

operations                          0.00        

Errors                                       0.00         Retried

errors                               0.00         Discarded errors 

0.00         Ignored errors                               0.00

Replicating from SENDER.DENEME to RECEIVER.DENEME: *** Total

statistics since 2014-02-18 14:42:17 ***         Total

inserts                                1.00         Total

updates                                0.00         Total

deletes                                0.00         Total

discards                               0.00         Total

operations                             1.00

 *** Daily statistics since 2014-02-18 14:42:17 ***        Total

inserts                                1.00         Total

updates                                0.00         Total

deletes                                0.00         Total

discards                               0.00         Total

operations                             1.00

 *** Hourly statistics since 2014-02-18 15:00:00 ***        No

database operations have been performed

*** Latest statistics since 2014-02-18 14:42:17 * Total

inserts                                1.00         Total

updates                                0.0 Total

deletes                                0.00 Total

discards                               0.00 Total

operations                             1.00

End of Statistics.