Oracle Veritabanını Dosya Sisteminden ASM Dosya Sistemine Taşıma Yapılandırması (File System to ASM)

OracleDbEntBu makalemizde “Oracle Veritabanını Dosya Sisteminden ASM Dosya Sistemine Taşıma Yapılandırması” konusunu inceleyeceğiz. Veritabanımızın çalıştığı sunucuda bulunan veri dosyalarımızı işletim sistemi dosya sisteminden ASM dosya sistemine (File System to ASM) taşıyacağız. Senaryomuza göre önceden dosya sistemine kurulmuş bir veritabanı sunucumuza öncelikle atanmış olan iki diskimizi “DATA” ve “FRA” olarak “ASM Library” ile damgalayacağız ve sonrasında “Grid Infrastructure” yazılımını kuracağız.

1. İşlemlerimiz boyunca bir sorun olmaması için sunucumuzda çalışan veritabanı ve ilgili servislerimizi durduruyoruz. Ayrıca bu işlemlere başlamadan önce tüm veritabanımızın bir yedeğini almalıyız.

-- 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

2. Sunucumuza veri depolama ünitemizden atanmış olan iki adet diskimizi belirleyip bunları “ASM Library” ile damgalıyoruz. Eğer disklerimiz için “Multipath” yapılandırması yapmamız gerekiyorsa “Linux İşletim Sistemlerinde Multipath Yapılandırması” yazımızı inceleyebilirsiniz.

-- Sunucumuzda bulunan disklerimizi listeliyoruz.

# ll /dev/sd*
brw-rw---- 1 root disk 8,  0 Jul 31 18:47 /dev/sda
brw-rw---- 1 root disk 8,  1 Jul 31 18:47 /dev/sda1
brw-rw---- 1 root disk 8,  2 Jul 31 18:47 /dev/sda2
brw-rw---- 1 root disk 8, 16 Jul 31 18:47 /dev/sdb
brw-rw---- 1 root disk 8, 32 Jul 31 18:47 /dev/sdc

-- Sistem disklerimiz aşağıdaki gibi,
brw-rw---- 1 root disk 8,  0 Jul 31 18:47 /dev/sda
brw-rw---- 1 root disk 8,  1 Jul 31 18:47 /dev/sda1
brw-rw---- 1 root disk 8,  2 Jul 31 18:47 /dev/sda2

-- ASM için kullanacağımız disklerimizse aşağıdaki gibidir.
brw-rw---- 1 root disk 8, 16 Jul 31 18:47 /dev/sdb
brw-rw---- 1 root disk 8, 32 Jul 31 18:47 /dev/sdc

2. Sunucumuzda ASM için kullanacağımız disklerde partition table oluşturuyoruz.

# fdisk /dev/sdb

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
Using default value 1305

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

1. soruda "n" seçeneğini veriyoruz.
2. soruda türünü soruyor “p” seçeneğini veriyoruz primary olarak
oluşturuyoruz.
3. soruda enter diyerek default seçeneği veriyoruz.
Dördüncü ve Beşinci soruları enter diyerek default seçeneğinde bırakıyoruz.

-- Aynı işlemi diğer diskimiz içinde yapıyoruz.

# fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1305, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305): 
Using default value 1305

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

-- Artık disklerimiz hazır.

# ll /dev/sd*
brw-rw---- 1 root disk 8, 16 Mar 10 23:00 /dev/sdb
brw-rw---- 1 root disk 8, 17 Mar 10 23:00 /dev/sdb1
brw-rw---- 1 root disk 8, 32 Mar 10 23:03 /dev/sdc
brw-rw---- 1 root disk 8, 33 Mar 10 23:03 /dev/sdc1

-- Komutunu çalıştırdığımızda  sdb1 ve sdc1 olarak disklerimizin oluştuğunu
görüyoruz.

3. Sunucumuzda “Oracle ASM Library” ile disklerimizi ASM Dosya Sistemi için damgalayabiliriz.

-- Öncelikle ASM Library için yetkilendirme ve yapılandırma ayarımızı
yapıyoruz.

# oracleasm configure -I
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y

The next two configuration options take substrings to match device names.
The substring "sd" (without the quotes), for example, matches "sda", "sdb",
etc.  You may enter more than one substring pattern, separated by spaces.
The special string "none" (again, without the quotes) will clear the value.

Device order to scan for ASM disks []: 
Devices to exclude from scanning []: 
Use device logical block size for ASM (y/n) [n]: y
Writing Oracle ASM library driver configuration: done

-- Şimdi Oracle ASM Kernel modülünü aktif edelim.

# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": oracleasm
Configuring "oracleasm" to use device logical block size 
Mounting ASMlib driver filesystem: /dev/oracleasm

Bu işlemlerden sonra artık ASM için disklerimizi oluşturup
damgalayabiliriz.

# oracleasm createdisk data1 /dev/sdb1
Writing disk header: done
Instantiating disk: done

# oracleasm createdisk fra1 /dev/sdc1
Writing disk header: done
Instantiating disk: done

-- Oluşturduğumuz disklerimizi listelemek için

# ll /dev/oracleasm/disks/
total 0
brw-rw---- 1 oracle dba 8, 17 Mar 10 23:11 DATA1
brw-rw---- 1 oracle dba 8, 33 Mar 10 23:12 FRA1

veya

# oracleasm listdisks
DATA1
FRA1

