總體來說,9i、10g的安裝區別不大,更高版本的Oracle安裝也會大同小異
創建 Oracle 組和用戶帳戶
接下來,創建用於安裝和維護 Oracle 數據庫 11g 第 1 版軟件的 Linux 組和用戶帳戶。用戶帳戶將稱為 Oracle,而組將稱為 oinstall 和 dba。以 root 用戶身份執行以下命令:
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -m -g oinstall -G dba Oracle
id OracleEx:
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -m -g oinstall -G dba Oracle
# id Oracle
uid=501(Oracle) gid=502(oinstall) groups=502(oinstall),503(dba)
設置 Oracle 帳戶的口令:
passwd OracleEx:
# passwd Oracle
Changing passWord for user Oracle.
New passWord:
Retype new passWord:
passwd: all authentication tokens updated successfully.
創建目錄
現在創建目錄來存放 Oracle 數據庫 11g 第 1 版軟件及數據庫文件。本指南在創建目錄結構時所用的命名慣例符合最佳靈活結構 (OFA) 規范。有關 OFA 標准的更多信息,請參閱針對 Linux 的 Oracle 數據庫安裝指南 11g 第 1 版 (11.1) 的附錄 D。
以下假設在根文件系統中創建目錄。這樣做是為了簡便起見,不建議將其作為通用做法。這些目錄通常被創建為單獨的文件系統。
以 root 用戶身份執行以下命令:
mkdir -p /u01/app/Oracle
chown -R Oracle:oinstall /u01/app
chmod -R 775 /u01/app
配置 Linux 內核參數
Oracle 數據庫 11g 第 1 版需要以下所示的內核參數設置。給出的值都為最小值,因此如果您的系統使用一個更大的值,則不要進行更改。Linux 允許在系統啟動並運行時修改大多數內核參數,所以無需在修改內核參數後重啟系統。
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=4194304
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=262144
注意,OEL 5 已經為 kernel.shmall 和 kernel.shmmax 定義了值。如果默認值等於或大於要求值,則使用默認值。
如果您按照以上說明安裝了 Linux,且內核參數全部采用默認值,則只需在以 root 用戶身份登錄後執行下命令。
cat >> /etc/sysctl.conf <<EOF
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=4194304
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=262144
EOF
/sbin/sysctl -pEx:
# cat >> /etc/sysctl.conf <<EOF
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
> 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=4194304
> net.core.wmem_default=262144
> net.core.rmem_max=4194304
> net.core.wmem_max=262144
> EOF
# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookIEs = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
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 = 4194304
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 262144
以 root 用戶身份運行以下命令來驗證您的設置:
/sbin/sysctl -a | grep shm
/sbin/sysctl -a | grep sem
/sbin/sysctl -a | grep file-max
/sbin/sysctl -a | grep ip_local_port_range
/sbin/sysctl -a | grep rmem_default
/sbin/sysctl -a | grep rmem_max
/sbin/sysctl -a | grep wmem_default
/sbin/sysctl -a | grep wmem_maxEx:
# /sbin/sysctl -a | grep shm
kernel.shmmni = 4096
kernel.shmall = 268435456
kernel.shmmax = 4294967295
kernel.shm-use-bigpages = 0
# /sbin/sysctl -a | grep sem
kernel.sem = 250 32000 100 128
# /sbin/sysctl -a | grep file-max
fs.file-max = 65536
# /sbin/sysctl -a | grep ip_local_port_range
net.ipv4.ip_local_port_range = 1024 65000
# /sbin/sysctl -a | grep rmem_default
net.core.rmem_default = 4194304
# /sbin/sysctl -a | grep rmem_max
net.core.rmem_max = 4194304
# /sbin/sysctl -a | grep wmem_default
net.core.wmem_default = 262144
# /sbin/sysctl -a | grep wmem_max
net.core.wmem_max = 262144
為 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
EOFcat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
EOF
修改 bash 和 ksh 的默認配置文件以及 cshell 的默認登錄腳本。
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
EOFcat >> /etc/csh.login <<EOF
if ( \$USER == "Oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif