Linux環(huán)境配置
- OS:Fedora 15
- DB:Oracle 11gR2
- 將Oracle安裝到home/oracle_11目錄
配置過程:本文來自O(shè)racle官方文檔+網(wǎng)上資料
Oracle官方文檔:http://www.oracle.com/pls/db112/homepage
1. 以root用戶登錄到Linux
2. 檢查機(jī)器硬件要求
2.1 內(nèi)存要求
- 至少需要1GB的內(nèi)存
- 查看機(jī)器內(nèi)存大小
- # grep MemTotal /proc/meminfo
2.2 swap空間要求
- 內(nèi)存大小 swap空間大小
- 1 GB ~ 2 GB 內(nèi)存大小*1.5
- 2 GB ~ 16 GB 內(nèi)存大小
- > 16 GB 16 GB
- 查看swap空間大小
- # grep SwapTotal /proc/meminfo
2.3 空閑硬盤要求
- /tmp目錄需要1 GB的空閑空間
- 查看/tmp目錄的空閑空間
- # df -h /tmp
- 安裝Oracle軟件需要的硬盤空間
- Enterprise Edition 3.95(software files)+1.7(data files)
- Standard Edition 3.88(software files)+1.5(data files)
- 查看機(jī)器中每個(gè)磁盤的空閑空間
- # df -h
3. 檢查操作系統(tǒng)軟件要求
Oracle官方文檔中包含了多個(gè)Linux系統(tǒng)的要求,詳細(xì)請參考官方文檔
Fedora 15 (RHEL 5.x)的軟件要求列表如下:
- binutils-2.17.50.0.6
- compat-libstdc++-33-3.2.3
- elfutils-libelf-0.125
- elfutils-libelf-devel-0.125
- elfutils-libelf-devel-static-0.125
- gcc-4.1.2
- gcc-c++-4.1.2
- glibc-2.5-24
- glibc-common-2.5
- glibc-devel-2.5
- glibc-headers-2.5
- kernel-headers-2.6.18
- ksh-20060214
- libaio-0.3.106
- libaio-devel-0.3.106
- libgcc-4.1.2
- libgomp-4.1.2
- libstdc++-4.1.2
- libstdc++-devel-4.1.2
- make-3.81
- numactl-devel-0.9.8.i386
- sysstat-7.0.2
- 查看系統(tǒng)是否安裝了該軟件包
- # rpm -q package_name
4. 創(chuàng)建安裝Oracle需要的系統(tǒng)組和用戶
- 創(chuàng)建Oracle Inventory 組
- # groupadd oinstall
- 創(chuàng)建OSDBA 組
- # groupadd dba
- 創(chuàng)建Oracle軟件創(chuàng)建者
- # useradd -g oinstall -G dba oracle
- 修改oracle用戶的密碼
- # passwd oracle
5. 配置系統(tǒng)內(nèi)核參數(shù)值
- 編輯/etc/sysctl.conf文件
- vim /etc/sysctl.conf
- 在打開的文件底部添加下面內(nèi)容
- fs.aio-max-nr = 1048576
- fs.file-max = 6815744
- kernel.shmall = 2097152
- kernel.shmmax = 536870912
- kernel.shmmni = 4096
- kernel.sem = 250 32000 100 128
- net.ipv4.ip_local_port_range = 9000 65500
- net.core.rmem_default = 262144
- net.core.rmem_max = 4194304
- net.core.wmem_default = 262144
- net.core.wmem_max = 1048586
- 改變當(dāng)前系統(tǒng)內(nèi)核參數(shù)值(讓/etc/sysctl.conf立即生效)
- # sysctl -p
6. 檢查Oracle安裝用戶(oracle)資源限制
- 修改/etc/security/limits.conf文件
- vim /etc/security/limits.conf
- 在打開的文件底部添加下面內(nèi)容
- oracle soft nproc 2047
- oracle hard nproc 16384
- oracle soft nofile 1024
- oracle hard nofile 65536
- oracle soft stack 10240
7. 創(chuàng)建安裝Oracle軟件所需要的目錄
- # mkdir -p /home/oracle_11/app/
- # chown -R oracle:oinstall /home/oracle_11/app/
- # chmod -R 775 /home/oracle_11/app/
8. 配置安裝Oracle安裝用戶(oracle)的環(huán)境
- 編輯 /home/oracle/.bash_profile
- vim /home/oracle/.bash_profile
- 在打開的文件中添加下面內(nèi)容
- umask 022
- export ORACLE_BASE=/home/oracle_11/app
- export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
- export ORACLE_SID=orcl --Oracle實(shí)例名,可修改
- export PATH=$PATH:HOME/bin:$ORACLE_HOME/bin
- 編輯 /etc/pam.d/login
- vim /etc/pam.d/login
- 在打開的文件中添加下面內(nèi)容
- session required /lib/security/pam_limits.so
- session required pam_limits.so
- 編輯 /etc/profile
- vim /etc/profile
- 在打開的文件中添加下面內(nèi)容
- if [ $USER = "oracle" ]; then
- if [ $SHELL = "/bin/ksh" ]; then
- ulimit -p 16384
- ulimit -n 65536
- else
- ulimit -u 16384 -n 65536
- fi
- fi
9. 查看系統(tǒng)是否支持圖形界面
- 查看root用戶下是否已設(shè)置DISPLAY變量
- # echo $DISPLAY
- 如果有值出現(xiàn),則說明已設(shè)置DISPLAY變量;否則,就需要手動(dòng)設(shè)置DISPLAY
10. 開始安裝Oracle軟件
- # cd /tmp
- # unzip linux_11gR2_database_1of2.zip linux_11gR2_database_2of2.zip
- # xhost +
- # su - oracle
- $ export DISPLAY=:0
- $ cd /database
- $ ./runInstaller
- 接下來系統(tǒng)會(huì)啟動(dòng)Oracle圖形安裝界面,安裝過程和Windows下一樣
在安裝過程中,會(huì)提示在root用戶下運(yùn)行兩個(gè)腳本文件(具體是哪兩個(gè),不記得了,按提示操作即可)。
Linux下的Oracle在安裝結(jié)束后是處于運(yùn)行狀態(tài)的。重啟機(jī)器后,Oracle不會(huì)像在Windows下那樣將Oracle添加到Windows服務(wù),在linux下需要手動(dòng)啟動(dòng)Orcle服務(wù)
- 以oracle用戶下,執(zhí)行下面的命令
- 進(jìn)入sqlplus
- $ sqlplus /nolog
- 以sysdba的身份連接到數(shù)據(jù)庫,并啟動(dòng)Oracle數(shù)據(jù)庫引擎
- SQL> conn /as sysdba
- SQL> startup
- 退出sqlplus,運(yùn)行Listener
- SQL> exit
- $ lsnrctl start
這樣就可以連接到Oracle數(shù)據(jù)庫了。如果想用Oracle提供的EM來管理Oracle的話還需要啟動(dòng)EM控制臺(tái),運(yùn)行如下命令:
這樣就可以通過http://localhost:1158/em/
來訪問EM控制臺(tái)了。
使用dbstart和dbstop來啟動(dòng)Oracle服務(wù)
可能使用dbstart命令來啟動(dòng)數(shù)據(jù)庫更方便一些,但初次安裝完oracle之后使用dbstart命令會(huì)報(bào)這樣的錯(cuò)誤
- ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
- Usage: /u01/app/oracle/product/11.2/db/bin/dbstart ORACLE_HOME
出現(xiàn)這樣錯(cuò)誤的原因是由于沒有設(shè)置ORACLE_HOME_LISTNER的原因,我們查看一下dbstart這個(gè)文件
- more /home/oracle_11/app/oracle/product/11.2/db/bin/dbstart
部分內(nèi)容如下
- # First argument is used to bring up Oracle Net Listener
- ORACLE_HOME_LISTNER=$1
- if [ ! $ORACLE_HOME_LISTNER ] ; then
- echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"
- echo "Usage: $0 ORACLE_HOME"
- else
- LOG=$ORACLE_HOME_LISTNER/listener.log
- # Set the ORACLE_HOME for the Oracle Net Listener, it gets reset to
- # a different ORACLE_HOME for each entry in the oratab.
- export ORACLE_HOME=$ORACLE_HOME_LISTNER
解決方案就算將$ORACLE_HOME賦值給$ORACLE_HOME_LINTNER,保存,退出
再一次執(zhí)行dbstart,但是沒有反映,沒有報(bào)錯(cuò),如果我們需要使用dbstart,則需要在/etc/oratab這個(gè)文件中的實(shí)例最后的N改成Y,如下
- orcl:/home/oracle_11/app/oracle/product/11.2/db:Y
OK,保存,再試一下dbstart命令,返回結(jié)果如下
- Processing Database instance "orcl": log file /home/oracle_11/app/oracle/product/11.2.0/db_1/startup.log
dbshut進(jìn)行同樣的設(shè)置.這樣,以后就可以在啟動(dòng)監(jiān)聽之后直接使用dbstart和dbshut命令來啟動(dòng)和關(guān)閉數(shù)據(jù)了
將Oracle服務(wù)添加到Linux開機(jī)啟動(dòng)項(xiàng),以root用戶建立/etc/rc.d/init.d/oradb腳本文件,文件內(nèi)容如下:
- #!/bin/bash
- # chkconfig: 2345 90 10
- export ORACLE_BASE=/home/oracle_11/app/
- export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
- export ORACLE_SID=orcl
- export PATH=$PATH:$ORACLE_HOME/bin
- ORCL_OWN="oracle"
- # if the executables do not exist -- display error
- if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
- then
- echo "Oracle startup: cannot start"
- exit 1
- fi
- # depending on parameter -- start, stop, restart
- # of the instance and listener or usage display
- case "$1" in
- start)
- # Oracle listener and instance startup
- echo -n "Starting Oracle: "
- su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbstart"
- touch /var/lock/subsys/oradb
- su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl start dbconsole"
- echo "OK"
- ;;
- stop)
- # Oracle listener and instance shutdown
- echo -n "Shutdown Oracle: "
- su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl stop dbconsole"
- su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbshut"
- rm -f /var/lock/subsys/oradb
- echo "OK"
- ;;
- reload|restart)
- $0 stop
- $1 start
- ;;
- *)
- echo "Usage: 'basename $0' start|stop|restart|reload"
- exit 1
- esac
- exit 0
將該文件添加到開機(jī)啟動(dòng)
- # chmod 755 /etc/rc.d/init.d/oradb
- # chkconfig --add oradb
重啟服務(wù)
- # service oradb stop
- # service oradb start
下次啟動(dòng)機(jī)器的時(shí)候,Oracle服務(wù)會(huì)隨機(jī)器一起啟動(dòng)。
Oracle數(shù)據(jù)庫安裝、配置完成。
Tip:Oracle數(shù)據(jù)庫的默認(rèn)端口號:1521,Oracle提供的EM管理器默認(rèn)端口號是1158。