-- Yukarıda görüldüğü gibi "DATA" ve "FRA" adında 2 diskimiz oluşmuş ve
ASM için damgalanmış durumda.

4. Oracle Grid Infrastructure kurulumunu yapabilmek, kurulum ve patch dosyalarımızı koyabilmek için gerekli olan dizinleri yaratıp hakları atıyoruz.

# mkdir -p /u01/app/11.2.0.3/grid
# mkdir -p /u01/orainstall
# mkdir -p /u01/orainstall/opatch
# mkdir -p /u01/orainstall/patchset
# chown -R oracle:oinstall /u01/app/11.2.0.3/grid
# chmod -R 775 /u01/app/11.2.0.3/grid

/u01/app/11.2.0.3/grid
Grid Infrastructure kurulum dizini.

/u01/orainstall
Oracle kurulum dosyalarını atacağımız dizin.

5. Kuruluma geçebilmemiz için ftp yada başka bir yöntem ile kurulum dosyalarımızı oluşturduğumuz “/u01/orainstall/” dizini altına atıyoruz. Eğer sunucumuzda ftp server özelliği aktif edilmemişse “Linux İşletim Sistemlerinde HTTP ve FTP Server Yapılandırması” makalemizden faydalanarak gerekli ayarları yapabiliriz. Oracle kullanıcısı ile kopyalama işlemimiz bittiğinde kurulum dosyalarımızı kontrol ediyoruz.

# su - oracle

$ ls
p10404530_112030_Linux-x86-64_3of7.zip

6. Oracle Grid Infrastructure kurulumu için ilk 3. zip dosyasına ihtiyacımız var. Bu kurulum dosyalarımızı OTN veya MOS hesaplarımız ile indirebiliriz. Eğer son versiyon kurulumu yapabilmek istiyorsak (11.2.0.3.0 gibi) MOS dediğimiz Oracle Support üyeliğimizin olması gerekmektedir. Eğer buna sahip değilsek o zaman OTN hesabımız ile çıkmış olan ilk versiyonu (11.2.0.1.0 gibi) indirebiliriz. Burada dikkat edeceğimiz veritabanı versiyonumuz ile Grid versiyonumuzun uyumlu bir versiyonda olması. Bunun için kurulum sonrası gerekli kontrolleri yaparak gerekiyorsa patch geçme işlemini uygulamalıyız. Şimdi bu sıkıştırılmış dosyalarımızı oracle kullanıcısı ile açıyoruz.

-- Sıkıştırılmış dosyamızı açıyoruz.

$ cd /u01/orainstall
$ unzip p10404530_112030_Linux-x86-64_3of7.zip

Ayıklama işlemi tamamlandığında yer kaplamaması için istersek .zip dosyalarını
temizleyebiliriz.

$ rm p10404530_112030_Linux-x86-64_*

7. Veritabanımızı “dbca” aracı ile sunucu üzerinde değilde uzaktan kendi bilgisayarımızda yapılacaksa ekranı export edebiliriz. Bunun için “Xmanager” vb. emülatör yazılımları kullanılabilir. Bu yazılımı bilgisayarımıza kurduğumuzda “Xmanager – Passive” programını çalıştırmalıyız. Görev çubuğunda yazılım çalışacak ve export ettiğimiz ekranı kendi bilgisayarımızdan yönetebileceğiz. Bununla beraber “VNC Server” aracılığı ile de sunucuya bağlanabilir ve kurulumu direk sunucu üzerinden yapabiliriz. Bunun için “Linux İşletim Sistemlerinde VNC Server Yapılandırması” makalemizden yararlanabilirsiniz. Önerilen kurulumu VNC Server veya sunucu üzerinden yapmanız çünkü kurulum aşamasında network vb. kesintide kurulumunuz yarım kalabilir.

-- Aşağıdaki işlemleri "oracle" kullanıcısı ile yapmalıyız.

-- Öncelikle Xmanager vb. Emülatör programını bilgisayarımızda çalıştırmalıyız.
Ardından aşağıdaki komut ile görüntüyü export etmeliyiz.

$ DISPLAY=<machine-name>:0.0; export DISPLAY

Örnek;

$ DISPLAY=192.168.2.83:0.0; export DISPLAY

Test için;

$ xclock

-- Yazdığımızda ekranımızda bir saat yazılımının çalıştığını görmeliyiz. Eğer
açılmıyorsa ayarlarda bir sorun var demektir. Firewall vb. ayarlarımızı kontrol
etmeliyiz.

8. Bu işlemlerin tamamı bittiğinde kuruluma geçebiliriz. “Oracle Grid Infrastructure” yazılımının kurulumuna başlıyoruz.

-- Oracle kullanıcısı ile sistemimize bağlıyken

$ cd /u01/orainstall/grid/

kurulum dizininde bulunan

$ ./runInstaller

uygulamasını çalıştırıyoruz.

9. Açılan karşılama ekranında güncellemeler için bizden “Oracle Support MOS” hesabını istiyor bu adımı “Skip software updates” seçeneğini seçerek “Next” düğmesine tıklıyoruz.

DB_Install_1

10. Kurulumumuzu “Standalone” olarak yapacağımız için “Configure Oracle Grid Infrastructure for a Standalone Server” seçeneğini seçerek “Next” düğmesine tıklıyoruz.

DB_Install_2

11. Dil seçeneğimizi varsayılan olarak “English” olarak seçili bırakıyoruz ve “Next” düğmesine tıklıyoruz.

DB_Install_3

