在Linux下安裝配置Oracle11g R2

來源:互聯網
上載者:User

最近在安裝Linux下的Oracle環境,折騰了很久,遇到了不少問題,最後終於搞定了,於是寫下此文,記錄安裝過程,以備後用。

1.Linux環境配置準備

環境:Linux:Redhat Enterprise 5.4,DB:Oracle 11g R2 X64,Oracle安裝到/home/oralce_11目錄下。

配置過程如下:(大部分是網上的內容,個人也是按照網上步驟來的)

1)         檢查基本需求(對於牛逼的伺服器來說,這個肯定是滿足要求的,可以跳過)
記憶體大小
grep MemTotal /proc/meminfo
交換分區大小
grep SwapTotal /proc/meminfo
增加交換分區
建立/home/swap這麼一個分區檔案。檔案的大小是5120000個block,一般情況下1個block為1K,所以這裡空間是5G。
dd if=/dev/zero of=/home/swap bs=1024 count=5120000
接著再把這個分區變成swap分區。
mkswap /home/swap
然後把它加到fstab裡面
echo "/home/swap swap swap defaults 0 0" >> /etc/fstab
2)         檢查軟體需求,沒有的yum install安裝
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh

(這裡如果出現沒有安裝的,那麼就要把Linux光碟片放入,進入Server檔案夾,找到對應的RPM包,運行RPM命令來進行安裝,如果喜歡圖形介面的話,在映像介面也可以通過雙擊對應的RPM包來安裝。需要注意的是在安裝libaio-devel unixODBC unixODBC-devel 這3個軟體包的時候,除了安裝X64的包以為,還要安裝i386的包,不能因為是X64的系統,就不裝i386的包了。 )
3)         配置核心。
編輯 /etc/sysctl.conf。
將以下內容添加至檔案
# Kernel paramaters required by Oracle 11gR1
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
4)         要使 /etc/sysctl.conf 更改立即生效,執行以下命令。
sysctl –p
5)         編輯 /etc/security/limits.conf。
添加以下行:
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
6)         編輯 /etc/pam.d/login。
添加以下行:
session    required     /lib/security/pam_limits.so
session    required     pam_limits.so

【注意:如果是X64的系統,那麼這裡就要用 /lib64/security/pam_limits.so,不然系統可能會在伺服器上無法登入!】
7)         編輯 /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)         建立作業系統使用者,作為軟體安裝和支援組的擁有者。
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
9)         建立軟體安裝目錄。
mkdir –p /home/oracle_11/app/
chown -R oracle.oinstall /home/oracle_11/
chmod -R 755 /home/oracle_11/
10)     編輯 /home/oracle/.bash_profile。
添加以下行:
umask 022
ORACLE_BASE=/home/oracle_11/app
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
ORACLE_SID=MYTEST --執行個體名,根據需要進行修改
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
LANG=C                      --設定此參數避免安裝過程出現亂碼
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH LANG
11)    在圖形介面下(在本機操作或者通過VNC遠程操作) 以root身份開啟另一個終端視窗
--這步至關重要,不執行這步在以oracle使用者運行 # ./runInstaller時會啟動不了圖型安裝介面
#xhost +
#xhost + localhost
12)   將下載的Oracle安裝檔案解壓到Linux中,然後安裝資料庫
#su - oracle
cd database/
./runInstaller

13)接下來會出現圖形化的安裝嚮導,按照嚮導一步一步的操作,和Windows下安裝Oracle的嚮導一樣,沒有太大區別,直到最後安裝完成。

2.確認安裝成功

Linux下的Oracle在安裝結束後是處於運行狀態的。運行top –u oracle可以看到以Oracle使用者啟動並執行進程。在圖形化介面下,運行$ORACLE_HOME/sqldeveloper/sqldeveloper.sh可以出現Oracle內建的免費Oracle管理用戶端SQL Developer。試著串連剛安裝的Oracle,串連成功。

這時需要重啟伺服器,看伺服器重啟後,Oracle是否可以正常啟動。以Root使用者運行reboot命令可以重啟Linux,重啟完成後,預設情況下Oracle並不像Windows中的Oracle那樣註冊成服務,隨機器一起啟動的,所以需要手動敲入命令來啟動。啟動方式:以oracle使用者登入運行以下語句:

