Bu 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/
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…