12. Daha önce oluşturduğumuz ASM Disklerimizi burada kullanıma sunuyoruz. “Disk Group Name” olarak DATA yazıyoruz ve “Redundancy” olarak “External” seçiyoruz ve “Next” düğmesine tıklıyoruz. Buradaki seçenekleri açıklayacak olursak.

External  : Yedeği yoktur.Ancak en performanslı moddur. Genelde hardware mirror varsa kullanılır ve varsayılan seçenektir. Burada şöyle düşünebiliriz. Bir veri depolama (storage) ünitemiz var ve oradan sunucumuza disk atanıyor ve mirror orada veri depolama ünitesi katmanında yapıldığı için bizim ayrıca oracle asm tarafında bir mirror oluşturmamıza gerek kalmıyor.

Normal  : ASM’nin 2 yönlü mirroring yaptığı konfigürasyondur. Bu durumda veri tutarlılığı artar ancak disk alanından taviz verilir.

High  : ASM’nin 3 yönlü mirroring yaptığı konfigürasyondur. Bu durumda veri tutarlılığı artar ancak disk alanından taviz verilir. Daha fazla veri sağlamlığı tesis edilmektedir.

DB_Install_4

13. Asm Library altında oluşan disklerin yolunu sisteme tanıtıyoruz “Change Discovery Path” düğmesine tıklayarak açılan pencerede disklerin yolu olan “/dev/oracleasm/disks” yolunu yazıyoruz.

DB_Install_5

14. Sistemimizdeki Oracle ASM damgalı üye diskleri artık ”Candidate Disks” seçeneği seçiliyken görebiliyoruz. “DATA” disk grubunu yapılandırdığımız için aşağıdaki alandan “DATA1″ yazılı diskimizi seçiyoruz. ASM “Allocation Units” konusundan bahsedecek olursak eğer bunları veritabanı instance’ının blokları veya extent’leri olarak düşünebilirsiniz. Amaçları bu miktar kadar alanın tahsis edilerek ilerlenmesini göstermektir. Disk grupları yaratılırken tanımlanabilirler ve varsayılan olarak 1 MB olurlar. 11g ile birlikte bu miktar da değişebilmektedir ve 2, 4, 8, 16, 32 ve en fazla 64 MB olarak yeniden tanımlanabilmektedirler. Aynı db_block_size’da olduğu gibi düşük olursa daha hızlı cache’lenecek ve büyük olursa da arka arkaya okuma yapıldığı zaman daha efektif olacaktır. VLDB (Very Large Database) tipi veri ambarlarında yüksek AU kullanmak faydalı olacaktır. AU’nun miktarını disk grup yaratılırken gösterebiliyoruz ancak sonradan değiştiremiyoruz. ASM “Files” ise AU’lardan oluşan extent’lerdir. Dosya adları + ile başlarlar ve ASM instance’ı tarafından yönetilirler. Dosya isimleri genelde değişken sayılardan oluşmaktadır ancak bu dosya isimlerine (örneğin bir datafile) alias verme şansımız bulunmaktadır. Bu dosya isimleri benzersizdir ve hiçbir zaman başka bir datafile ismi ile çakışmaz. Bu da yine ASM’nin bize sağladığı faydalardan yalnızca bir tanesidir. ASM’nin yönettiği dosyalar disk’ler üzerinde SAME metodolojisi ile tutulmaktadır (Stripe-And-Mirror Everything). ASM dosyalarından kastımız nedir? Datafile, kontrol dosyası, redolog dosyası, RMAN yedekleri gibi. Burası önemli, 11g Release 2′ye kadar ASM, OCR dosyaları, cluster-voting disk, alert log dosyaları, trace dosyaları ve Oracle binary’leri gibi dosyaları desteklemiyordu ancak 11gR2 bu kısıtı ortadan kaldırarak, bu tipte dosyaların da ASM tarafından desteklenmesini sağladı. 11gR2′yi tercih etmek ve kullanmak için yine çok ufak ama büyük bir neden. Yazımın başında belirttiğim “Extent Map” ile ilgili de şunları ifade edebilirim. Extent map, ASM’nin yönettiği dosyaların disk üzerinde nerede olduğu bilgisine sahiptir. Tabii tabloların veya objelerin nerede olduğundan öte bu objelerin bulunduğu extent’lerin nerede durduğunun bilgisine sahiptir.

DB_Install_6

15. Oracle ASM kullanıcıları için bir parola belirliyoruz. Bu parolayı asla unutmamalıyız. Daha sonra veritabanı kurulum aşamasında bu parola ASM disk grubuna erişebilmek için gerekli olacaktır. Her iki kullanıcıya aynı parolayı atamak için “Use same passwords for these accounts” seçeneğini seçerek her iki kullanıcıya aynı parolayı atıyoruz.

DB_Install_7

16. Atamış olduğumuz parola eğer oracle önerilen parola politikasına uygun değilse aşağıdaki gibi uyarı veriyor. Burada “Yes” düğmesine tıklayarak devam ediyoruz.

DB_Install_8

17. Kurulumların hangi işletim sistemi grupları ile yapılacağını soruyor burada “oinstall” veya “dba” grupları seçilerek kurulum yapılabilir. Tek olması düşüncesiyle “dba” olarak seçiyoruz ve “Next” düğmesine tıklıyoruz.

