Oracle Enterprise Linux İşletim Sisteminde Standalone Veritabanını Elle Klonlama (Manually Cloning)

OracleDbEntBu makalemizde “Oracle Enterprise Linux İşletim Sisteminde Standalone Veritabanını Elle Klonlama (Manually Cloning)” konusunu inceleyeceğiz. Bu yapılandırma sayesinde mevcut çalışan bir veritabanını hiç kurulum yapılmamış bir sunucuya elle taşıyarak çalışmasını sağlayacağız. Bu yapılandırma özellikle test ortamları için veritabanı oluşturma işlemlerimizi kısa sürede yapmamızı sağlayacaktır. Ancak bu yapılandırma gerçek (production) ortamlar için kesinlikle önerilen bir yapılandırma değildir. İşlemlerimizi mevcut çalışan bir veritabanından üzerinde oracle kurulu olmayan bir sunucuya doğru yapacağız. İşlemler için “Oracle Enterprise Linux” işletim sistemi kullanılmıştır ve tüm Red Hat türevi işletim sistemleri ile uyumludur. Veritabanı olarak da “Oracle 11g R2 (11.2.0.3) Enterprise Edition” kullanılmıştır. Klonlama yapacağımız sunucunun kaynak sunucu ile versiyonunun ve yapılandırmasının aynı olmasına dikkat etmeliyiz.

Dikkat Edilecekler;

  • Bu işlem hızlı bir şekilde test ortamı yaratabilmemiz için kolaylık sağlayacaktr. Kesinlikle gerçek (production) ortamlar için uygulanmamalıdır. Bu tip durumlarda temiz yeni yükleme işlemi yapılmalıdır.
  • Bu işlem Cluster (Rac) ve ASM (Grid) ortamlarında uygulanamaz. Sadece Single instance ve dosya sistemi (File System) kullanan ortamlar içindir. ASM (Grid) ortamlarında yapılandırma işlemi çok detaylı olup çalışmama ihtimali yüksektir.
  • Klon işlemi yapılacak sunucu ile kaynak sunucunun işletim sistemleri ve versiyonlarının aynı olması gerekmektedir.
  • Klon işlemi yapılacak sunucuda Oracle Veritabanı için gerekli olan öngereksinimlerin yapılandırılmış olması gerekmektedir.
  • Klon işlemi yapılacak sunucuda disk alanı ve bellek miktarı en az kaynak sunucu kadar olmalıdır. Daha düşük veya yüksek sistem kaynakları ile çalıştırılacaksa klonlama işlemi sonrası parametrelerin buna göre ayarlanması gerekmektedir.
  • Klonlama işlemi sonrası “network files” dediğimiz “listener.ora” ve “tnsnames.ora” dosyalarında “hostname” veya IP adresi gibi parametrelerin klonlama yapılan sunucuya göre düzenlenmesi gerekmektedir.

Sunucu Yapılandırması;

-- Kaynak Sunucu Özellikleri

İşletim Sistemi		: Oracle Enterprise Linux 6.4 64 Bit
Sunucu ismi		: koraykey-db1.localdomain
IP Adresi		: 192.168.2.121

-- Hedef (Klonlama Yapılacak) Sunucu Özellikleri

İşletim Sistemi		: Oracle Enterprise Linux 6.4 64 Bit
Sunucu ismi		: koraykey-db2.localdomain
IP Adresi		: 192.168.2.122

1. Klonlama işlemi yapılacak sunucumuza işletim sistemimizi kaynak veritabanımızdaki işletim sistemi ile aynı şekilde kuruyoruz. Örnek kurulum için “Oracle Enterprise Linux Kurulumu” yazımızdan faydalanabilirsiniz.

2. Klonlama yapılacak sunucumuzda veritabanı kurulum işlemi öncesi gerekli olan öngereksinim yapılandırmasını tamamlamalıyız. Örnek yapılandırma için “Oracle Enterprise Linux İşletim Sisteminde Standalone (Single Instance) Oracle 11g R2 Veritabanı Kurulumu” yazımızdan veya “Oracle Tahiti” sitesinden faydalanabilirsiniz.

3. Kaynak sunucumuzdaki çalışan veritabanı servislerimizi durdurmak için aşağıdaki işlemleri yapıyoruz.

-- Aşağıdaki işlemleri "oracle" kullanıcımız ile yapıyoruz.

# su - oracle

-- Oracle Enterprise Manager konsolumuzu durduruyoruz.

$ emctl stop dbconsole

