ORACLE GRID INFRASTRUCTURE, SINGLE INSTANCE (STANDALONE) 12c DATABASE KURULUMU

Yazımızda Grid kurulumu, ASM disklerinin oluşturulması ve ayarlanması, 12c veritabanı kurulumunu Orale Linux 6.9 üzerine nasıl yapacağımızı göreceğiz.

Oracle Linux 6.9 un tam ve doğru kuluduğunu varsayarak diğer kurulumları nasıl yapacağımıza geçiyoruz.

  • Öncelikle işletim sistemimiz güncelleyeceğiz.

# yum -y update

  •  12C veritabanımız için ön gereksinim paketlerimizi yüklüyoruz

# yum -y install oracle-rsbms-server-12cR1-preinstall

(12cR2 yukluyeceksek #yum install oracle-database-server-12cR2-preinstall)

 

  • Sunucumuz İnternete çıkıyorsa paketleri direk “yum install” komutu ile kurabiliriz.

yum -y install binutils
yum -y install compat-libcap1
yum -y install compat-libstdc++-33
yum -y install compat-libstdc++-33.i686
yum -y install gcc
yum -y install gcc-c++
yum -y install glibc
yum -y install glibc.i686
yum -y install glibc-devel
yum -y install glibc-devel.i686
yum -y install ksh
yum -y install libgcc
yum -y install libgcc.i686
yum -y install libstdc++
yum -y install libstdc++.i686
yum -y install libstdc++-devel
yum -y install libstdc++-devel.i686
yum -y install libaio
yum -y install libaio.i686
yum -y install libaio-devel
yum -y install libaio-devel.i686
yum -y install libXext
yum -y install libXext.i686
yum -y install libXtst
yum -y install libXtst.i686
yum -y install libX11
yum -y install libX11.i686
yum -y install libXau
yum -y install libXau.i686
yum -y install libxcb
yum -y install libxcb.i686
yum -y install libXi
yum -y install libXi.i686
yum -y install make
yum -y install sysstat
yum -y install unixODBC
yum -y install unixODBC-devel

  • Sunucumuz internete çıkmıyorsa paketlerin kurulması için sunucumuzdaki Kurulum DVD’sini takarak paketleri kuruyoruz.

# cd /media/cdrom/Server/Packages

rpm -Uvh binutils
rpm -Uvh compat-libcap1
rpm -Uvh compat-libstdc++-33
rpm -Uvh compat-libstdc++-33.i686
rpm -Uvh gcc
rpm -Uvh gcc-c++
rpm -Uvh glibc
rpm -Uvh glibc.i686
rpm -Uvh glibc-devel
rpm -Uvh glibc-devel.i686
rpm -Uvh ksh
rpm -Uvh libgcc
rpm -Uvh libgcc.i686
rpm -Uvh libstdc++
rpm -Uvh libstdc++.i686
rpm -Uvh libstdc++-devel
rpm -Uvh libstdc++-devel.i686
rpm -Uvh libaio
rpm -Uvh libaio.i686
rpm -Uvh libaio-devel
rpm -Uvh libaio-devel.i686
rpm -Uvh libXext
rpm -Uvh libXext.i686
rpm -Uvh libXtst
rpm -Uvh libXtst.i686
rpm -Uvh libX11
rpm -Uvh libX11.i686
rpm -Uvh libXau
rpm -Uvh libXau.i686
rpm -Uvh libxcb
rpm -Uvh libxcb.i686
rpm -Uvh libXi
rpm -Uvh libXi.i686
rpm -Uvh make
rpm -Uvh sysstat
rpm -Uvh unixODBC
rpm -Uvh unixODBC-devel

# cd /
# eject

  • Oracle için kullanıcıları ve kullanıcı gruplarını yaratıyoruz.

[[email protected] ~]# groupadd -g 501 oinstall
[[email protected] ~]# groupadd -g 502 dba
[[email protected] ~]# groupadd -g 503 oper
[[email protected] ~]# groupadd -g 504 asmadmin
[[email protected] ~]# groupadd -g 505 asmoper
[[email protected] ~]# groupadd -g 506 asmdba

[[email protected] ~]# useradd -u 502 -g oinstall -G dba,asmdba,oper oracle

Burada database, asm vb. için ayrı ayrı kullanıcılar yarattık eğer her iş için kullanıcı ve grupları ayırmayacaksak sadece oinstall ve dba grubu yaratarakta devam edebiliriz. Bu bizim sistem politikamıza göre değişebilir.

[[email protected] ~]# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

[email protected] ~]# vi /etc/hosts