DB_Install_918. Kurulum sihirbazı bu seçimlerinde standart dışı olduğunu söylüyor burada verdiği uyarıya ekranına ”Yes” düğmesini tıklayarak devam ediyoruz.

DB_Install_10

19. Oracle grid kurulumunun yapılacağı dizinleri seçiyoruz. Dizinleri aşağıdaki ekran görüntüsündeki gibi seçiyoruz ve daha önce yarattığımız dizinlere kurulumun yapılmasını sağlıyoruz.

DB_Install_11

20. Grid home dizinimizin Oracle Base dizini dışında olduğu konusunda bizi uyarıyor. Bu uyarı ekranına “Yes” düğmesini tıklayarak devam ediyoruz.

DB_Install_12

21. Oracle Inventory dizini nereye yaratacağı konusunda bilgi veriyor burada “Next” düğmesini tıklayarak devam ediyoruz.

DB_Install_13

22. Kurulumumuzda herhangi bir sorun yoksa öngereksinimlerin tamamı uygunsa kurulum için özet bilgi ekranı karşımıza gelecektir. Kuruluma başlamak için “Install” düğmesini tıklıyoruz.

DB_Install_14

23. Kurulum aşamalarını aşağıdaki ekrandan takip edebiliriz.

DB_Install_15

24. Kurulum sonuna doğru bizden “root” kullanıcısı ile 2 adet .sh scripti çalıştırmamızı istiyor. Bu scriptler Inventory ve hakların ayarlanması için gerekli eğer atlarsak kurulum başarısız olacaktır.

GridtoAsm_1

Script’i ”root” kullanıcısı ile açılmış bir terminal penceresinden çalıştırmalıyız. Script’i çalıştırdığımızda aşağıdaki gibi çıktılar oluşacaktır. Gerekli script’i çalıştırdıktan sonra “OK” düğmesine tıklayarak devam ediyoruz. Script’i çalıştırılması aşamasında hata verirse ve yeniden kurma işlemi yapacaksak hatalı kurulumun temizlenmesiyle ilgili “Oracle Grid Infrastructure Kurulumunun Başarısız Olması Durumunda Sistemin Temizlenmesi” makalemizi inceleyebilirsiniz.

# cd /u01/app/11.2.0.3/grid/
# ./root.sh

Performing root user operation for Oracle 11g 

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/11.2.0.3/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Creating trace directory
LOCAL ADD MODE 
Creating OCR keys for user 'oracle', privgrp 'oinstall'..
Operation successful.
LOCAL ONLY MODE 
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
CRS-4664: Node koraykey-db1 successfully pinned.
Adding Clusterware entries to upstart

25.  Script’imizi çalıştırdıktan sonra “Ok” düğmesine basarak kuruluma devam ediyoruz.

DB_Install_17

26. Kurulum başarılı bir şekilde tamamlandıktan sonra “Close” düğmesine basarak kurulumu bitiriyoruz.

DB_Install_18

27. Oracle Veritabanı ve Grid için değişkenlerimizi “.bash_profile” dosyamıza yazıyoruz.

-- Oracle kullanıcısına geçiş yapıyoruz.

# su - oracle

$ vim /home/oracle/.bash_profile

-- Dosyasına aşağıdaki değişkenleri giriyoruz.

# Oracle bash_profile Environment Settings

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

ORACLE_HOSTNAME=koraykey-db1.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/11.2.0.3/grid; export GRID_HOME
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:$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

alias grid_env='. /home/oracle/.grid'
alias db_env='. /home/oracle/.db'

-- Daha sonra grid ve db değişkenleri arasında geçiş yapabilmek için 
".grid" ve ".db" profil dosyalarımızı oluşturuyoruz.

$ vim /home/oracle/.grid

-- Dosyasına aşağıdaki değişkenleri giriyoruz.

# Oracle "grid" Environment Settings

ORACLE_SID=+ASM; export ORACLE_SID
ORACLE_HOME=$GRID_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$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

$ vim /home/oracle/.db

-- Dosyasına aşağıdaki değişkenleri giriyoruz.

# Oracle "db" Environment Settings

ORACLE_SID=orcl; export ORACLE_SID
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$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

28. Kurulum sırasında “DATA” disk grubumuzu oluşturmuştuk. Şimdi “asmca” komutunu kullanarak “FRA” disk grubumuzu oluşturacağız.

-- Oracle kullanıcısı ile açılmış bir terminal ekranında daha önce
oluşturmuş olduğumuz "grid" değişken dosyamızı çalıştırıyoruz.

$ cd
$ . .bash_profile
$ . .grid

-- Ardından aşağıdaki komutu çalıştırarak "ASM Configuration Assistant" açıyoruz.

$ asmca

29. Açılan pencerede “Create” düğmesine tıklıyoruz ve aşağıdaki pencerede gösterildiği gibi ayarları yapıyoruz. Ardından “OK” düğmesine tıklayarak “FRA” diskimizi oluşturuyoruz.

DB_Install_20

30. Disk grubumuzu başarılı bir şekilde oluşturduğumuzda aşağıdaki gibi uyarı alıyoruz.

DB_Install_21

31. Aşağıdaki ekranda görüldüğü gibi artık “DATA” ve “FRA” disk gruplarımız hazır durumdadır. Artık veritabanı kurulumumuzda bu disklerimizi atayabileceğiz.

DB_Install_22

32. ASM yapılandırma ekranından çıkmak için “Exit” düğmesine basıyoruz ardından gelen ekrandaki uyarıya “Yes” düğmesini tıklayarak çıkıyoruz.