-- Veritabanı ve network servislerimizi durduruyoruz.

$ dbshut $ORACLE_HOME

4. Veritabanı yazılımımızın ve veri dosyalarının (datafile) bulunduğu disk veya dizini sıkıştırılmış dosya olarak hazırlamak için aşağıdaki işlemleri yapıyoruz.

-- Aşağıdaki işlemleri "root" kullanıcısı ile yapıyoruz.

-- Veritabanı yazılımımızın ve veri dosyalarının (datafile) bulunduğu disk veya
dizini sıkıştırılmış dosya olarak hazırlıyoruz.

# tar -cvf /tmp/oracle.tar /u01

# gzip /tmp/oracle.tar

5. Kaynak sunucumuzda oluşturduğumuz sıkıştırılmış dosyaları hedef sunucumuza “secure ssh” ile kopyalamak için aşağıdaki işlemleri yapıyoruz.

-- Kaynak sunucumuzda aşağıdaki komutu çalıştırıyoruz ve istediği bilgileri
giriyoruz. Bu işlem süresi özellikle "datafile" dosyalarımızın büyüklüğüne göre
değişecektir.

# scp /tmp/oracle.tar.gz root@koraykey-db2:/tmp/oracle.tar.gz

The authenticity of host 'koraykey-db2 (192.168.2.122)' can't be established.
RSA key fingerprint is 7b:5a:92:8e:93:42:e6:60:50:d5:9e:6e:c6:86:24:21.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'koraykey-db2,192.168.2.122' (RSA)

6. Hedef sunucumuza kopyaladığımız sıkıştırılmış dosyaları açmak için aşağıdaki işlemleri yapıyoruz.

-- Hedef sunucumuzda sıkıştırılmış dosyaları orjinal yerlerine açmak aşağıdaki
komutları sırasıyla çalıştırıyoruz.

# gunzip /tmp/oracle.tar.gz

# cd /

# tar -xvf /tmp/oracle.tar

7. Hedef sunucumuzda açtığımız dosyaların sahiplik izinlerini ayarlamak için aşağıdaki işlemleri yapıyoruz.

-- Hedef sunucumuzda açtığımız dosyaların sahipliğini ayarlıyoruz.

# chown -R oracle:oinstall /u01

8. Hedef sunucumuzda “Post Installation” işlemlerimizi gerçekleştiriyoruz. Bunun için veritabanı kurulumunda kullandığımız scriptleri aşağıdaki gibi çalıştırıyoruz.

-- Post Installation işlemleri için aşağıdaki scriptleri çalıştırıyoruz.

# /u01/app/oraInventory/orainstRoot.sh
# /u01/app/oracle/product/11.2.0.3/db/root.sh

9. Hedef sunucumuzda “oracle” kullanıcımızın “.bash_profile” dosyasını aşağıdaki gibi sunucu sistemimize göre düzenliyoruz.

$ cd
$ vim .bash_profile

# Oracle bash_profile Environment Settings

TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=koraykey-db2.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
DB_HOME=$ORACLE_BASE/product/11.2.0.3/db; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID
ORACLE_HOME_LISTNER=$ORACLE_HOME export ORACLE_HOME_LISTNER
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$PATH:$ORACLE_HOME/OPatch:$BASE_PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

10. Hedef sunucumuzdaki “network files” dediğimiz “listener.ora” ve “tnsnames.ora” dosyalarında “hostname” veya IP adresi gibi parametrelerin klonlama yapılan sunucuya göre düzenliyoruz.

-- "listener.ora" dosyamızı yeni sunucumuza göre düzenliyoruz.

$ vim /u01/app/oracle/product/11.2.0.3/db/network/admin/listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = koraykey-db2.localdomain)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

-- "tnsnames.ora" dosyamızı yeni sunucumuza göre düzenliyoruz.

$ vim /u01/app/oracle/product/11.2.0.3/db/network/admin/tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = koraykey-db2.localdomain)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

11. Hedef sunucumuzda servislerimizin otomatik başlaması için gerekli ayarları yapıyoruz.

-- Aşağıdaki dosyamıza gerekli parametreyi ekliyoruz.

orcl:/u01/app/oracle/product/11.2.0.3/db:Y

12. Hedef sunucumuzda veritabanı işlemlerimiz tamamlandı. Şimdi klonlama işlemi yaptığımız veritabanımızı başlatıyoruz.

-- Veritabanımızı başlatmak için aşağıdaki komutu çalıştırıyoruz.

