在Linux命令行下安裝Oracle 10g

Oracle 10g支持在命令行下用靜默模式(Silent)安裝,給那些沒有安裝圖形界面的Linux系統提供了極大的便利。
下面以Fedora Core 6爲例,介紹在命令行下安裝OracleOracle 10g的方法。

1 安裝前的準備
準備工作要用登錄爲root用戶來進行。

1.1 選擇安裝環境的語言
Oracle安裝時可以通過環境變量LANG指定安裝語言,如果Linux命令行不能顯示中文,就要將語言環境設置爲英語。
例如:export LANG=en_US.UTF-8

1.2 修改gennttab
Oracle 10g在一些Linux系統下安裝可能會被中斷,在安裝日誌文件
$ORACLE_HOME/install/make.log
裏可以看見以下錯誤信息
/bin/sed: -e expression #1, char 7: unterminated `s' command
要解決這個問題就必須編輯文件 gennttab。

先解壓Oracle安裝目錄下的 stage/Components/oracle.network.rsf/10.2.0.1.0/1/DataFiles/filegroup6.jar,可以用以下方法之一進行解壓
用jar解壓:jar -xf filegroup6.jar bin/gennttab
用unzip解壓:unzip filegroup6.jar bin/gennttab
再用文本編輯器(例如vi)打開解壓出來的 gennttab,將以下內容
LIB=`$ECHO ${TtoLIB} | $SED 's/ ///
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
INI=`$ECHO ${TtoINI} | $SED 's/ ///
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
BAS=`$ECHO ${TtoBAS} | $SED 's/ ///
/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`
改爲
LIB=`$ECHO ${TtoLIB} | $SED 's/ //n/g' | $GREP "^${T}:" | $AWK -F:
'{print $2}'`
INI=`$ECHO ${TtoINI} | $SED 's/ //n/g' | $GREP "^${T}:" | $AWK -F:
'{print $2}'`
BAS=`$ECHO ${TtoBAS} | $SED 's/ //n/g' | $GREP "^${T}:" | $AWK -F:
'{print $2}'`

保存後再用將gennttab更新到filegroup6.jar裏面,可以用以下方法之一進行更新
用jar更新:jar -uvf filegroup6.jar bin/gennttab
用zip更新:zip -vu filegroup6.jar bin/gennttab


1.3 修改內核參數
編輯文件 /etc/sysctl.conf,修改以下項目,如果沒有可以自己添加。
kernel.shmall = 2097152 # 可以使用的共享內存的總量。
kernel.shmmax = 2147483648 # 最大共享內存段大小。
kernel.shmmni = 4096 # 整個系統共享內存段的最大數目。
kernel.sem = 250 32000 100 128 # 每個信號對象集的最大信號對象數;系統範圍內最大信號對象數;每個信號對象支持的最大操作數;系統範圍內最大信號對象集數。
fs.file-max = 65536 # 系統中所允許的文件句柄最大數目。
net.ipv4.ip_local_port_range = 1024 65000 # 應用程序可使用的IPv4端口範圍。
net.core.rmem_default = 1048576 # 套接字接收緩衝區大小的缺省值
net.core.rmem_max = 1048576 # 套接字接收緩衝區大小的最大值
net.core.wmem_default = 262144 # 套接字發送緩衝區大小的缺省值
net.core.wmem_max = 262144 # 套接字發送緩衝區大小的最大值

注:內核參數並非必須修改,可以根據自己實際情況而定。

1.4 爲Oracle創建DBA組和用戶
安裝Oracle必須指定擁有DBA權限的組和運行Oracle的用戶。
創建組:groupadd oradba
創建用戶:useradd -g oradba oracle

注:組名和用戶名可以任意指定,不一定要照搬本文。

1.5 創建安裝Oracle的目標目錄
創建Oracle系統目錄:mkdir /oracle
創建Oracle服務器主目錄:mkdir /oracle/10g
將該目錄的所有者設置爲oracle:chown oracle /oracle -R
編輯 /etc/profile,在後面追加以下兩行
export ORACLE_BASE=/oracle
export ORACLE_HOME=/oracle/10g