DB_Install_23

33. Veritabanımızı dosya sistemden (File System to ASM) ASM dosya sistemine taşıma işlemlerine başlamak için veritbanımızı başlatıyoruz ve gerekli kontrolleri yapıyoruz. Ayrıca işleme başlamadan önce eğer açıksa işlem sonunda tekrar açmak üzere “Archive Mod”u kapatıyoruz.

-- İşlemlerimize başlamak için veritabanımızı başlatıyoruz.

$ . .db
$ dbstart $ORACLE_HOME

--  Veritabanı durumumuzu sorguluyoruz.

SQL> select instance_name,version,database_status from v$instance;

-- ASM disklerimizin durumunu sorguluyoruz.

SQL> select NAME,STATE,TOTAL_MB,PATH from v$asm_disk;

NAME                           STATE      TOTAL_MB
------------------------------ -------- ----------
PATH
--------------------------------------------------
FRA_0000                       NORMAL         5114
/dev/oracleasm/disks/FRA1

DATA_0000                      NORMAL         5114
/dev/oracleasm/disks/DATA1

-- Veritabanımızda "Archive Mod"u kapatmak için aşağıdaki işlemleri yapıyoruz.

$ sqlplus / as sysdba

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;
ORACLE instance started.

Total System Global Area 1043886080 bytes
Fixed Size                  2234960 bytes
Variable Size             624952752 bytes
Database Buffers          411041792 bytes
Redo Buffers                5656576 bytes
Database mounted.

SQL> alter database noarchivelog;

Database altered.

SQL> exit

34. Sunucumuzda kullanıyorsak mevcut “spfile” dosyamızı ASM dosya sistemine taşıyoruz ve gerekli düzenlemeleri yapıyoruz.

-- Sunucumuzda "spfile" dosyamızın yedeğini "RMAN" aracı ile alıyoruz.

$ rman target /

connected to target database: ORCL (DBID=1350027477)

RMAN> backup as backupset spfile;

RMAN> exit

-- Veritabanımızı kapatıp "mount" modda açıyoruz.

$ sqlplus / as sysdba

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.
Total System Global Area 1043886080 bytes
Fixed Size                  2234960 bytes
Variable Size             624952752 bytes
Database Buffers          411041792 bytes
Redo Buffers                5656576 bytes
Database mounted.

SQL> exit

-- Sunucumuzda "RMAN" aracı ile "spfile" yedeğimizi ASM dosya sistemimize dönüyoruz.

$ rman target / 

connected to target database: ORCL (DBID=1350027477, not open)

RMAN> restore spfile to '+DATA/spfileorcl.ora';

RMAN> exit

-- ASM dosya sistemine taşıdığımız "spfile" dosyasını veritabanımıza tanıtmak için
gerekli düzenlemeleri yapıyoruz.

-- Veritabanımızın kullandığı "spfile" yolunu sorguluyoruz.

$ sqlplus / as sysdba 

SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/11.2.0
                                                 .3/db/dbs/spfileorcl.ora

-- ASM dosya sistemine taşıdığımız yeni "spfile" dosyamız için gerekli düzenlemeleri
yapıyoruz.

-- Veritabanımızı kapatıyoruz.

SQL> shutdown immediate;

ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.

SQL> exit

-- Spfile dosyamızın bulunduğu dizine geçiyoruz ve eski "spfile" dosyamızı başka
bir isimle adlandırıyoruz.

$ cd $ORACLE_HOME/dbs
$ mv spfileorcl.ora spfileorcl.ora.bak

-- Sunucumuzda bulunan "init.ora" dosyamıza yeni "spfile" dosyamızın yolunu
yazıyoruz.

$ vim initorcl.ora

*.spfile='+DATA/spfileorcl.ora'

-- İşlemlerimizi tamamladıktan sonra veritabanımızı açıp "spfile" parametremizi
kontrol ediyoruz.

$ sqlplus / as sysdba 

SQL> startup;

ORACLE instance started.
Total System Global Area 1043886080 bytes
Fixed Size                  2234960 bytes
Variable Size             624952752 bytes
Database Buffers          411041792 bytes
Redo Buffers                5656576 bytes
Database mounted.
Database opened.

SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +DATA/spfileorcl.ora

SQL> exit

-- Gördüğümüz gibi "spfile" dosya yolumuz ASM olarak değişmiş durumda.

35. Sunucumuzda mevcut “controlfile” dosyamızı ASM dosya sistemine taşıyoruz ve gerekli düzenlemeleri yapıyoruz.

-- Mevcut "Control File" durumumuzu sorguluyoruz.

$ sqlplus / as sysdba 

SQL> show parameter control_files;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/app/oracle/oradata/ORCL/c
                                                 ontrolfile/o1_mf_8zl9554m_.ctl

-- Veritabanımızı kapatıp "mount" modda açıyoruz.

SQL> shutdown immediate;

Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;

ORACLE instance started.
Total System Global Area 1043886080 bytes
Fixed Size                  2234960 bytes
Variable Size             624952752 bytes
Database Buffers          411041792 bytes
Redo Buffers                5656576 bytes

SQL> exit

-- RMAN aracımızın copy komutu ile geçerli "control file" dosyamızı ASM dosya
sistemine kopyalıyoruz.

$ rman target / 

connected to target database: ORCL (DBID=1350027477, not open)

RMAN> copy current controlfile to '+DATA/control01.ctl';

RMAN> exit

-- Veritabanımıza yeni "controlfile" yolumuzu tanıtıyoruz.

SQL> alter system set control_files='+DATA/control01.ctl' scope=spfile;

System altered.

SQL> exit

-- Veritabanımızı yeniden başlatıp "control file" parametremizin durumunu kontrol
ediyoruz.

$ sqlplus / as sysdba 

SQL> shu immediate;
ORA-01109: database not open

SQL> startup mount;

SQL> alter database open resetlogs;

Database altered.

SQL> show parameter control_files;

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------------------
control_files                        string      +DATA/control01.ctl

SQL> exit

36. Sunucumuzda mevcut “datafile” dosyalarımızı ASM dosya sistemine taşıyoruz ve gerekli düzenlemeleri yapıyoruz.

-- Sunucumuzda "datafile" dosyalarımızı taşımak için veritabanımızı kapatıp "mount"
modda açıyoruz.

$ sqlplus / as sysdba 

SQL> shutdown immediate;

SQL> startup mount;

ORACLE instance started.

Total System Global Area 1043886080 bytes
Fixed Size                  2234960 bytes
Variable Size             624952752 bytes
Database Buffers          411041792 bytes
Redo Buffers                5656576 bytes
Database mounted.

SQL> exit

-- Veritabanımızın "data file" dosyalarını taşımak için RMAN aracımızı kullanıyoruz.

$ rman target / 

connected to target database: ORCL (DBID=1350027477, not open)

RMAN> backup as copy database format '+DATA';

Starting backup at 01-AUG-13
.
.
.
Finished backup at 01-AUG-13

RMAN> switch database to copy;

datafile 1 switched to datafile copy "+DATA/orcl/datafile/system.258.822268909"
datafile 2 switched to datafile copy "+DATA/orcl/datafile/sysaux.259.822268945"
datafile 3 switched to datafile copy "+DATA/orcl/datafile/undotbs1.260.822268969"
datafile 4 switched to datafile copy "+DATA/orcl/datafile/users.262.822268999"

-- Veritabanımızın "tempfile" dosyasını taşımak için RMAN aracımızı kullanıyoruz.

RMAN> run
{
set newname for tempfile '/u01/data/testdb/temp01.dbf' to '+DATA';
switch tempfile all;
}

RMAN> exit

-- Taşıma işlemleri sonrası veritabanımızı "open" modda açabiliriz.

$ sqlplus / as sysdba 

SQL> alter database open;

Database altered.

-- Veritabanımızda taşıma işlemi sonrası "datafile" durumunu kontrol ediyoruz.

$ sqlplus / as sysdba 

SQL> select FILE_NAME from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
+DATA/orcl/datafile/system.258.822268909
+DATA/orcl/datafile/sysaux.259.822268945
+DATA/orcl/datafile/undotbs1.260.822268969
+DATA/orcl/datafile/users.262.822268999

SQL> exit

-- Gördüğümüz gibi "datafile" dosyalarımız ASM dosya sistemine taşınmış durumda.

37. Sunucumuzda mevcut “redolog” dosyalarımızı ASM dosya sistemine taşıyoruz ve gerekli düzenlemeleri yapıyoruz.

-- Sunucumuzda bulunan "redolog" dosyalarımızı sorgulayıp bunların yollarını silmek
üzere not alıyoruz.

$ sqlplus / as sysdba 

SQL> SELECT MEMBER FROM v$logfile;

-- Bu işlem sırasında veritabanımız "open" modda olmalıdır. Öncelikle bunu kontrol
ediyoruz.

$ sqlplus / as sysdba 

SQL> select status from v$instance;

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

-- Sunucumuzda "Redolog" dosyalarımızın yenilerini ASM dosya sisteminde yaratıyoruz.

SQL> alter database add logfile member '+DATA' to group 1;
SQL> alter database add logfile member '+DATA' to group 2;
SQL> alter database add logfile member '+DATA' to group 3;
SQL> alter database add logfile member '+DATA' to group 4;

-- Sunucumuzda bulunan eski "redolog" dosyalarımızı siliyoruz ve yeni
oluşturduklarımızla değiştiriyoruz. Silme işlemi için yukarıdaki sorgu
sonucu not aldığımız "redolog" dosyalarımızın yollarını yazıyoruz. Ayrıca
silmek istediğimizde kullanılan bir dosyaya denk geldiğimizde "switch" ederek
silebiliriz.

SQL> ALTER DATABASE DROP LOGFILE MEMBER
  2  '/u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_1_8zl955go_.log';

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER DATABASE DROP LOGFILE MEMBER 
  2 '/u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_2_8zl95fm1_.log';

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER DATABASE DROP LOGFILE MEMBER
  2 '/u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_3_8zl95plx_.log';

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> ALTER DATABASE DROP LOGFILE MEMBER
  2 '/u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_4_8zl962r2_.log';

SQL> ALTER SYSTEM SWITCH LOGFILE;

-- Sunucumuzda işlemlerimiz tamamlandığında "redolog" dosyalarımızın durumunu
kontrol ediyoruz.

SQL> SELECT MEMBER FROM v$logfile;

MEMBER
--------------------------------------------------------------------------------
+DATA/orcl/onlinelog/group_1.264.822270491
+DATA/orcl/onlinelog/group_2.265.822270497
+DATA/orcl/onlinelog/group_3.266.822270503
+DATA/orcl/onlinelog/group_4.267.822270509

