天天看點

oracle 10g 指令行安裝

 轉載自: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 <安裝時使用的應答檔案>