轉自: 這里
1. 配置RedHat AS 3
操作系統版本:
Red Hat Enterprise Linux AS release 3 (Taroon)
Kernel 2.4.21-4.EL on an i686
按照常規來安裝操作系統,記得要安裝開發工具(gcc等必要工具).
1.1 檢查必要的硬件信息
檢查內容
|
最小值
|
檢查命令參考
|
物理內存
|
512M
|
# grep MemTotal /proc/meminfo
|
交換空間
|
1.0 GB或者2倍內存大小
|
# grep SwapTotal /proc/meminfo
|
/tmp 空間
|
400 MB
|
# df -k /tmp
|
軟件所需空間
|
2.5 GB
|
# df -k (空間越大越好,如果是正式系統,應該進行詳盡的規劃)
|
數據庫文件
|
1.2 GB
|
# df -k (空間越大越好,如果是正式系統,應該進行詳盡的規劃)
|
檢查完如上各項之后, 應該修改核心參數.執行如下命令:
#vi /etc/sysctl.conf
#注釋:
#表示使用root用戶操作,$表示使用oracle 用戶進行操作.提示符后面的藍色部分表示需要輸入的命令,以下同.
在該文件末尾加入如下內容:
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
編輯完之后,保存,執行 # /sbin/sysctl -p 命令操作來使我們所做的變更生效.
注:上面kernel.shmmax/kernel.sem等是典型的核心參數配置.您可能需要根據您的實際環境進行適當的變動.
關于這些核心參數的說明在Oracle的 Oracle9i Installation Guide Release 2 (9.2.0.1.0) for UNIX Systems 中有很詳細的說明.(
http://download-west.oracle.com/docs/html/A96167_01/toc.htm
)
然后,應該檢查一下上面的操作是否正確:
# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep ip_local_port_range
為Oracle用戶設定Shell的限制
一般來說,出于性能上的考慮,還需要需要進行如下的設定,以便改進Oracle用戶的有關 nofile(可打開的文件描述符的最大數)和nproc(單個用戶可用的最大進程數量)
# vi /etc/security/limits.conf
# 添加如下的行
*?????????????? soft??? nproc?? 2047
*?????????????? hard??? nproc?? 16384
*?????????????? soft??? nofile? 1024
*?????????????? hard??? nofile? 65536
添加如下的行到/etc/pam.d/login 文件:
session??? required???? /lib/security/pam_limits.so
編輯 /etc/profile 文件,添加如下部分:
if [ $USER = "oracle" ]; then?
??????? if [ $SHELL = "/bin/ksh" ]; then?
??????????????? ulimit -p 16384?
??????????????? ulimit -n 65536?
??????? else?
??????????????? ulimit -u 16384 -n 65536?
??????? fi?
fi
之后,執行$ ulimit 驗證一下.
1.2 檢查并安裝相關補丁
在這個版本的RHEL上安裝Oracle,必須要有幾個軟件包. 確認以下 rpm包都已經安裝:
make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
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
# rpm -qa | grep compat
# 在機器上輸出如下:
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5
compat-db-4.0.14-5
compat-gcc-7.3-2.96.122
# rpm -qa | grep openmotif
openmotif-devel-2.2.2-16
openmotif-2.2.2-16
# rpm -qa | grep setarch
setarch-1.3-1
上面顯示的內容是在筆者已經安裝了具體的RPM包之后的結果.一般情況下,你的系統上的輸出結果和這個不同.如果個別包沒有安裝,把系統安裝光盤mount上,找到具體的軟件包(大多數在第三張光盤上),然后利用如下的命令來安裝相應的包:
# rpm -ivh *.rpm
要額外注意的是,這些軟件包之間是有依賴性的,先后的順序要找好.否則會報告不能安裝的錯誤. 此外,最好驗證一下 gcc和glibc的版本(要求是gcc-3.2.3-2 或者更高):
#gcc -v
#rpm -q glibc
1.3 創建用戶和相關的組
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba oracle
如果只是測試目的的話,不創建oinstall組也沒什么. 不過還是規范一點比較好.如果oracle 用戶和dba組等已經存在,作適當的調整即可.
1.4 檢查并調整環境變量
登錄為oracle用戶
# su - oracle
$ cd
$ vi .bash_profile
#添加如下內容,你的具體值應該不會和這個完全相同.
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/dbse
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LC_CTYPE=en_US.UTF-8
然后執行
$ source .bash_profile
使環境變量生效. /oracle 等目錄應該建立好并做合適的授權.
2. 安裝Orale10g
mount安裝盤.由于10g無法以root安裝,以前面建的oracle用戶登錄.執行:
$ ./runInstaller
按照提示安裝即可,最后還需要以root運行兩個腳本。
3. 配置TNS參數
在 /oracle/product/dbse/network/admin/ 目錄下有 listener.ora 和 tnsnames.ora 兩個文件,設置如下:
#listener.ora
SID_LIST_LISTENER =
? (SID_LIST =
???? (SID_DESC =
????? (GLOBAL_DBNAME = orcl)
????? (ORACLE_HOME = /oracle/product/dbse)
????? (SID_NAME = orcl)
???? )
? )
LISTENER =
? (DESCRIPTION_LIST =
??? (DESCRIPTION =
??????? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
??????? )
??????? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
??????? )
??? )
? )
#tnsnames.ora
ORCL =
? (DESCRIPTION =
??? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
??? (CONNECT_DATA =
????? (SERVER = DEDICATED)
????? (SERVICE_NAME = orcl)
??? )
? )
EXTPROC_CONNECTION_DATA =
? (DESCRIPTION =
????? (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
??????? (CONNECT_DATA =
????? (SID = PLSExtProc)
????? (PRESENTATION = RO)
??? )
? )
其中SERVICE_NAME與SID_NAME一定要和.bash_profile中的ORACLE_SID相一致,否則無法啟動
4. 啟動Oracle
以oracle用戶登錄
4.1 啟動TNS監聽器
$ lsnrctl start
出現如下顯示,表示監聽服務成功開啟
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 22-FEB-2006 10:24:03
Copyright (c) 1991, 2005, Oracle.? All rights reserved.
Starting /oracle/product/dbse/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /oracle/product/dbse/network/admin/listener.ora
Log messages written to /oracle/product/dbse/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
------------------------
Alias???????????????????? LISTENER
Version?????????????????? TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date??????????????? 22-FEB-2006 10:24:03
Uptime??????????????????? 0 days 0 hr. 0 min. 0 sec
Trace Level?????????????? off
Security????????????????? ON: Local OS Authentication
SNMP????????????????????? OFF
Listener Parameter File?? /oracle/product/dbse/network/admin/listener.ora
Listener Log File???????? /oracle/product/dbse/network/log/listener.log
Listening Endpoints Summary...
? (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
? (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.100)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
? Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
4.2啟動數據庫
9i 之后已經沒有 svrmgrl 了,所有的管理工作都通過 sqlplus 來完成:
$ sqlplus /nolog
SQL> connect system/change_on_install as sysdba
SQL> startup
出現如下顯示,表示Oracle已經成功啟動
ORACLE instance started.
Total System Global Area? 285212672 bytes
Fixed Size????????????????? 1218968 bytes
Variable Size????????????? 88082024 bytes
Database Buffers????????? 188743680 bytes
Redo Buffers??????????????? 7168000 bytes
Database mounted.
Database opened.
4.3 自動啟動與關閉
編輯 /etc/oratab ,把所有的 instance 的重啟動標志設置成 'Y',如:
orcl:/oracle/product/dbse:Y
做一個啟動腳本 /etc/init.d/dbora ,如下所示:
#!/bin/sh
# description: Oracle auto start-stop script.
# chkconfig: - 20 80
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=/oracle/product/dbse
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
;;
'restart')
$0 stop
$0 start
;;
esac
賦予執行權限
chmod 750 /etc/init.d/dbora
作成以下鏈接:
ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora
ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora
執行以下命令:
chkconfig --level 345 dbora on
這樣就OK了。下次開關機的時候,Oracle也會隨之啟動/停止。
參考信息
http://www.dbanotes.net