一、安裝系統(tǒng)
首先安裝Linux系統(tǒng),根據(jù)Oracle官方文檔的建議,在機(jī)器內(nèi)存小于1G的情況下,swap分區(qū)大小應(yīng)該設(shè)置為內(nèi)存的2倍大,若內(nèi)存大于2G則swap分區(qū)設(shè)置為與內(nèi)存大小一樣。
其實(shí)Linux系統(tǒng)的swap分區(qū)大小設(shè)置是很有講究的,如果哪位讀者有興趣,可以參考我的另外一篇文章——《如何合理設(shè)置Linux系統(tǒng)的swap分區(qū)大小》。
在系統(tǒng)安裝的過(guò)程中,一定選擇安裝所有開(kāi)發(fā)包,建議不要安裝SELinux或者安裝后在系統(tǒng)中禁止SELinux運(yùn)行,否則會(huì)出現(xiàn)一些莫名其妙的問(wèn)題。
為防止Oracle安裝過(guò)程中出現(xiàn)亂碼,建議使用英文作為系統(tǒng)語(yǔ)言,進(jìn)行Oracle的安裝工作
二、安裝Oracle前的系統(tǒng)準(zhǔn)備工作
1.檢查需要的軟件包
可以使用rpm -qa|grep 軟件包關(guān)鍵詞命令進(jìn)行檢測(cè),一般情況下會(huì)需要手動(dòng)安裝如下的軟件包:
From RedHat AS5 Disk 1(32 Bit)
# rpm -Uvh setarch-2*
# rpm -Uvh make-3*
# rpm -Uvh glibc-2*
# rpm -Uvh libaio-0*
From RedHat AS5 Disk 2(32 Bit)
# rpm -Uvh compat-libstdc -33-3*
# rpm -Uvh compat-gcc-34-3*
安裝前注意要先安裝gcc環(huán)境 參閱linux gcc環(huán)境安裝
# rpm -Uvh compat-gcc-34-c -3*
# rpm -Uvh gcc-4*
# rpm -Uvh libXp-1*
From RedHat AS5 Disk 3(32 Bit)
# rpm -Uvh openmotif-2*
# rpm -Uvh compat-db-4*
如果使用DVD安裝介質(zhì)的話,會(huì)很方便。
2.修改Linux發(fā)行版本信息
由 于Oracle 10g發(fā)行的時(shí)候,RedHat Enterprise Linux 5沒(méi)有發(fā)行,所以O(shè)racle 10g并沒(méi)有對(duì) RedHat Enterprise Linux 5確認(rèn)支持,我們有兩種方法可以讓Oracle 10g支持 RedHat Enterprise Linux 5。
方法一:
我們需要手工修改Linux的發(fā)行注記,讓Oracle 10g支持RedHat Enterprise Linux 5。
編輯/etc/redhat-release文件
# vi /etc/redhat-release
將其中的內(nèi)容Red Hat Enterprise Linux Server release 5 (Tikanga)修改為Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
方法二:
還有文章說(shuō)修改Oracle安裝包中install/oraparam.ini文件的內(nèi)容,也可以讓Oracle 10g支持RedHat Enterprise Linux 5,修改方法如下:
# vi install/oraparam.ini
在其中的Certified Versions段落增加redhat-5
#[Certified Versions]
Linux=redhat-3,SuSE-9,redhat-4,redhat-5,UnitedLinux-1.0,asianux-1,asianux-2]
再添加
[Linux-redhat-5.0-optional]
TEMP_SPACE=80
SWAP_SPACE=150
MIN_DISPLAY_COLORS=256
經(jīng)我測(cè)試,發(fā)現(xiàn)方法二在安裝之前的系統(tǒng)檢測(cè)過(guò)程可以通過(guò),但是在安裝過(guò)程中的系統(tǒng)支持檢測(cè)無(wú)法通過(guò),不知道是不是我設(shè)置的有問(wèn)題,希望有高手可以給我點(diǎn)提示。
3.修改系統(tǒng)內(nèi)核參數(shù)
# vi /etc/sysctl.conf
kernel.shmall = 2097152 // 該 參數(shù)表示系統(tǒng)一次可以使用的共享內(nèi)存總量(以頁(yè)為單位)。缺省值就是2097152,通常不需要修改 kernel.shmmax = 2147483648 // 該參數(shù)定義了共享內(nèi)存段的最大尺寸(以字節(jié)為單位)。缺省為 32M,對(duì)于oracle來(lái)說(shuō),該缺省值太低了,通常將其設(shè)置為2G
kernel.shmmni = 4096 // 這個(gè)內(nèi)核參數(shù)用于設(shè)置系統(tǒng)范圍內(nèi)共享內(nèi)存段的最大數(shù)量。該參數(shù)的默認(rèn)值是 4096 。通常不需要更改
kernel.sem = 250 32000 100 128 // 表示設(shè)置的信號(hào)量
fs.file-max = 65536 // 表示文件句柄的最大數(shù)量。文件句柄設(shè)置表示在linux系統(tǒng)中可以打開(kāi)的文件數(shù)量
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144 // 默認(rèn)的接收窗口大小
net.core.rmem_max=262144 // 接收窗口的最大大小
net.core.wmem_default=262144 // 默認(rèn)的發(fā)送窗口大小
net.core.wmem_max=262144 // 發(fā)送窗口的最大大小
修改好內(nèi)核參數(shù)后,執(zhí)行如下命令使新的設(shè)置生效
# /sbin/sysctl -p
4.創(chuàng)建Oracle用戶、組、安裝目錄
在這里我只討論單主機(jī)環(huán)境,不考慮RAC環(huán)境的配置,在以后我會(huì)專門(mén)寫(xiě)一篇如何配置Oracle RAC環(huán)境的文章。
(1) 創(chuàng)建Oracle用戶組
# groupadd oinstall
# groupadd dba
(2) 創(chuàng)建Oracle用戶
# useradd -m -g oinstall -G dba oracle
(3) 設(shè)置Oracle用戶口令
# passwd oracle
(4) 創(chuàng)建Oracle安裝目錄以及數(shù)據(jù)存放目錄
# mkdir -p /DBSoftware/app/oracle
# mkdir -p /DBData/oradata
(5) 修改目錄權(quán)限
# chown -R oracle:oinstall /DBSoftware/app/oracle/ /DBData/oradata/
# chmod -R 755 /DBSoftware/app/oracle/ /DBData/oradata/
5.添加以下內(nèi)容到/etc/security/limits.conf
# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
6.添加以下內(nèi)容到/etc/pam.d/login
# vi /etc/pam.d/login
session required /lib/security/pam_limits.so
session required pam_limits.so
7.添加以下內(nèi)容到/etc/profile
# vi /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
8.配置Linux主機(jī)
檢查/etc/hosts文件中是否有l(wèi)ocalhost的記錄(指向127.0.0.1即可),若沒(méi)有的話,在后面配置Oracle監(jiān)聽(tīng)的時(shí)候會(huì)出現(xiàn)一些問(wèn)題,導(dǎo)致無(wú)法啟動(dòng)監(jiān)聽(tīng),在此手工添加此記錄即可。
9.配置oracle用戶環(huán)境變量
# su - oracle
$ vi ~/.bash_profile
增加如下內(nèi)容:
export orACLE_BASE=/DBSoftware/app/oracle // 上面創(chuàng)建的Oracle安裝文件夾
export orACLE_SID=orcl
export orACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBARY_PATH=$ORACLE_HOME/lib
export PATH
umask 022
保存后使用如下命令,使設(shè)置生效:
$ source ~/.bash_profile
三、安裝Oracle,并進(jìn)行相關(guān)設(shè)置
1.解壓縮安裝文件
oracle的安裝包有這樣幾種格式:
(1) zip
這種格式最好解壓縮,直接使用命令unzip 文件名即可
(2) cpio.gz
這種格式有這樣幾種解壓縮方式
a. # zcat XXXX.cpio.gz | cpio -idmv
b. # gunzip XXXX.cpio.gz解壓出XXXX.cpio文件然后再 # cpio -idvm < XXXX.cpio
解壓縮完成后,設(shè)置oracle帳戶可以操作安裝文件所在的目錄
chown -R oracle:oinstall 安裝文件所在目錄
2. 用oracle帳戶進(jìn)入安裝文件所在目錄,執(zhí)行如下命令即可看到安裝界面:
$ ./runInstaller
提示permission denied chmod -R 777 *
如果無(wú)法看到安裝界面,請(qǐng)使用root帳戶執(zhí)行如下命令后再運(yùn)行安裝程序:
# export DISPLAY=:0.0
# xhost +
$ ./runInstaller
出現(xiàn)安裝界面后,根據(jù)界面提示進(jìn)行相關(guān)的設(shè)置,我的建議是在安裝過(guò)程中不創(chuàng)建數(shù)據(jù)庫(kù),只安裝程序,監(jiān)聽(tīng)和創(chuàng)建數(shù)據(jù)庫(kù)等安裝完成后再進(jìn)行相關(guān)的操作。
安裝過(guò)程中,需要使用root權(quán)限執(zhí)行兩個(gè)腳本。
3. 安裝完成后,將/etc/redhat-release文件中的內(nèi)容修改回Red Hat Enterprise Linux Server release 5 (Tikanga)
4.創(chuàng)建監(jiān)聽(tīng)以及創(chuàng)建數(shù)據(jù)庫(kù)
(1) 創(chuàng)建監(jiān)聽(tīng)程序
使用Oracle提供的NET CONFIGURATION ASSISTANT創(chuàng)建TNS監(jiān)聽(tīng)
$ netca
基本上就是一直Next就可以了,當(dāng)然你也可以在這期間修改TNS的監(jiān)聽(tīng)端口號(hào)
TNS監(jiān)聽(tīng)創(chuàng)建完成后可以使用如下命令進(jìn)行檢查:
# netstat -atln 檢查監(jiān)聽(tīng)端口是否打開(kāi)
$ lsnrctl status 檢查T(mén)NS監(jiān)聽(tīng)狀態(tài)
確認(rèn)監(jiān)聽(tīng)已經(jīng)成功啟動(dòng)后,即可執(zhí)行Database Configure Assistant進(jìn)行數(shù)據(jù)庫(kù)的創(chuàng)建,執(zhí)行命令如下:
$ dbca
在創(chuàng)建數(shù)據(jù)庫(kù)的過(guò)程中,建議將數(shù)據(jù)庫(kù)的字符集設(shè)置為Unicode UTF-8,防止出現(xiàn)亂碼。
四、數(shù)據(jù)庫(kù)的啟動(dòng)腳本
# vi /etc/rc.d/init.d/oracle
================================ script File Start ================================
#!/bin/bash
#
# chkconfig: 35 95 1
# de script ion: init script to start/stop oracle database 10g, TNS listener, EMS
# match these values to your environment:
export orACLE_BASE=/DBSoftware/app/oracle
export orACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=/u01/app/oracle/bin:$ORACLE_HOME/bin:$PATH
export orACLE_SID=orcl
export orACLE_USER=oracle
# see how we are called:
case $1 in
start)
su - "$ORACLE_USER"<<EOO
lsnrctl start
sqlplus /nolog<<EOS
connect / as sysdba
startup
EOS
emctl start dbconsole
EOO
touch /var/lock/subsys/$ script name
;;
stop)
su - "$ORACLE_USER"<<EOO
lsnrctl stop
sqlplus /nolog<<EOS
connect / as sysdba
shutdown immediate
EOS
emctl stop dbconsole
EOO
rm -f /var/lock/subsys/ script name
;;
*)
echo "Usage: $0 "
;;
esac
================================ script File End ================================
授權(quán) :chown root.root /etc/rc.d/init.d/oracle
修改文件屬性:chmod 755 /etc/rc.d/init.d/oracle
以后啟動(dòng)/關(guān)閉Oracle可以使用如下命令操作:
# service oracle start // 啟動(dòng)監(jiān)聽(tīng)、數(shù)據(jù)庫(kù)以及em
# service oracle stop // 關(guān)閉監(jiān)聽(tīng)、數(shù)據(jù)庫(kù)以及em
當(dāng)然你也可以把Oracle作為系統(tǒng)服務(wù),隨系統(tǒng)啟動(dòng)等等。
net.core.rmem_default=262144 // 默認(rèn)的接收窗口大小
net.core.rmem_max=262144 // 接收窗口的最大大小
net.core.wmem_default=262144 // 默認(rèn)的發(fā)送窗口大小
net.core.wmem_max=