注:安裝Oracle的目標目錄可以任意指定,但是安裝和運行Oracle的用戶必須有完全修改該目錄的權限。

2 安裝
2.1 編輯安裝需要的應答文件
靜默模式(Silent)安裝必須指定一個應答文件來完成安裝過程所須的各類參數。
在Oracle安裝目錄的response子目錄裏有enterprise.rsp有enterprise.rsp、standard.rsp和custom.rsp三個應答文件,分別對應企業版、標準版和定製的安裝。
以enterprise.rsp爲例,用任意的文本編輯器打它,修改以下這些項目的值。
ORACLE_HOME Oracle服務器的主目錄位置,必須是絕對路徑。
ORACLE_HOME_NAME Oracle服務器的名稱,必須以字母開頭。
COMPONENT_LANGUAGES Oracle服務器支持的語言,默認只有英語,可以添加多個語言。
s_nameForDBAGrp 用於Oracle系統管理的linux用戶組名,該組的用戶擁有管理Oracle服務器的權限,在本例中設置爲 oradba。
s_nameForOPERGrp 用於Oracle數據庫常規操作的linux用戶組名,該組的用戶擁有常規操作Oracle數據庫的權限,在本例中設置爲 oracle。
n_configurationOption 安裝類型(1爲在安裝後創建數據庫,2爲安裝後創建一個自動存儲管理實例,3爲只安裝服務器軟件),在本例中選擇3。
其它項目用默認值即可,也可以根據自己的須要進行修改。

注:如果Oracle從光盤安裝,必須先將應答文件複製到硬盤上,才能修改。

2.2 開始安裝
現在萬事具備,可以安裝了。
用oracle用戶登錄,然後在Oracle安裝目錄裏執行
./runInstaller -ignoreSysPrereqs -silent -responseFile <應答文件的絕對路徑>
接下來就是等待安裝結束了。
各安裝參數的含義如下
ignoreSysPrereqs 讓Oracle忽略系統檢查,因爲Oracle官方聲明只支持Linux服務器產品,所以要在非服務器產品的Linux上安裝就必須指定此參數。
silent 讓安裝程序以靜默模式運行。
responseFile 指定一個應答文件。

3 安裝後要做的工作
3.1 Oracle系統初始化
用root用戶登錄,然後運行$ORACLE_HOME/root.sh進行Oracle的系統初始化工作,通常一路按回車用默認值即可。

3.2 安裝網絡監聽器
沒有網絡監聽器,客戶端就無法通過網絡連接Oralce服務器。要在命令行安裝網絡監聽器,也只能使用靜默模式。
編輯Oracle安裝目錄裏response子目錄下的應答文件 netca.rsp,修改以下項目。
INSTALL_TYPE=""custom"" 安裝的類型
LISTENER_NUMBER=1 監聽器數量
LISTENER_NAMES={"LISTENER"} 監聽器的名稱列表
LISTENER_PROTOCOLS={"TCP;1521"} 監聽器使用的通訊協議列表
LISTENER_START=""LISTENER"" 監聽器啓動的名稱
然後運行
$ORACLE_HOME/bin/netca /silent /responseFile <應答文件的絕對路徑>

3.3 修改dbstart
用任意的文本編輯器打開 $ORACLE_HOME/bin/dbstart,將
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
改爲
ORACLE_HOME_LISTNER=$ORACLE_HOME
否則網絡監聽器可能無法自動啓動。

3.4 安裝數據庫實例
編輯Oracle安裝目錄裏response子目錄下的應答文件 dbca.rsp,修改以下項目。
GDBNAME 數據庫全局名稱
SID 數據庫的SID
SYSPASSWORD SYS用戶的初始密碼
SYSTEMPASSWORD SYSTEM用戶的初始密碼
CHARACTERSET 數據庫字符集(中文爲 ZHS16GBK)
NATIONALCHARACTERSET 數據庫國家字符集


