">

Golden Gate Kurulumu ve Konfigurasyonu

Golden Gate Kurulumu ve Konfigurasyonu

Merhaba Arkadaşlar,

Bu yazımda sizlere Golden gete kurulumumu ve konfigurasyonunun nasıl yapılacağını anlatacağım.

ilk olarak elimizde 2 tane linux işletim sistemi kurulu makina olduğunu düşünüyorum.

  • Oracle support’tan Golden Gate uygulaması indirilir.( V46695-01.zip)

https://edelivery.oracle.com/osdc/faces/SearchSoftware?_afrLoop=176962510600870&_afrWindowMode=0&_adf.ctrl-state=6xsr7ns1n_9

  •  Her iki makinadada aşağıdaki komutlar çalıştırılır.

 [root@localhost ggs]# mkdir /ggs

 [root@localhost ggs]# chown oracle:oinstall /ggs

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

  • Her iki makinadada golden gate dosyası unzip edilir ve sonrasında içindeki tar dosyasıda unzip edilir.

 [oracle@localhost ggs]$ unzip V34339-01.zip

 [oracle@localhost ggs]$ tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

  • Aşağıdaki kısım her iki makinadada .bash_profile dosyasının sonuna eklenir.

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'

  • Her iki  makinasında aşağıdaki komutlar çalıştırılır.

[oracle@localhost ggs]$ cd /ggs

[oracle@localhost ggs]$ ggsci 

GGSCI (localhost.localdomain) 1> CREATE SUBDIRS GGSCI (localhost.localdomain) 10> exit [oracle@localhost ggs]$  mkdir $GGATE/discard
 

NOT:Burda golden gate’in alt dizinleri oluşturulur. Bu dizinler replikasyonlar için önemlidir. Bu dizinlerle ilgini bilgileri isterseniz. Dökümanın sonunda bulabilirsiniz. Her iki veritabanıda archivelog mod’da değil ise archivelog moduna alınır.

Her iki veritabanıda archivelog mod’da değil ise archivelog moduna alınır.