SQL> exit

-- Gördüğümüz gibi "redolog" dosyalarımız ASM dosya sistemimize taşınmış durumda.

38. Veritabanımızda “OMF” (Oracle Managed File) kullanıyorsak bu parametremizide ASM dosya sistemine göre ayarlamamız gerekmektedir. Ayrıca “FRA” (Fast Recovery Area) alanımızıda ASM dosya sistemine göre ayarlamalıyız. Bunun için aşağıdaki işlemleri uyguluyoruz.

-- Veritabanımızda "OMF" için parametremizi sorguluyoruz.

$ sqlplus / as sysdba 

SQL> show parameter DB_CREATE_FILE_DEST;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      /u01/app/oracle/oradata

-- Gördüğümüz gibi "file system" ayarlanmış durumda.

-- Veritabanımızda "OMF" parametremizi ASM dosya sistemine göre ayarlıyoruz.

SQL> alter system set db_create_file_dest='+DATA';

System altered.

-- Değişiklik sonrası "OMF" parametremizin durumunu sorguluyoruz.

SQL> show parameter DB_CREATE_FILE_DEST;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                  string      +DATA

SQL> exit

-- Gördüğümüz gibi "OMF" parametremiz ASM dosya sistemine göre ayarlanmış durumda.

-- Veritabanımızda "FRA" (Fast Recovery Area) alanımızı ASM dosya sistemine göre
ayarlıyoruz.

-- Veritabanımızda "FRA" alanımızı sorguluyoruz.

$ sqlplus / as sysdba

SQL> show parameter recovery_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_
                                                 area
db_recovery_file_dest_size           big integer 4977M

-- Gördüğümüz gibi "file system" olarak gözükmekte bu alanımızı ASM dosya
sistemimizde oluşturduğumuz "FRA" alanı olarak ayarlıyoruz.

SQL> show parameter recovery_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_
                                                 area
db_recovery_file_dest_size           big integer 4977M

SQL> alter system set db_recovery_file_dest='+FRA';

System altered.

SQL> alter system set db_recovery_file_dest_size=4977M scope=both;

System altered.

-- Değişiklik sonrası "FRA" parametrelerimizi sorguluyoruz.

SQL> show parameter recovery_file_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      +FRA
db_recovery_file_dest_size           big integer 4977M

SQL> exit

-- Gördüğümüz gibi "FRA" alanımız ASM dosya sistemimiz olarak ayarlanmış durumda.

39. Bu işlemler sonrasında sunucumuzu yeniden başlatıyoruz ve patch geçme işlemi öncesi tüm veritabanı ve servislerin ayakda olduğunu kontrol ediyoruz. (Enterprise Manager Servisi hariç)

# shutdown -r now

40. Veritabanı dosyalarımızı taşıma işlemimiz tamamlandı. Şimdi eğer “Grid” ve “Database” versiyonlarımız uyumlu değilse “patch” geçerek bunları uyumlu hale getirebiliriz. Bu durumu şu şekilde düşünebiliriz. Veritabanımızı ilk olarak “file system” seçerek kurulum yapmış ve kurulum sonrası veritabanımıza patch geçme işlemi yapmışsak ve veritabanı versiyonumuz grid versiyonumuzdan ileri bir duruma gelmişse patch işleminini uygulayarak “grid” ve “database” versiyonlarımızı aynı veya uyumlu versiyona çekmeliyiz. Şimdi bu patch geçme işlemini uygulayalım. Sistemimiz için “My Oracle Support” hesabımızla giriş yaparak veritabanımıza uygun indirmiş olduğumuz “GRID INFRASTRUCTURE PATCH SET UPDATE xxxx (INCLUDES DB PSU)” dosyasını ve yenilenmiş “OPatch” yazılımını ftp yada başka bir yöntem ile oluşturduğumuz “/u01/orainstall/opatch” ve  “/u01/orainstall/patchset” dizini altına atıyoruz. Eğer sunucumuzda ftp server özelliği aktif edilmemişse “Linux İşletim Sistemlerinde FTP Server Yapılandırması” makalemizden faydalanarak gerekli ayarları yapabiliriz. Sunucularımızda “Opatch” ve “Patchset Update” dosyalarımızın bulunduğu dizine geçerek sıkıştırılmış dosyalarımızı açıyoruz.

Not: Eğer “grid” ve “veritabanı” versiyonumuz uygunsa veya “patchset” geçmeyeceksek bu adımı atlayabiliriz.

-- Patch dosyalarımızı kopyaladığımız dizinelere geçiyoruz ve sıkıştırılmış
dosyalarımızı açıyoruz.

-- OPatch yazılımını "unzip" komutu ile açıyoruz.

$ cd /u01/orainstall/opatch
$ unzip p6880880_112000_Linux-x86-64.zip

-- Patchset Update yazılımını "unzip" komutu ile açıyoruz.

$ cd /u01/orainstall/patchset
$ unzip p16742216_112030_Linux-x86-64.zip

41. Sunucumuzda patch geçmek için kullandığımız “OPatch” yazılımını güncelliyoruz ve otomatik patch işlemi için yanıt dosyamızı (response file) oluşturuyoruz.

-- "root" kullanıcısına geçiyoruz.