然後運行
$ORACLE_HOME/bin/dbca -silent -responseFile <應答文件的絕對路徑> -cloneTemplate
數據庫創建成功後須要註冊一些信息,運行
$ORACLE_BASE/oraInventory/orainstRoot.sh
然後編輯 /etc/oratab

<Oracle的SID>:<Oracle的主目錄>:N
修改爲
<Oracle的SID>:<Oracle的主目錄>:Y
使數據庫實例能夠自動啓動。

3.5 讓Oracle運行爲服務
創建文件 /etc/init.d/oracle,輸入下列內容

 

#!/bin/sh
#
export ORACLE_HOME=<Oracle服務器主目錄的絕對路徑>
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export ORACLE=oracle

. /etc/init.d/functions

export PATH=${PATH}:$ORACLE_HOME/bin

start()
{
    daemon --user $ORACLE $ORACLE_HOME/bin/dbstart
    daemon --user $ORACLE "$ORACLE_HOME_LISTNER/bin/lsnrctl start"
}

stop()
{
    daemon --user $ORACLE "$ORACLE_HOME_LISTNER/bin/lsnrctl stop"
    daemon --user $ORACLE $ORACLE_HOME/bin/dbshut
}

case $1 in
'start')
    start
    RETVAL=$?
    ;;
'stop')
    stop
     RETVAL=$?
    ;;
'restart')
    stop
    start
    RETVAL=$?
    ;;
*)
    echo "usage: $0 {start|stop|restart}"
     exit
     ;;
esac
#
exit

然後將這個文件賦予可執行的權限,運行
chmod a+x /etc/init.d/oracle
讓Oracle的服務在Linux啓動時自動運行
ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle
這樣就可以用service來啓動和停止Oracle了。

附1 Oracle 10g對硬件環境的要求
物理內存
基本 - 512MB
推薦 - 1024MB
內存交換分區相對於物理內存的比例
物理內存1024MB~2048MB - 150%
物理內存2049MB~8192MB - 100%
物理內存大於8192MB - 75%
磁盤空間
/tmp目錄所在的分區至少要有400MB空閒磁盤空間。
根據安裝類型,安裝Oracle服務器軟件的分區至少要有1.5GB到3.5GB的空閒磁盤空間。
1.2GB磁盤空間用於數據庫預配置文件系統存儲(可選)

附2 Oracle 10g對軟件環境的要求
操作系統
Red Hat Enterprise Linux AS/ES 3.0 (Update 4 or later)
Red Hat Linux 4.0
SUSE Linux Enterprise Server 9.0 with SP 2 or later
Asianux 1.0
Asianux 2.0
軟件包
X11相關的庫 (軟件包名視操作系統而定,故不一一列出)
gcc (版本至少爲2.96-124)
make (版本至少爲3.79)
binutils (版本至少爲2.11)
openmotif (版本至少爲2.1.30)
setarch (版本至少爲1.3)
compat-db (版本至少爲4.0.14.5)
compat-gcc (版本至少爲7.3-2.96.122)
compat-gcc-c++ (版本至少爲7.3-2.96.122)
compat-libstdc++ (版本至少爲7.3-2.96.122)
compat-libstdc++-devel (版本至少爲7.3-2.96.122)
sysstat (版本至少爲5.0.5-1)
libaio (版本至少爲0.3.103-3)
libaio-devel (版本至少爲0.3.103-3)

附3 相關鏈接
在 Linux x86 上安裝 Oracle 數據庫 10g
自動安裝 Oracle 數據庫 10g 和 Red Hat Enterprise Linux
Oracle® Database Installation Guide for Linux x86
Oracle數據庫靜默安裝實踐
Oracle的全球化支持
Oracle 10g文檔庫

4 結束語
現在Oracle 10g的安裝已經完成,在任何一臺電腦上裝個Oracle客戶端就可以對它進行管理了。
如果要卸載Oracle,只須運行
$./runInstaller -silent -deinstall -removeallfiles -removeAllPatches "REMOVE_HOMES={$ORACLE_HOME}" -responseFile <安裝時使用的應答文件>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章