這篇文章在Oracle的網站上發表,堪稱安裝Oracle9i Database的指南性論述。
作者:Abhijeet Kulkarni
資料庫版本:Oracle9i R2 (9.2.0.1.0)
1. 建立使用者與組:
-------------------------
切換為 Root 使用者並執行下列命令
$ su -
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
2. 建立目錄。
--------------------------
我們將把所有東西都安裝到在 /opt/ora9 目錄下:
# mkdir -p /opt/ora9/product/9.2
# mkdir /var/opt/oracle
# chown oracle.dba /var/opt/oracle
# chown -R oracle.dba /opt/ora9
3. 預先安裝(系統配置):
---------------------------
3.1 安裝這些相容性庫:
compat-gcc-7.3-2.96.118.i386.rpm
compat-libgcj-7.3-2.96.118.i386.rpm
compat-libgcj-devel-7.3-2.96.118.i386.rpm
nss_db-compat-2.2-20.i386.rpm
您可以在安裝 CD 上找到這些程式包。
第一個檔案在 CD1 的 RedHat RPMS 目錄中
另外 3 個檔案在 CD2 的 RPMS 目錄中
3.2 設定核心參數以便能夠成功啟動:
把這些行添加到 /etc/sysctl.conf
如果您有更多 RAM,也可以更改這些值:
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
把這些行添加到 /etc/security/limits.conf
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
重啟系統以使這些核心更改生效,如果不允許重啟,您可以在運行時通過執行下列命令更改核心參數:
# echo 250 32000 100 128 > /proc/sys/kernel/sem
# echo 536870912 > /proc/sys/kernel/shmmax
# echo 4096 > /proc/sys/kernel/shmmni
# echo 2097152 > /proc/sys/kernel/shmall
# echo 65536 > /proc/sys/fs/file-max
# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range
4. 預先安裝(oracle 環境):
----------------------------
以 oracle 使用者身份登入:
su - oracle
將下列行放置在 ~/.bashrc:
#oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
#
#根據您本國的情況更改這個 NLS 設定:
#樣本:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
export NLS_LANG='croatian_croatia.ee8iso8859p2'
如果您需要其它的國家設定(這些是克羅地亞的),請參考這裡的支援設定,並對 NLS_LANG 變數進行相應更改。
5. 安裝:
------------------------
以 Root 使用者登入並允許使用者 oracle 向 X 顯示器寫入:
su -
xhost +
登入狀態 oracle 使用者:
su - oracle
開始安裝。不要切換到您的 CD-ROM 安裝目錄,因為您將無法在系統需要時卸下第一張 CD 以插入其它 CD。
/mnt/cdrom/install/linux/runInstaller
在安裝期間,系統會提示您插入其它安裝盤。開啟一個新的控制台,用命令 umount /dev/cdrom(以 Root 使用者身份)卸下當前的碟片,替換該碟片。如果 Redhat9 沒有自動安裝它,那麼使用命令 mount /dev/cdrom 將其裝上
安裝將產生兩個錯誤。
* 第一,您將會看到一個錯誤對話方塊提示關於 ins_oemagent.mk 的問題。選擇忽略該錯誤,我們將在安裝後更正該錯誤。
* 第二個對話方塊將通知您 "Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk"。
如果發生該錯誤,開啟一個新的控制台並以 oracle 使用者身份登入。執行下列命令:
$ cd $ORACLE_HOME/install
$ tail make.log
您將看到與下面類似的一行資訊:
gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/
-L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o
-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut
-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9
-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9
複製該行,在行末添加 -ldl 然後在 $ORACLE_HOME/bin 中運行它。
$ cd $ORACLE_HOME/bin
$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/
-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/
/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/
-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc
-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9
-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl
現在,點擊對話方塊上的忽略按鈕,安裝將繼續進行。
最後,Oracle 安裝可能會提示您代理程式啟動失敗。選擇忽略,我們將在稍後更改此錯誤。
6. 安裝後處理
---------------------------
開啟一個控制台並以 oracle 使用者身份登入。執行這些命令:
$ cd $ORACLE_HOME/network/lib
$ make -f ins_net_client.mk install
然後編輯 $ORACLE_HOME/ctx/lib/ins_ctx.mk 檔案,把 13-14 行從:
ctxhx:$(CTXHXOBJ)
$(LINK) $(CTXHXOBJ) $(INSO_LINK)
改為
ctxhx:$(CTXHXOBJ)
$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)
然後執行
$ make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install
現在,您將能夠用下面的命令啟動您的代理程式了
$ /opt/ora9/product/9.2/bin/agentctl start
7. 啟動資料庫
------------------------------
如果您的安裝程式在第 5 部分的最後一步被掛起,不要擔心。等一段時間看它是否響應,如不響應則終止它。
在一個 shell 指令碼(如 setvar.sh)中添加下面幾行
#oracle 9i
export ORACLE_BASE=/home1/orahome
export ORACLE_HOME=/home1/orahome/ora92
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
儲存此檔案並在命令提示字元運行
$source setvar.sh
現在轉至 $ORACLE_HOME/bin
使用任意編輯器編輯 dbca 指令碼
$kwrite dbca
找到 JRE_HOME 環境變數。它指向 JDK 1.8,後者是安裝 CD 的一部分。更改該變數並使其指向您的 linux 安裝的 JDK1.3 或 1.4,轉至檔案末尾,該變數用於調用 Java 程式。從路徑中刪除 bin 目錄,並將 jre 可執行檔更名為 java 檔案。這就像使用我們自己的 JDK 調用 java 程式一樣。
啟動
$./dbca
8. 啟動資料庫執行個體
開啟一個 sqlplus 會話並以 sys/passwd 作為系統資料庫管理員登入
sql>create spfile from pfile='full path of the .ora file created by the dbca utility ';
Eg /home1/orahome/admin/dl226b/pfile/initdl226b.ora
sql>shutdown immediate;
sql>startup;