1,進入sqlplus:

sqlplus /nolog

2,以sysdba的身份串連到資料庫,並啟動Oracle資料庫引擎:

SQL> conn /as sysdba

SQL> startup

3,退出sqlplus,運行Listener

SQL> exit

$ lsnrctl start

這樣資料庫的TNS也啟動了,可以通過網路連接資料庫了。一般情況下就啟動這兩個就夠了,如果想用Oracle提供的EM來管理Oracle的話還需要啟動EM控制台,運行如下命令:

$ emctl start dbconsole

這樣就可以通過https://servername:1158/em/console來訪問EM控制台了。

這裡我在實際操作中運行sqlplus出現了錯誤,大致如下:

sqlplus / as sysdba

sqlplus: error while loading shared libraries: /u01/app/oracle/product/11.1.0/db_1/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied

網上也有很多人遇到了這個問題,原來是SELinux在作怪,我採用的解決辦法是禁止掉SELinux:

更改/etc/sysconfig/selinux 檔案的內容為 SELINUX=disabled,然後重啟伺服器。

好像這個辦法不是很好,也有說的解決辦法是使用chcon 命令

樣本: chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so

另外我在啟動Listener時也報錯TNS-12555: TNS:permission denied

後來網上搜了下,發現是oracle使用者就無法進入/var/tmp/.oracle檔案夾,方法很簡單,執行:chmod 777 /var/tmp/.oracle 之後就ok了.

還有,我在啟動EM控制台的時候又遇到了錯誤:Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.

設定了這個變數後(運行export ORACLE_UNQNAME=xxxx執行個體名)後,再啟動EM控制台,又出現了新的錯誤:OC4J Configuration issue. /u01/app/oracle/product/11.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_xxxx not found.沒有這個檔案?去查了一下,確實是沒有這樣一個檔案存在,怎麼辦呢?其實很簡單,運行:

emca -config dbcontrol db

根據嚮導重新設定一下就可以了。

3.配置Oracle為開機自啟動

雖然說Oracle作為伺服器不會經常關機,但是偶爾重啟一下,每次都要去手動啟動Oracle還是太麻煩了,希望的是能夠像在Windows中一樣,每次開機的時候自動啟動Oracle,只需要將Oracle配置為Linux的服務就可以了。操作如下:

1,以root使用者建立/etc/rc.d/init.d/oracle11g指令檔,內容如下(環境變數設定根據實際情況進行修改):

#!/bin/bash
#
# chkconfig: 35 95 1
# description: init script to start/stop oracle database 11g, TNS listener, EM
#
#
#
# match these values to your environment:

ORACLE_BASE=/home/oracle_11/app
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
ORACLE_SID=BRDWDEV
ORACLE_UNQNAME=BRDWDEV
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
LANG=C

export ORACLE_BASE ORACLE_HOME ORACLE_SID ORACLE_UNQNAME PATH LD_LIBRARY_PATH LANG

# see how we are called:
case $1 in
start)
su - oracle<<EOO
lsnrctl start
sqlplus /nolog<<EOS
connect / as sysdba
startup
EOS
emctl start dbconsole
EOO
;;

stop)
su - oracle<<EOO
lsnrctl stop
sqlplus /nolog<<EOS
connect / as sysdba
shutdown immediate
EOS
emctl stop dbconsole
EOO
;;

*)
echo "Usage: $0 {start|stop}"
;;
esac

2,以root使用者執行以下命令

chmod 755 /etc/rc.d/init.d/oracle11g

chkconfig --add oracle11g

3, 重啟服務

service oracle11g stop

service oracle11g start

這樣在開關機的時候oracle自動啟動和停止。

另外,還有說,需要修改/etc/oratab這個檔案,將最後的N改為Y,如下:

xxxxTEST:/home/oracle_11/app/oracle/product/11.2.0/db_1:Y

最後,我們要測試一下這個自啟動是否真的有效,重啟一下伺服器吧,過幾分鐘後,可以看到用戶端可以正常串連到Oracle了。Oracle環境配置成功!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.