SlideShare a Scribd company logo
Anar Godjaev
http://anargodjaev.wordpress.com/

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

OracleGolden 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 kullanılabilir. Oracle GoldenGate çözümünün desteklediği
veritabanı teknolojilerini aşağıdaki tablodaki gibidir.
Anar Godjaev
http://anargodjaev.wordpress.com/

Master veritabanı:

Yedek Veritabanı:

- Oracle- IBM DB2
- Microsoft SQL Server

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

- Sysbase ASE

- ODBC uyumlu herhangi bir veritabanı

- Teradata
- Enscribe
- SQL/MP
- SQL/MX

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.
[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.
Anar Godjaev
http://anargodjaev.wordpress.com/
[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
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,
Anar Godjaev
http://anargodjaev.wordpress.com/
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.
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
Anar Godjaev
http://anargodjaev.wordpress.com/
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.
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.
Anar Godjaev
http://anargodjaev.wordpress.com/
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'
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'
Anar Godjaev
http://anargodjaev.wordpress.com/
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
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.
Anar Godjaev
http://anargodjaev.wordpress.com/
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.
[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.
Anar Godjaev
http://anargodjaev.wordpress.com/
[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:ggateYou 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:INITIALSETUPWorking, 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:yesDDL 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
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 ---------- -------------------
Anar Godjaev
http://anargodjaev.wordpress.com/
---------------------------------------------- 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 ------------------------------------------------------------------------------ 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:ggateWrote 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.
Anar Godjaev
http://anargodjaev.wordpress.com/
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;
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
Anar Godjaev
http://anargodjaev.wordpress.com/
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.
GGSCI (ANAR1) 3> info all Program
Lag

Status

Time Since Chkpt MANAGER

Group

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
Anar Godjaev
http://anargodjaev.wordpress.com/
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
Lag
RUNNING
STOPPED

Status

Group

Time Since Chkpt MANAGER
EXTRACT
EXT1

00:00:00

00:12:24

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.
Anar Godjaev
http://anargodjaev.wordpress.com/
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
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
Lag
RUNNING
RUNNING
Destination:

Status

Group

Time Since Chkpt MANAGER
EXTRACT
EXT1

00:00:00

01:20:19

GGSCI (SERVER2) 15> start replicat rep1 Sending START

request to MANAGER ... REPLICAT REP1 starting
GGSCI (SERVER2) 19> info all
Program
MANAGER
REPLICAT

Status
RUNNING
RUNNING

Group

Lag

Time Since Chkpt

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.
Anar Godjaev
http://anargodjaev.wordpress.com/
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.
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
id: 27201 Description:

:
Process

********************************************************************
*** **
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
Anar Godjaev
http://anargodjaev.wordpress.com/
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
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
Anar Godjaev
http://anargodjaev.wordpress.com/
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.
Ş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;
Anar Godjaev
http://anargodjaev.wordpress.com/
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;
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
operations
1.00
operations
0.00
operations
0.00
operations
0.00

***
1.00

Mapped
Unmapped
Other
Excluded

Output to /ggs/dirdat/ex: Extracting from GGATE.GGS_MARKER to
GGATE.GGS_MARKER:
Anar Godjaev
http://anargodjaev.wordpress.com/
*** Total statistics since 2011-12-04 11:26:12 ***
database operations have been performed.

No

*** 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 ***
No database operations have been performed.
Extracting from SENDER.DENEME to RECEIVER.DENEME:
*** Total statistics since 2011-12-04 11:26:12 ***
Total inserts
updates
deletes
discards
operations

1.00
0.00 Total
0.00 Total
0.00 Total
1.00

Total

*** Daily statistics since 2011-12-04 11:26:12 ***
Total inserts
updates
deletes
discards
operations

1.00 Total
0.00 Total
0.00 Total
0.00 Total
1.00

*** Hourly statistics since 2011-12-04 12:00:00 ***
No database operations have been performed.
Anar Godjaev
http://anargodjaev.wordpress.com/
*** Latest statistics since 2011-12-04 11:26:12 ***
inserts
1.00 Total
updates
0.00 Total
deletes
0.00 Total
discards
operations

Total

0.00 Total
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
operations
operations
operations
operations

1.00
0.00
0.00
0.00

Errors
errors

0.00
0.00

errors

Unmapped
Other
Excluded

0.00
Ignored
0.00

Retried
Discarded errors

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 ***
inserts
1.00
Total
updates
0.00
Total
deletes
0.00
Total
discards
0.00
Total
operations
1.00

Total
Anar Godjaev
http://anargodjaev.wordpress.com/
*** Hourly statistics since 2014-02-18 15:00:00 ***
database operations have been performed
*** Latest statistics since 2014-02-18 14:42:17 * Total
inserts
1.00
Total
updates
deletes
discards
operations
End of Statistics.

0.0 Total
0.00 Total
0.00 Total
1.00

No

More Related Content

PDF
Oracle 10g Database Server Kurulum
DOCX
Database Vault / Verinin Güvenliği
DOCX
Veri̇tabani ve Kullanici Yöneti̇mi̇
PDF
Yeni başlayanlar i̇çin Oracle 12c
DOCX
Redologlar ve Yöneti̇mi̇
PDF
Exadata Performance Notes
PDF
Oracle Audit Vault & Database Vault
DOC
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan
Oracle 10g Database Server Kurulum
Database Vault / Verinin Güvenliği
Veri̇tabani ve Kullanici Yöneti̇mi̇
Yeni başlayanlar i̇çin Oracle 12c
Redologlar ve Yöneti̇mi̇
Exadata Performance Notes
Oracle Audit Vault & Database Vault
Orneklere Oracle 11gR2 ve Genel Kavramlar Isimli kitabdan

What's hot (15)

DOC
11 g RAC -ASM
PPTX
Failover Clustering Sql Server
PDF
Oracle veritabani performans kontrol listesi
PDF
Raid technologies
PDF
Oracle veritabanı yonetiminde onemli teknikler
DOCX
Konu anlatım
DOC
Performance Tuni̇ng
PDF
Oracle Enterprise Manager Cloud Control 12c
PDF
Puppet ile Linux Sistem Yönetimi Otomasyonu
PDF
Veritabanı Sızma Testleri - Keşif
DOCX
Nutanix Teknik Dokuman
PPTX
Webcast - Failover Cluster Architecture
PDF
Linux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
PDF
NETSCALER SSLLABS A Plus
11 g RAC -ASM
Failover Clustering Sql Server
Oracle veritabani performans kontrol listesi
Raid technologies
Oracle veritabanı yonetiminde onemli teknikler
Konu anlatım
Performance Tuni̇ng
Oracle Enterprise Manager Cloud Control 12c
Puppet ile Linux Sistem Yönetimi Otomasyonu
Veritabanı Sızma Testleri - Keşif
Nutanix Teknik Dokuman
Webcast - Failover Cluster Architecture
Linux Yaz Kampı 2017 GNU/Linux Eğitim Dökümanı
NETSCALER SSLLABS A Plus
Ad

Viewers also liked (11)

DOCX
Wait Interface
DOCX
Tuning SGA
DOCX
Table Partitions
DOCX
Oracle GoldenGate
DOCX
Conditional Control
DOCX
How to protect your sensitive data using oracle database vault / Creating and...
DOCX
Asm disk group migration from
DOCX
Backup and Recovery
DOCX
Audit Mekani̇zmasi
DOC
Backup and Recovery Procedure
DOCX
how to protect your sensitive data using oracle database vault
Wait Interface
Tuning SGA
Table Partitions
Oracle GoldenGate
Conditional Control
How to protect your sensitive data using oracle database vault / Creating and...
Asm disk group migration from
Backup and Recovery
Audit Mekani̇zmasi
Backup and Recovery Procedure
how to protect your sensitive data using oracle database vault
Ad

Similar to Oracle Golden Gate (20)

PDF
Oracle Veritabanı Güvenlik Testi Çalışmaları
DOCX
Instance ve Media Bozukluklarını Inceleme
DOC
Recovery Manager (RMAN)
DOCX
Oracle database architecture
PDF
Holynix v1
DOC
DATABASEI ARCHIVE MODA ALMA
PPTX
PPT
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
PDF
Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul
DOCX
VERİTABANI SIZMA TESTLERİ
PDF
Nmap sonuclarinin yorumlanmasi
PPTX
Sonsunu
PPTX
Oracle sunu
PPTX
Hafta13
PPTX
Oracle 11g Distince
PDF
MSSQL Hacking ve Post Exploitation Yontemleri
PPTX
Oracle ile tanisalim
POTX
Operating Systems
DOC
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"
Oracle Veritabanı Güvenlik Testi Çalışmaları
Instance ve Media Bozukluklarını Inceleme
Recovery Manager (RMAN)
Oracle database architecture
Holynix v1
DATABASEI ARCHIVE MODA ALMA
2010 Kocaeli Linux Günleri - Linux Güvenlik UygulamalarıLinux
Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul
VERİTABANI SIZMA TESTLERİ
Nmap sonuclarinin yorumlanmasi
Sonsunu
Oracle sunu
Hafta13
Oracle 11g Distince
MSSQL Hacking ve Post Exploitation Yontemleri
Oracle ile tanisalim
Operating Systems
Oracle Mimarisi "Orneklerle Oracle 11g R2 ve Genel kavramlar isimli KItabdan"

More from Anar Godjaev (14)

DOCX
DataPump ile Single Parititon Export
DOCX
Contraints
DOCX
Oracle SQL
DOCX
PL/SQL Blocks
DOCX
Parallel Server
DOCX
Memory Management
DOCX
LogMiner
DOCX
Undo Management
DOCX
DOCX
Oracle Managed Files
DOCX
Oracle Enterprise Linux 5
DOCX
Oracle Database 11g R2 Installation
DOCX
Change DB Name
DOC
Oracle Tablespace Yonetimi
DataPump ile Single Parititon Export
Contraints
Oracle SQL
PL/SQL Blocks
Parallel Server
Memory Management
LogMiner
Undo Management
Oracle Managed Files
Oracle Enterprise Linux 5
Oracle Database 11g R2 Installation
Change DB Name
Oracle Tablespace Yonetimi

Oracle Golden Gate

  • 1. Anar Godjaev http://anargodjaev.wordpress.com/ Yazarlar:  Emrah Uysal (Senior Technical Sales Consultant at Oracle)  Anar Godjaev (Senior Oracle Database Admin at YKB Azerbaijan) OracleGolden 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 kullanılabilir. Oracle GoldenGate çözümünün desteklediği veritabanı teknolojilerini aşağıdaki tablodaki gibidir.
  • 2. Anar Godjaev http://anargodjaev.wordpress.com/ Master veritabanı: Yedek Veritabanı: - Oracle- IBM DB2 - Microsoft SQL Server - Yandaki veritabanlarının hepsi- Ingres, MySql, HP - Neoview - Sysbase ASE - ODBC uyumlu herhangi bir veritabanı - Teradata - Enscribe - SQL/MP - SQL/MX 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. [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.
  • 3. Anar Godjaev http://anargodjaev.wordpress.com/ [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 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,
  • 4. Anar Godjaev http://anargodjaev.wordpress.com/ 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. 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
  • 5. Anar Godjaev http://anargodjaev.wordpress.com/ 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. 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.
  • 6. Anar Godjaev http://anargodjaev.wordpress.com/ 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' 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'
  • 7. Anar Godjaev http://anargodjaev.wordpress.com/ 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 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.
  • 8. Anar Godjaev http://anargodjaev.wordpress.com/ 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. [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.
  • 9. Anar Godjaev http://anargodjaev.wordpress.com/ [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:ggateYou 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:INITIALSETUPWorking, 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:yesDDL 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 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 ---------- -------------------
  • 10. Anar Godjaev http://anargodjaev.wordpress.com/ ---------------------------------------------- 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 ------------------------------------------------------------------------------ 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:ggateWrote 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.
  • 11. Anar Godjaev http://anargodjaev.wordpress.com/ 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; 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
  • 12. Anar Godjaev http://anargodjaev.wordpress.com/ 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. GGSCI (ANAR1) 3> info all Program Lag Status Time Since Chkpt MANAGER Group 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
  • 13. Anar Godjaev http://anargodjaev.wordpress.com/ 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 Lag RUNNING STOPPED Status Group Time Since Chkpt MANAGER EXTRACT EXT1 00:00:00 00:12:24 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.
  • 14. Anar Godjaev http://anargodjaev.wordpress.com/ 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 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 Lag RUNNING RUNNING Destination: Status Group Time Since Chkpt MANAGER EXTRACT EXT1 00:00:00 01:20:19 GGSCI (SERVER2) 15> start replicat rep1 Sending START request to MANAGER ... REPLICAT REP1 starting GGSCI (SERVER2) 19> info all Program MANAGER REPLICAT Status RUNNING RUNNING Group Lag Time Since Chkpt 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.
  • 15. Anar Godjaev http://anargodjaev.wordpress.com/ 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. 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 id: 27201 Description: : Process ******************************************************************** *** ** 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
  • 16. Anar Godjaev http://anargodjaev.wordpress.com/ 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 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
  • 17. Anar Godjaev http://anargodjaev.wordpress.com/ 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. Ş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;
  • 18. Anar Godjaev http://anargodjaev.wordpress.com/ 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; 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 operations 1.00 operations 0.00 operations 0.00 operations 0.00 *** 1.00 Mapped Unmapped Other Excluded Output to /ggs/dirdat/ex: Extracting from GGATE.GGS_MARKER to GGATE.GGS_MARKER:
  • 19. Anar Godjaev http://anargodjaev.wordpress.com/ *** Total statistics since 2011-12-04 11:26:12 *** database operations have been performed. No *** 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 *** No database operations have been performed. Extracting from SENDER.DENEME to RECEIVER.DENEME: *** Total statistics since 2011-12-04 11:26:12 *** Total inserts updates deletes discards operations 1.00 0.00 Total 0.00 Total 0.00 Total 1.00 Total *** Daily statistics since 2011-12-04 11:26:12 *** Total inserts updates deletes discards operations 1.00 Total 0.00 Total 0.00 Total 0.00 Total 1.00 *** Hourly statistics since 2011-12-04 12:00:00 *** No database operations have been performed.
  • 20. Anar Godjaev http://anargodjaev.wordpress.com/ *** Latest statistics since 2011-12-04 11:26:12 *** inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards operations Total 0.00 Total 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 operations operations operations operations 1.00 0.00 0.00 0.00 Errors errors 0.00 0.00 errors Unmapped Other Excluded 0.00 Ignored 0.00 Retried Discarded errors 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 *** inserts 1.00 Total updates 0.00 Total deletes 0.00 Total discards 0.00 Total operations 1.00 Total
  • 21. Anar Godjaev http://anargodjaev.wordpress.com/ *** Hourly statistics since 2014-02-18 15:00:00 *** database operations have been performed *** Latest statistics since 2014-02-18 14:42:17 * Total inserts 1.00 Total updates deletes discards operations End of Statistics. 0.0 Total 0.00 Total 0.00 Total 1.00 No