192.168.224.143 ol6.localdomain ol6

# vi /etc/fstab

  • Krulum aşamasında veya yüksek miktarda “memory_target” parametresi atandığında “ORA-00845 : MEMORY_TARGET” hatası almaktayız  bu sorunu engellemek için aşağıdaki “shmfs” parametresi ayarlanmalıdır. Bu dosyada yapılan değişiklikler bir sonraki yeniden başlatma sırasında geçerli olacaktır. Hemen devreye almak için aşağıdaki “mount” komutu çalıştırılmalıdır.
  • Örneğin “memory_target” parametremiz 16 GB olacaksa burada atayacağımız değer aşağıdaki gibi olmalıdır. Fazla atanması sorun değildir. Önemli olan “memory_target” değerinden düşük olmamasıdır.

shmfs                   /dev/shm               tmpfs               size=16g              0

  • Değişikliği hemen devreye almak için aşağıdaki mount komutunu çalıştırmalıyız.

# mount /dev/shm/

  • Eğer kurulum bitiminde “Secure Linux” ve “Firewall” özelliğini kapatmamışsak bunları kapatıyoruz.

[[email protected] ~]# vi /etc/selinux/config

  • Dosyasında bulunan SELINUX parametresini disabled yapıyoruz

SELINUX=disabled

  • Firewall Servisini kapatmak için aşağıdaki komutları çalıştırıyoruz.

# service iptables stop
# chkconfig iptables off

  • Oracle kurulumlarını yapabilmek, kurulum ve patch dosyalarımızı koyabilmek için gerekli olan dizinleri yaratıp hakları atıyoruz.

[[email protected] ~]# mkdir -p /u01/app/oracle/12.1.0.2.0/grid
[[email protected] ~]# mkdir -p /u01/app/oracle/product/12.1.0.2.0/db
[[email protected] ~]# mkdir -p /u01/orainstall
[[email protected] ~]# chown -R oracle:oinstall /u01
[[email protected] ~]# chmod -R 775 /u01/

/u01/app/oracle/12.1.0.2.0/grid
Grid Infrastructure kurulum dizini.

/u01/app/oracle/product/12.1.0.2.0/db
Oracle Database kurulum dizini

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

  • Dikkat etmemiz gereken önemli noktalardan biri Grid dizininin /u01/app/oracle/ dediğimiz “Oracle Base” dizininden farklı bir yerde olması. Aksi takdirde kurulum aşamasında uyarı verecektir.
  • Oracle Veritabanı için değişkenlerimizi “.bash_profile” dosyamıza yazıyoruz.

[[email protected] ~]# su – oracle
[[email protected] ~]$ vi .bash_profile

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

ORACLE_HOSTNAME=ol6.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
GRID_HOME=/u01/app/oracle/12.1.0.2.0/grid; export GRID_HOME
DB_HOME=$ORACLE_BASE/product/12.1.0.2.0/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.

[[email protected] ~]$ vi .db

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

 

[[email protected] ~]$ vi .grid

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

 

  • Şimdi ASM için atayacağımız disklerimizi yapılandıracağız. ASM ortamına atayacağımız diskleri iki yöntem ile yapılandırabiliriz.  “Oracle ASM Library” dediğimiz Oracle tarafında sağlanan araç ile ya da elle “UDEV” dediğimiz Linux yapılandırması ile “UDEV” ile yapılandırma  “Oracle ASM Library” göre daha zor ve karmaşıktır.
  • Oracle ASM Library” kullanarak disklerimizi ASM için yapılandırıp damgalayacağız.
  • ASM için oluşturacağımız disk grubundaki diskler birebir aynı boyutta olmalıdırAyrıca disklerimiz kesinlikle formatlanmamış ve kullanılmamış olmalıdır.
  • Aşağıdaki işlemlerin tamamını “root” kullanıcısı ile yapıyoruz

ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd
[[email protected] ~]# ll /dev/sd*
brw-rw—- 1 root disk 8, 0 Nov 5 14:41 /dev/sda
brw-rw—- 1 root disk 8, 1 Nov 5 14:41 /dev/sda1
brw-rw—- 1 root disk 8, 2 Nov 5 14:41 /dev/sda2
brw-rw—- 1 root disk 8, 16 Nov 5 14:41 /dev/sdb
brw-rw—- 1 root disk 8, 32 Nov 5 14:41 /dev/sdc
brw-rw—- 1 root disk 8, 48 Nov 5 14:41 /dev/sdd

  • ASM için kullanacağımız disklerimizse aşağıdaki gibidir.

brw-rw—- 1 root disk 8, 16 Nov 5 14:41 /dev/sdb
brw-rw—- 1 root disk 8, 32 Nov 5 14:41 /dev/sdc
brw-rw—- 1 root disk 8, 48 Nov 5 14:41 /dev/sdd

[[email protected] ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xf158f30d.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

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-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Using default value 2610

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

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xaf3ab224.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

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-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Using default value 2610

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

Calling ioctl() to re-read partition table.
Syncing disks.
[[email protected] ~]# fdisk /dev/sdd
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x9dbba2f1.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

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-2610, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610):
Using default value 2610

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

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

[[email protected] ~]# ll /dev/sd*
brw-rw—- 1 root disk 8, 0 Nov 5 14:41 /dev/sda
brw-rw—- 1 root disk 8, 1 Nov 5 14:41 /dev/sda1
brw-rw—- 1 root disk 8, 2 Nov 5 14:41 /dev/sda2
brw-rw—- 1 root disk 8, 16 Nov 5 14:46 /dev/sdb
brw-rw—- 1 root disk 8, 17 Nov 5 14:46 /dev/sdb1
brw-rw—- 1 root disk 8, 32 Nov 5 14:47 /dev/sdc
brw-rw—- 1 root disk 8, 33 Nov 5 14:47 /dev/sdc1
brw-rw—- 1 root disk 8, 48 Nov 5 14:47 /dev/sdd
brw-rw—- 1 root disk 8, 49 Nov 5 14:47 /dev/sdd1

  • Bu arada oracleasm oracleasmlib ve oracleasm-support ları indirmeyi ve kurmayuıo unuttuk bunun için internetimiz varsa

# yum install kmod-oracleasm
# yum install -y oracleasm
# yum install -y oracleasm-support
# yum install oracleasmlib

  • internet yoksa rpm leri yukleyecez

# rpm -ivh oracleasm-support-version.arch.rpm

# rpm -ivh oracleasm-kernel-version.arch.rpm
# rpm -ivh oracleasmlib-version.arch.rpm

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

[email protected] ~]# /usr/sbin/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
Writing Oracle ASM library driver configuration: done

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

[[email protected] ~]# oracleasm init
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module “oracleasm”: oracleasm
Configuring “oracleasm” to use device physical block size
Mounting ASMlib driver filesystem: /dev/oracleasm

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

[[email protected] ~]# oracleasm createdisk DATA1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
[[email protected] ~]# oracleasm createdisk DATA2 /dev/sdb1
Device “/dev/sdb1” is already labeled for ASM disk “DATA1”
[[email protected] ~]# oracleasm createdisk DATA2 /dev/sdc1
Writing disk header: done
Instantiating disk: done
[[email protected] ~]# oracleasm createdisk FRA /dev/sdd1
Writing disk header: done
Instantiating disk: done

  • disklerimizi listelersek

[[email protected] ~]# ll /dev/oracleasm/disks/
total 0
brw-rw—- 1 oracle dba 8, 17 Nov 5 15:09 DATA1
brw-rw—- 1 oracle dba 8, 33 Nov 5 15:09 DATA2
brw-rw—- 1 oracle dba 8, 49 Nov 5 15:09 FRA

  • disklerimizi bu şekilde görüyorsak sorun yok demektir..
  • reboot komutu ile sisitemimiz yeniden başlatıyoruz…

 

  • Şimdi Gid Kurulumuna geçiyoruz..

[[email protected] ~]$ cd /home/oracle/
[[email protected] ~]$ . .bash_profile
[[email protected] ~]$ cd /u01/orainstall/grid/
[[email protected] grid]$ ./runInstaller
Starting Oracle Universal Installer…

 

 

 

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

[[email protected] grid]$ . .grid
bash: .grid: No such file or directory
[[email protected] grid]$ cd /home/oracle/
[[email protected] ~]$ . .grid
[[email protected] ~]$ asmca

 

  • Diskler oluşturulduktan sonra database kurulumuna geçiyoruz

[[email protected] ~]$ cd
[[email protected] ~]$ . .db
[[email protected] ~]$
[[email protected] ~]$ cd /u01/orainstall/database/
[[email protected] database]$ ls
install response rpm runInstaller sshsetup stage welcome.html
[[email protected] database]$ ./runInstaller
Starting Oracle Universal Installer…

  • Kurulum başarı ile bittikten sonra create database yapmak için dbca komutunu kullanacağız.