[oracle@localhost ggs]$  sqlplus / as sysdba
SQL> Shu immediate;
SQL> Startup mount;
SQL> Alter datebase archivelog;
SQL> Alter database open;
SQL> Select log_mode from v$database;

  • Aşağıdaki parametre her iki veritabanında değeri ayarlanır.
  • SQL> ALTER SYSTEM SET log_archive_dest_1='location=/yedek/arc/' SCOPE=spfile;
  • NOT:Kırmızı ile belirtilen kısma Değişiklik gösterebilir.
  •  Aşağıdaki parametre her iki veritabanındada ayarlanır
  • SQL> alter database add supplemental log data;
  • Golden gate için her iki makinada da kullanıcıları tanımlanır.
  • 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;
  • SQL> grant create any table to ggate;
  • SQL> grant create any view to ggate;
  • SQL> grant create any procedure to ggate;
  • SQL> grant create any sequence to ggate;
  • SQL> grant create any index to ggate;
  • SQL> grant create any trigger to ggate;
  • SQL> grant create any view to ggate;

  • Aşağıdaki komut ve scriptler sıra ile çalıştırılır
  • [oracle@localhost ggs]$  cd /ggs
  • [oracle@localhost ggs]$ sqlplus / as sysdba
  • 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.
  • Ggate user’ına özel bir tablescape yaratmak istersek aşağıdaki scriptler sıra ile çalıştırılır.
  • SQL> create tablespace GGATE datafile '/u01/app/oracle/oradata/orcll/ggate.dbf' size 200M;
  • SQL>alter user ggate default tablespace GGATE;
  • Daha sonra aşağıdaki script her iki makinadada çalıştırılır.
  • [oracle@localhost ggs]$ cd /ggs
  • [oracle@localhost ggs]$ sqlplus / as sysdba
  • SQL> @$GGATE/ddl_setup.sql;
  • NOT: ddl_setup.sql çalıştırıldıktan sonra oluşturduğumuz ggate kullanıcısına yetki vermemizi istiyor aşağıdaki komut çalıştırılır.
  • SQL> grant GGS_GGSUSER_ROLE to ggate;
  • Aşağıdaki komut ve sql her iki veritabanında da çalıştırılır.
  • [oracle@localhost ggs]$ cd /ggs
  • SQL> @$GGATE/role_setup.sql;
  • Primary veritabanında aşağıdaki scriptler çalıştırılır.
  • SQL> create user sender identified by sender 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;
  • Golden gate veritabanında aşağıdaki scriptler çalıştılır.
  • SQL> create user receiver identified by receiver 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;
  • Her iki makinada da aşağıdaki işlemler yapılır ve 7809 portu üzerinden bağlantı sağlanır.
  • [oracle@localhost ggs]$ cd $GGATE
  • [oracle@localhost 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 (localhost.localdomain) 1>  edit params mgr
  • PORT 7809 
  • GGSCI (localhost.localdomain) 1> start manager
  • Manager started.
  • GGSCI (localhost.localdomain) 1> info all
  • Program     Status      Group       Lag           Time Since Chkpt
  • MANAGER     RUNNING
  • Aşağıdaki scriptler primary makinada çalıştırılır
  • GGSCI (localhost.localdomain) 1> add extract ext1, tranlog, begin now
  • EXTRACT added.
  • NOT:Extract prosesini oluşturduktan sonra capture edilen transactionların localde bir alana yazılması gerekmektedir.Bunları trail servisiyle yazıyoruz.
  • GGSCI (localhost.localdomain) 1> ADD EXTTRAIL /ggs/dirdat/ex, EXTRACT EXT1
  • EXTTRAIL added.
  • NOT: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 (localhost.localdomain) 1> ADD RMTTRAIL /ggs/dirdat/lt, EXTRACT EXT1
  • Ext1 için gerekli olan parametre ayarlarını yapıyoruz.Kırmızı olan kısımda sender kullanıcısına ait ddl işlemlerinin karşıya gideceğini söylüyoruz.Mavi ile yazılan yerde ise * koyduğumuz için sender kullanıcısına ait tüm tabloların replike olacağını belirtiyoruz.
  • GGSCI (localhost.localdomain) 1> 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 (localhost.localdomain) 1> info all 
  • Program     Status      Group       Lag           Time Since Chkpt
  • MANAGER     RUNNING                                         
  • EXTRACT     STOPPED     EXT1        00:00:00      00:12:24
  • Aşağdıaki işlemleri her iki veritabanında da yapılır.
  • GGSCI (localhost.localdomain) 1> edit params ./GLOBAL
  •    GGSCHEMA ggate
  • CHECKPOINTTABLE ggate.checkpoint
  • NOT:Burada yapılan konfigurasyonun sebebi  sonsuz bir dönüye girmemesi için yapılmıştır.
  • GGSCI (localhost.localdomain) 1> dblogin userid ggate
  • Password:
  • Successfully logged into database. 
  • GGSCI (localhost.localdomain) 1> add checkpointtable ggate.checkpoint
  • Successfully created checkpoint table GGATE.CHECKPOINT.

  • NOT: Burada yapılan konfigurasyon checkpoint tablosunun oluşturulmasıdır.

  • Aşağıdaki işlemler golden gate makinasında yapılır.
  • GGSCI (localhost.localdomain) 1> add replicat rep1, exttrail /ggs/dirdat/lt,checkpointtable ggate.checkpoint
  •  
  • GGSCI (localhost.localdomain) 1>  edit params rep1
  • SETENV (ORACLE_HOME = " /u01/app/oracle /product/11.2.0/db ")
  • SETENV (ORACLE_SID = "orcl")
  • replicat rep1
  • ASSUMETARGETDEFS
  • userid ggate, password ggate
  • discardfile /ggs/discard/rep1_discard.txt, append, megabytes 10
  • DDL
  • map sender.*, target receiver.*;
  • Aşağıdaki işlemler primary makinada yapılır.
  • GGSCI (localhost.localdomain) 1> start extract ext1
  • Sending START request to MANAGER ...
  • EXTRACT EXT1 starting
  • GGSCI (localhost.localdomain) 1> info all
  • Program     Status      Group       Lag           Time Since Chkpt
  • MANAGER     RUNNING                                         
  • EXTRACT     RUNNING     EXT1        00:00:00      01:20:19
  • Golden gate de aşağıdaki işlemler yapılır.
  • GGSCI (localhost.localdomain) 1> start replicat rep1
  • Sending START request to MANAGER ...
  • REPLICAT REP1 starting
  • GGSCI (localhost.localdomain) 1> info all
  • Program     Status      Group       Lag           Time Since Chkpt
  • MANAGER     RUNNING                                         
  • REPLICAT    RUNNING     REP1        00:00:00      00:00:02
  • NOT: Herhangi bir hata ile karşilaşırsanız aşağıdaki komut ile hatanın ne olduğuna bakabilirsiniz.
  •     GGSCI (localhost.localdomain) 1> view report ext1
  • Primary veritabanında Aşağıdaki şekilde bağlanılır ve tablolar oluşturulur.
  • [oracle@localhost ggs]$ sqlplus '/as sysdba'
  • SQL> conn sender/sender
  • Connected.
  • SQL> create table engin (alan1 varchar2(10));
  • Table created.
  • SQL> insert into engin values('DENEME');
  • 1 row created.
  • SQL> commit;
  • Commit complete.
  • SQL> select * from deneme;
  • ALAN1
  • ----------
  • DENEME
  • Golden gate makinasında da aşağıdaki şekilde kontrol edilir. Göreceği üzere Replikasyon başarılı bir şekilde yapılmıştır :)
  • [oracle@localhost ggs]$  sqlplus '/as sysdba'
  • SQL> conn receiver/receiver
  • Connected.
  • SQL> select * from engin;
  • ALAN1
  • ----------
  • DENEME
  • Golden Gate de oluşturulan dizinlerin bilgileri:
  •  dirchk
  • Veri tutarlılığının sağlanmasını sağlayan checkpointdosyalrının tutulduğu dizindir.
  •  dirdat
  • Replicat ve extract proseslerinin kullandığı trail dosyaların tutulduğu yerdir. Tutulan dosyaların formatı < prefix> şekildnedir.
  •  dirdef
  • Data defination dosyalarının tutulduğu yerdir genellikle oracledan farkli veritabanlarına replikasyon yapılacağında tabloların redefination bilgileri tutulur.
  • Dirpcs
  • Burada proseslerin durumunu gösteren dosyaların tutulduğu dizindir dosyaların formatı . şeklindedir.
  • dirprm
  • Bu dizin parameter dosyaların bulunduğu dizindir. Dosyanın formatı şeklindedir.
  • dirrpt
  • Rapor dosyalarının durduğu yerdir.
  • dirsql
  • Sql dosyalarının saklandığı dizindir.
  • Umarım faydalı olmuştur...

Yorumlar

Henüz yorum yapılmadı.

Yorum Yapın