• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Oracle Golden Gate
 

Oracle Golden Gate

on

  • 227 views

 

Statistics

Views

Total Views
227
Views on SlideShare
178
Embed Views
49

Actions

Likes
1
Downloads
4
Comments
0

2 Embeds 49

http://anargodjaev.wordpress.com 46
https://anargodjaev.wordpress.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Oracle Golden Gate Oracle Golden Gate Document Transcript

    • 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