Oracle version: 10g Release 2 (10.2) for Linux x86
參考<<基于Linux的Oracle資料庫管理>> 李愛武編著
====================
确定系統已安裝如下包:
所需程式包的版本(或更高版本): (有些不一定準确)
gcc-3.2.3-2
make-3.79
binutils-2.11
openmotif-2.2.2-16
setarch-1.3-1
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
compat-db-4.0.14.5(Oracle 10g 資料庫安裝指南 中将其列為是必需的,但此處并不需要)
libaio-0.3.105-2.i386.rpm和libaio-devel-0.3.105-2.i386.rpm
這兩個包是為了在安裝Oracle過程中,後面建立資料執行個體的時候出現了ORA-12547: TNS:lost contact的錯誤.
可在安裝盤第3張裡找到了libaio-0.3.105-2.i386.rpm和libaio-devel-0.3.105-2.i386.rpm
# rpm -q gcc make binutils openmotif \ setarch compat-db compat-gcc \
openmotif compat-gcc-c++ \ compat-libstdc++ compat-libstdc++-devel libaio libaio-devel
=====================
建立 Oracle 組和使用者帳戶
接下來,建立用于安裝和維護 Oracle 10g 軟體的 Linux 組和使用者帳戶。
使用者帳戶将稱為 oracle,而組将稱為 oinstall 和 dba。以 root 使用者身份執行以下指令:
例如:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba oracle
# passwd oracle
====================
建立目錄
# mkdir -p /u01/app/oracle
# mkdir -p /u02/oradata
# chown -R oracle:oinstall /u01/app/oracle /u02/oradata 把後面的兩個目錄及其子目錄(R遞歸地)的擁有者(組)指定為oracle使用者(oinstall組)
# chmod -R 775 /u01/app/oracle /u02/oradata
=========================
配置 Linux 核心參數
cat >> /etc/sysctl.conf <<EOF
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
EOF
/sbin/sysctl -p
----------------------------
kernel.shmmax = 2147483648
// 該參數定義了共享記憶體段的最大尺寸(以位元組為機關)。
其值應>=sag_max_size初始化參數的大小,否則SAG由多個記憶體段構成,效率降低,
還要不小于實體記憶體的一半,預設情況下在32位x86系統中,Oracle SGA最大不能超過1.7GB.
預設為32M,對于oracle來說,該預設值太低了,通常将其設定為2G
kernel.shmmni = 4096
// 這個核心參數用于設定系統範圍内共享記憶體段的最大數量。該參數的預設值是 4096.
此值也是在系統中可以啟動的Oracle執行個體的最大數量,通常不需要更改,
因為顯然在生産環境下,一個伺服器上同時啟動的執行個體個數達不到這個數量.
kernel.shmall = 2097152
// 該參數表示系統任意時刻可以配置設定的所有共享記憶體段的總和的最大值(以頁為機關).
其值應不小于shmmax/page_size.預設值就是2097152,如果伺服器上運作的所有執行個體的
SGA總和不超過8GB(通常系統可配置設定的共享記憶體的和最大值為8GB),通常不需要修改.
kernel.sem = 250 32000 100 128 // 表示設定的信号量
fs.file-max = 65536 // 表示一個程序可以打開的檔案句柄的最大數量.
net.ipv4.ip_local_port_range = 1024 65000 //專用伺服器模式下與使用者程序通信時配置設定給使用者的端口區間
net.core.rmem_default=262144 // 預設接收緩沖區大小
net.core.rmem_max=262144 // 接收緩沖區最大值
net.core.wmem_default=262144 // 預設的發送緩沖區大小
net.core.wmem_max=262144 // 發送緩沖區最大值
以上四個值的設定是Oracle安裝時推薦的.(應在安裝完後把最大值改為524288)
修改好核心參數後,執行如下指令使新的設定生效
/sbin/sysctl -p
=============================
設定Oracle使用者登入環境
修改使用者目錄下.bash_profile檔案,增加如下環境變量:
以 oracle 身份登入,并通過在 .bash_profile 或 .profile(bash 或 ksh)
中添加以下行,增加如下環境變量:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
# user locale variable
export simplified chinese'_china.ZHS16GBK
#export NLS_LANG=english_america.UTF-8
================================
以Oracle使用者登陸!!!(否則容易出錯)
安裝Oracle
運作..../database/.runInstaller 開始安裝...
=================
最後一步安裝之前的一些額外配置(非必須的)
為 oracle 使用者設定 Shell 限制
Oracle 建議對每個 Linux 帳戶可以使用的程序數和打開的檔案數設定限制。要進行這些更改,以 root 使用者的身份執行下列指令:
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
EOF
cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF
cat >> /etc/profile <<EOF
if [ \$USER = "oracle" ]; then
if [ \$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
EOF
cat >> /etc/csh.login <<EOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
=================
===============
使用 oracle 帳戶登入安裝 Oracle......
附安裝過程中生成的系統檢測輸出:
==========================================
正在檢查作業系統需求...
要求的結果: redhat-3,redhat-4,SuSE-9,asianux-1,asianux-2 之一
實際結果: redhat-4
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
正在檢查作業系統程式包需求...
正在檢查 make-3.79; 已發現 make-1:3.80-5。 通過
正在檢查 binutils-2.14; 已發現 binutils-2.15.92.0.2-10.EL4。 通過
正在檢查 gcc-3.2; 已發現 gcc-3.4.3-9.EL4。 通過
正在檢查 libaio-0.3.96; 已發現 libaio-0.3.102-1。 通過
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
檢查核心參數
正在檢查 semmsl=250; 已發現 semmsl=250。 通過
正在檢查 semmns=32000; 已發現 semmns=32000。 通過
正在檢查 semopm=100; 已發現 semopm=100。 通過
正在檢查 semmni=128; 已發現 semmni=128。 通過
正在檢查 shmmax=536870912; 已發現 shmmax=2147483648。 通過
正在檢查 shmmni=4096; 已發現 shmmni=4096。 通過
正在檢查 shmall=2097152; 已發現 shmall=2097152。 通過
正在檢查 file-max=65536; 已發現 file-max=65536。 通過
正在檢查 VERSION=2.6.9; 已發現 VERSION=2.6.9-5.EL。 通過
正在檢查 ip_local_port_range=1024 - 65000; 已發現 ip_local_port_range=1024 - 65000。 通過
正在檢查 rmem_default=262144; 已發現 rmem_default=262144。 通過
正在檢查 rmem_max=262144; 已發現 rmem_max=262144; 。 通過
正在檢查 wmem_default=262144; 已發現 wmem_default=262144。 通過
正在檢查 wmem_max=262144; 已發現 wmem_max=262144。 通過
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
檢查建議的 glibc 版本
要求的結果: ATLEAST=2.3.2-95.27
實際結果: 2.3.4-2
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
正在檢查實體記憶體需求...
要求的結果: 922MB
實際結果: 1008MB
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
正在檢查可用交換空間需求...
要求的結果: 1512MB
實際結果: 1599MB
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
正在檢查網絡配置需求...
檢查完成。此次檢查的總體結果為: 未執行 <<<<
建議案: Oracle 支援在具有 DHCP 配置設定的公共 IP 位址的系統上進行安裝。但應使用靜态 IP 位址來配置系統的主網絡接口, 以便 Oracle 軟體正常工作。有關在配置有 DHCP 的
系統上安裝軟體的詳細資訊, 請參閱 Installation Guide。
=======================================================================
正在驗證 ORACLE_BASE 的位置 (如果已設定)...
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
正在檢查 Oracle 主目錄路徑中的空格...
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
正在檢查是否進行了正确的系統清除...
檢查完成。此次檢查的總體結果為: 通過
=======================================================================
正在檢查 Oracle 主目錄的不相容性...
實際結果: NEW_HOME
檢查完成。此次檢查的總體結果為: 通過
=======================================================================