-- Aşağıdaki işlemleri her iki üyede uyguluyoruz. Sorun olmaması için
işlemi bir üyede başlatıp bittince diğer üyede başlatabiliriz.
Bu işlem sırasında cluster servisimiz ve veritabanımız açık durumda
olmalıdır. Sadece sistemimizin boş bir zamanında yapmak kullanıcılarımızın
etkilenmesini önleyecektir. Patch işlemi sonrası cluster servisimiz
otomatik kapanıp açılacaktır.

$ su - root

-- Güncellemeyi uygulamak için "root" kullanıcısına geçiş yapıyoruz.
Daha sonra OPatch yazılımının yeni versiyonunu Grid ve Database
Home dizinlerinde yerlerine taşıyoruz. Sonrasında otomatik patch
geçebilmek için Auto Response dosyamızı oluşturuyoruz.

-- Grid dizini için OPatch yazılımını güncelliyoruz.

# cd /u01/app/11.2.0.3/grid/
# mv OPatch OPatch_x
# cd /u01/orainstall/opatch
# mv OPatch/ /u01/app/11.2.0.3/grid
# cd /u01/app/11.2.0.3/grid/OPatch/ocm/bin/
# ./emocmrsp

OCM Installation Response Generator 10.3.4.0.0 - Production
Copyright (c) 2005, 2010, Oracle and/or its affiliates.
All rights reserved.

Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name: 

You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  y
The OCM configuration response file (ocm.rsp) was successfully created.

-- Grid dizini için OPatch yazılımını güncelleyip
Auto Response dosyamızı oluşturduk.

-- Eğer Database dizini içindeki "OPatch" yazılımını güncelleyceksek aynı
işlemi onun içinde yapıyoruz.

-- Dosyalarda yetki problemi yaşamamak için oracle kullanıcısına geçiyoruz.

# su - oracle
$ cd /u01/orainstall/opatch
$ unzip p6880880_112000_Linux-x86-64.zip

-- "root" kullanıcısına geçiyoruz.

$ su - root

# cd /u01/app/oracle/product/11.2.0.3/db
# mv OPatch OPatch_x
# cd /u01/orainstall/opatch
# mv OPatch/ /u01/app/oracle/product/11.2.0.3/db
# cd /u01/app/oracle/product/11.2.0.3/db/OPatch/ocm/bin
# ./emocmrsp

OCM Installation Response Generator 10.3.4.0.0 - Production
Copyright (c) 2005, 2010, Oracle and/or its affiliates. 
All rights reserved.

Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name: 

You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  y
The OCM configuration response file (ocm.rsp) was successfully created.

42. Sunucumuzda patch geçme işlemini başlatıyoruz.

-- Aşağıdaki işlemi "root" kullanıcısı ile yapmalıyız.

# opatch auto <Zip'ten açılmış dizin yolu> -ocmrf <ocm yanıt dosyası>

Örnek;

# cd /u01/app/11.2.0.3/grid/OPatch
# ./opatch auto /u01/orainstall/patchset -ocmrf /u01/app/11.2.0.3/grid/OPatch/ocm/bin/ocm.rsp

-- Aşağıdaki işlemleri yapmak için "oracle" kullanıcısına geçiyoruz.
işlemler sırasında veritabanlarımız açık durumda olmalıdır.

# su - oracle
$ . .db

$ cd $ORACLE_HOME/rdbms/admin
$ sqlplus /nolog

SQL> CONNECT / AS SYSDBA

-- Eğer veritabanımız kapalı ise açıyoruz.
-- Değilse direk bir sonrası komutu kullanabiliriz.

SQL> STARTUP

-- "Patch Post-Installation" işlemini başlatıyoruz ve bittiğinde çıkıyoruz.

SQL> @catbundle.sql psu apply
SQL> QUIT

43. Sunucumuzda “patchset” işlemi sonrası durumu kontrol ediyoruz.

-- Oracle Patchset Update işlemi sonrası grid ve veritabanı versiyonlarımızı
kontrol ediyoruz.

# su - oracle

-- Grid patch durumu için

$ . .grid
$ cd /u01/app/11.2.0.3/grid/OPatch
$ ./opatch lsinventory

-- Database patch durumu için

$ . .db
$ cd /u01/app/oracle/product/11.2.0.3/db/OPatch
$ ./opatch lsinventory

44. Veritabanımızda bu işlemler sonrasında kapatmış olduğumuz “Archive Log” modunu açık duruma getiriyoruz.

$ sqlplus / as sysdba 

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     8
Next log sequence to archive   11
Current log sequence           11

SQL> exit

45. Son olarak sistemimizi yeniden başlatıyoruz ve tüm servislerimizin sorunsuzca doğru bir şekilde başladığından emin oluyoruz.

# shutdown -r now

46. Bu işlemler sonrasında veritabanımızda herhangi bir sorun yoksa ve sağlıklı çalıştığından emin olduğumuzda dosya sisteminde tuttuğumuz eski “data file” vb. dosyalarımızı silebiliriz.

# cd /u01/app/oracle
# rm -rf fast_recovery_area/ oradata/

Bu makalemizde “Oracle Veritabanını Dosya Sisteminden ASM Dosya Sistemine Taşıma Yapılandırması (File System to ASM)” inceledik. Bu yapılandırma sayesinde dosya sisteminde çalışan veritabanlarımızı sorunsuzca yeniden kurmadan hızlı bir şekilde “ASM” dosya sistemine taşıyabiliriz. Bu makalemizde adımlar “Oracle Enterprise Linux” işletim sistemi üzerinde çalışan “Oracle 11g R2” veritabanında denenmiştir 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.