如果您按照以上說明安裝了 Linux,且核心參數全部採用預設值,則只需在以 root 使用者身份登入後執行下命令。
cat >> /etc/sysctl.conf <<EOF
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
EOF
/sbin/sysctl -p
例如:
# cat >> /etc/sysctl.conf <<EOF
> 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
> EOF
# /sbin/sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
kernel.sysrq = 0
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
以 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 shm
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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
如果系統的參數設定的比上述參數值小,則編輯 /etc/sysctl.conf 檔案,添加或更改這些參數。完成後,運行以下命令啟用更改:
/sbin/sysctl -p
對於 SLES 8,在完成以上步驟後運行以下命令。
/sbin/chkconfig boot.sysctl on
為 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
對於 RHEL 2.1 和 RHEL 3,使用以下命令:
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
對於 SLES 8,使用以下命令:
cat >> /etc/profile.local <<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.local <<EOF
if ( \$USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
EOF
避免錯誤!(僅限 SLES 8)
在 SLES 8 上安裝 Oracle Enterprise Manager 10g 時存在一個錯誤 — 由於所需連接埠以為 /etc/services 所保留而導致安裝失敗。OEM DBConsole 需要連接埠 1830,而在 SLES8 環境中,此連接埠已經為 /etc/services 所保留。此錯誤在 MetaLink 上的錯誤號碼為 3513603。
要避免安裝過程中出現問題,以 root 使用者身份登入,並在安裝 Oracle 10g 軟體之前將 /etc/services 檔案中的連接埠 1830 至 1849 對應的行注釋掉。(注意:此時,您最好重新啟動伺服器以確保以上更改生效。)
oracle 使用者的環境變數
要使用 Oracle 產品,應該或必須設定幾個環境變數。對於資料庫伺服器,建議設定以下環境變數:
ORACLE_BASE
ORACLE_HOME
ORACLE_SID
PATH
如果您在同一伺服器上安裝了多個 Oracle 產品或資料庫,則 ORACLE_HOME、ORACLE_SID 和 PATH 變數可能會更改。ORACLE_BASE 變數不應更改,並可以在需要時在您的登入設定檔中設定它。Oracle 提供了一個稱作 oraenv 的公用程式來設定其他變數。
以 oracle 身份登入,並通過在 .bash_profile 或 .profile(bash 或 ksh)中添加以下行,將 ORACLE_BASE 添加到登入設定檔:
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
或在 .login (csh) 中添加以下行:
setenv ORACLE_BASE /u01/app/oracle
此更改將在您下次登入到 oracle 帳戶時生效。要使更改對當前會話為活動狀態,只需從命令列運行此命令。
第 3 部分:安裝 Oracle
可以從 OTN 下載 Oracle 資料庫 10g。Oracle 提供了一個免費的開發與測試許可。但不提供支援,且該許可不允許用於生產目的。OTN 提供了完整的許可協議。
要使 Oracle 10g 發行套件介質可以在伺服器上使用,最簡單的方法是將其直接下載到伺服器。
使用圖形登入以 oracle 身份登入。
建立一個目錄以存放 Oracle 10g 發行套件:
mkdir 10g_db
要從 OTN 下載 Oracle 資料庫 10g,請將瀏覽器(Mozilla 比較好用)指向 http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/linuxsoft.html。填寫 Eligibility Export Restrictions 頁面,並閱讀 OTN 許可協議。如果您接受限制和許可協議,則單擊 I Accept。
單擊 ship.db.cpio.gz 連結,並將該檔案儲存在為此目的建立的目錄 (10g_db) 中 — 如果尚未登入到 OTN,則此時可能提示您登入。
解壓縮此檔案:
cd 10g_db
gunzip ship.db.cpio.gz
cpio -idmv < ship.db.cpio
安裝軟體
使用 oracle 帳戶登入。
指定資料庫名稱 (ORACLE_SID)。該名稱通常不多於五個字元。對此安裝使用 demo1。
設定環境變數:
· ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
· ORACLE_SID=demo1; export ORACLE_SID
· setenv ORACLE_BASE /u01/app/oracle
· setenv ORACLE_SID demo1
將目錄更改為 Oracle 10g 軟體解壓縮到的位置。
例如:
$ cd $HOME/10g_db
將目錄更改為 Disk1。
例如:
$ cd Disk1