2013年12月13日 星期五

CentOS6.4 64bit 安裝 OracleDB 12c

關於之前有轉貼一份關於在 CentOS5 上安裝 OracleDB 11gR2
但是在日前我嘗試在 CentOS6.4 64bit 上安裝結果會發生問題
查了一下才知道要安裝新的 patch 才可以解決問題
但是下載新的 patch 需要 oracle 的付費帳號,免費帳號不能下載
所以我就嘗試安裝最新的 OracleDB 12c,最後成功的完成安裝

在此寫上教學

切換成 root 身份
1. 在 yum 設定檔中加上一行新設定,默認同時安裝32位和64位rpm

#echo 'multilib_policy=all' >> /etc/yum.conf

2. 安裝所需軟體

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

3. 安裝 window 環境

#yum -y groupinstall "Desktop"

4. 增加 oracle 使用者及相關群組,並修改密碼

#/usr/sbin/groupadd oinstall
#/usr/sbin/groupadd dba
#/usr/sbin/useradd -g oinstall -G dba oracle
#passwd oracle

5. 在 pam 設定檔中增加限制模組

#vi /etc/pam.d/login
...
以下內容加到檔案最下面
session required pam_limits.so

6. 修改系統參數

#vi /etc/sysctl.conf
...
以下內容加到檔案最下面

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048586

vm.hugetlb_shm_group=500

注意:原本設定檔中有 kernel.shmmax、kernel.shmall 兩行設定,需用 "#" 注釋

7. 修改 selinux 設定檔

#vi /etc/selinux/config

SELINUX=disabled

8. 修改 oracle 使用者 Limits

#vi /etc/security/limits.conf
...
以下內容加到檔案最下面

oracle soft nofile 65536

oracle hard nofile 65536

oracle soft nproc 16384

oracle hard nproc 16384

oracle stack nproc 10240

oracle stack nproc 10240

9. 修改 hosts 設定檔,將 127.0.0.1 指向自己所設定的 hostname

查詢主機名稱

#hostname
oracle

#vi /etc/hosts
...
以下內容加到檔案最下面

127.0.0.1 oracle

10. 建立相關目錄解壓縮 oracle 12c 軟體並更改權限

#mkdir /u01
#mkdir -p /u01/app/

將 oracle 12c 下載至 u01 目錄
#unzip linuxamd64_12c_database_1of2.zip
#unzip linuxamd64_12c_database_2of2.zip
#chown -R oracle:oinstall /u01/
#chmod -R 775 /u01/

以上已完成基本設定

接下來請以 oracle 使用者身份進行操作,並照著畫面依序執行

11. 切換至 windows 介面,進行 oracledb 安裝

$startx

12. 開啟 terminal 軟體,並在 terminal 中切換至 u01 目錄下



13. 在 u01 目錄中會發現 oracle 12c 解壓縮後為 "database" 這個資料夾,切換至該目錄之後請執行 "runInstaller" 這隻程式



14. 如執行後出現跟我一樣之訊息,請不用管它,直接按 "y" 繼續執行


15. 進入 oracle 安裝畫面,因為只是試用,所以我會把接受 support 的選項關閉,按下 "Next" 出現 Email 位設定之訊息也可以不管它直接按 "Yes"


16. 如果之前已安裝過 oracledb 可以選擇 update 的方式安裝,在這裡因為筆者為新安裝,所以選擇跳過此步驟,直接選擇 "Yes" 繼續安裝


17. 選擇自動建立新的 database


18. 選擇桌機方式安裝


19. 安裝設定,其中需注意紅框的部份


20. 設定完成後直接安裝


21. 安裝過程中會出現需使用 root 身份執行指令的訊息,以下為 11gR2 的畫面,跟 12c一樣只要注意執行路徑,執行完指令後再按 "確定" 進行下一步


21. 安裝完成後,確認服務是否正確開啟並測試連線

$netstat -tunlp

....
..
tcp        0      0 :::1521                     :::*                        LISTEN      4049/tnslsnr
..

出現以上 1521 port 開啟應該是正常運作了


使用連線軟體確定 db 連線正常,db 預設使用者為 "system",密碼為安裝時所輸入之密碼


以上為完整的安裝教學,接下來是將 oracle 設定為開機啟動

使用 root 身份進行以下操作
22. 切換至 init 目錄,並建立 oracle 開機檔

#cd /etc/init.d/
#vi oracle

#!/bin/bash

# oracle: Start/Stop Oracle Database 12c
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle

. /etc/rc.d/init.d/functions

LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
ORACLE_USER=oracle

case "$1" in
'start')
   if [ -f $LOCKFILE ]; then
      echo $0 already running.
      exit 1
   fi
   echo -n $"Starting Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
   touch $LOCKFILE
   ;;
'stop')
   if [ ! -f $LOCKFILE ]; then
      echo $0 already stopping.
      exit 1
   fi
   echo -n $"Stopping Oracle Database:"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
   su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
   rm -f $LOCKFILE
   ;;
'restart')
   $0 stop
   $0 start
   ;;
'status')
   if [ -f $LOCKFILE ]; then
      echo $0 started.
      else
      echo $0 stopped.
   fi
   ;;
*)
   echo "Usage: $0 [start|stop|status]"
   exit 1
esac

exit 0

23. 更改檔案權限並加入清單

#chmod 755 oracle
#chkconfig --add oracle

24. 重開機後確認是否有自動開啟