$ dbstart $ORACLE_HOME

13. Veritabanımızın durumunu kontrol etmek için aşağıdaki işlemleri yapıyoruz.

-- Klonlanmış veritabanımıza bağlanıyoruz ve "instance" durumumuzu sorguluyoruz.

$ sqlplus / as sysdba 

SQL*Plus: Release 11.2.0.3.0 Production on Mon Jul 29 19:25:14 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select status from v$instance;

STATUS
------------
OPEN

14. Hedef sunucumuzda veritabanımızdan sonra “Enterprise Manager” yönetim konsolumuzuda yeniden yapılandırmamız gerekmektedir. Bunun için aşağıdaki işlemleri hedef sunucumuzda uygulamalıyız.

-- Sunucumuzda "Enterprise Manager" konsolumuzun durumunu sorgulamak için aşağıdaki
komutu çalıştırabiliriz.

$ emctl status dbconsole
OC4J Configuration issue.

-- Gördüğümüz gibi hata vermektedir. Yapılandırma işlemi öncesi "Listener" ve
veritabanı servisimizin çalışır durumda olduğundan emin olmalıyız

-- Sunucumuzda "Enterprise Manager" "repository" yeniden yaratıyoruz ve bu işlem
sırasından bizden istediği bilgileri aşağıdaki gibi giriyoruz.

$ emca -config dbcontrol db -repos recreate

STARTED EMCA at Jul 29, 2013 7:32:16 PM
EM Configuration Assistant, Version 11.2.0.3.0 Production
Copyright (c) 2003, 2011, Oracle.  All rights reserved.

Enter the following information:
Database SID: orcl
Listener port number: 1521
Listener ORACLE_HOME [ /u01/app/oracle/product/11.2.0.3/db ]: 
Password for SYS user: ********** 
Password for DBSNMP user: **********
Password for SYSMAN user: ********** 
Email address for notifications (optional): 
Outgoing Mail (SMTP) server for notifications (optional): 
-----------------------------------------------------------------

You have specified the following settings

Database ORACLE_HOME ................ /u01/app/oracle/product/11.2.0.3/db

Local hostname ................ koraykey-db2.localdomain
Listener ORACLE_HOME ................ /u01/app/oracle/product/11.2.0.3/db
Listener port number ................ 1521
Database SID ................ orcl
Email address for notifications ............... 
Outgoing Mail (SMTP) server for notifications ............... 

-----------------------------------------------------------------
WARNING : While repository is dropped the database will be put in quiesce mode.
-----------------------------------------------------------------
Do you wish to continue? [yes(Y)/no(N)]: y
Jul 29, 2013 7:33:04 PM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at
/u01/app/oracle/cfgtoollogs/emca/orcl/emca_2013_07_29_19_32_15.log.
.
.
.
Enterprise Manager configuration completed successfully
FINISHED EMCA at Jul 29, 2013 7:41:28 PM

15. Hedef sunucumuzdaki yapılandırdığımız “Enterprise Manager” konsolumuzun çalıştığından emin olmak için gerekli kontrollerimizi yapıyoruz.

-- Enterprise Manager konsolumuzun durumunu sorguluyoruz.

$ emctl status dbconsole

Oracle Enterprise Manager 11g Database Control Release 11.2.0.3.0 
Copyright (c) 1996, 2011 Oracle Corporation.  All rights reserved.
https://koraykey-db2.localdomain:5500/em/console/aboutApplication
Oracle Enterprise Manager 11g is running. 
------------------------------------------------------------------
Logs are generated in directory
/u01/app/oracle/product/11.2.0.3/db/koraykey-db2.localdomain_orcl/sysman/log

-- Gördüğümüz gibi Enterprise Manager konsolumuz artık çalışıyor.

16. Hedef sunucumuzda Internet tarayıcımız ile konsolumuza aşağıdaki gibi bağlanabilir ve kullanabiliriz.

https://koraykey-db2.localdomain:5500/em/

CloneDBEm_1

Bu makalemizde “Oracle Enterprise Linux İşletim Sisteminde Standalone Veritabanını Elle Klonlama (Manually Cloning)” işlemini inceledik. Yukarıdaki işlemler “Oracle Enterprise Linux” işletim sisteminde uygulanmıştır ve Red Hat türevi (CentOS vb.) işletim sistemlerinde geçerlidir.

Bir sonraki makalemizde görüşmek dileğiyle…

Bu yazı Oracle kategorisine gönderilmiş ve , , , , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.