在 Linux 上安裝 Oracle Database 的小經驗

By | June 5, 2014

Oracle Database 用就用得多。Enterprise Edition 就未安過,只是安過 Express。要安裝 Oracle,有一大堆手續。例如:加 user、改 .bash_profile、改 Kernel 參數等等,但一如其他 Linux 軟件,最煩的是 dependencies。

如果用類 CentOS Linux,最簡單的是從 Oracle 中安裝一個叫 oracle-rdbms-server-11gR2-preinstall 的套件。套件只是幾十KB,只是佢會令你安裝一些需要的套件。

# Download Repos
wget --no-check-certificate https://public-yum.oracle.com/public-yum-ol6.repo -O /etc/yum.repos.d/public-yum-ol6.repo

# Download GPG Key
wget https://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

# 安裝 oracle-rdbms-server-11gR2-preinstall
yum install oracle-rdbms-server-11gR2-preinstall

但這個時候我不會真的安裝它,而是 cancel 後自行補安需要的套件。再把 /etc/yum.repos.d/public-yum-ol6.repo 刪除又或改為 .bak。否則,加入 Oracle Respo 後,你的 CentOS 會被安裝其他 Oracle 套件而改為 Oracle Linux 了

正式安裝前,要更改 user 的 .bash_profile,通常會建立一個叫 Oracle 的用戶來安裝 Oracle Database,所以就是更改 /home/oracle/.bash_profile,更改後,需要登出再登入。


# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=localhost; export ORACLE_HOSTNAME
ORACLE_UNQNAME=DB11G; export ORACLE_UNQNAME
ORACLE_BASE=/home/oracle/app/oracle; export ORACLE_BASE # 有人會安到 /u01/app/oracle,方便 mount 去其他地方
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=DB11G; export ORACLE_SID
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH export PATH

安裝 Oracle Database 後,發現有個叫 Example 的 tablespace,它不能直接被刪除,要刪除它,要用 sysdba 執行下列 SQLs

DROP USER oe CASCADE;
DROP USER IX CASCADE;
DROP USER HR CASCADE;
DROP USER PM CASCADE;
DROP USER SH CASCADE;
DROP TABLESPACE EXAMPLE INCLUDING CONTENTS AND DATAFILES;

References:
http://www.tecmint.com/oracle-database-11g-release-2-installation-in-linux/

https://community.oracle.com/thread/1108714?tstart=0