轉載自:http://hi.chinaunix.net/?20268078/viewspace-45639
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 exdivssion #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從CD光牒安裝,必須先将應答檔案複制到硬碟上,才能修改。
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 RACLE=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 <安裝時使用的應答檔案>