Enterprise Linux 5 X86-64上安裝Oracle11.2

yangtingkun發表於2009-09-03

昨天下載了11.2 for Linux X86-64版本的Oracle,今天嘗試安裝一下,也算嚐嚐鮮。

 

 

首先檢查硬體是否滿足安裝需求。

Oracle11.2需要至少1G的實體記憶體;當記憶體小於2G時,SWAP大小應該是記憶體的1.5倍,記憶體小於16GSWAP和記憶體大小相等即可,如果記憶體大於16GSWAP保證16G空間即可。

[root@bjtest ~]# grep MemTotal /proc/meminfo
MemTotal:     16418944 kB
[root@bjtest ~]# grep SwapTotal /proc/meminfo
SwapTotal:     8385888 kB

記憶體16GSWAP分割槽8G,雖然SWAP不滿足Oracle推薦的值,但是對於測試環境來說足夠用了。

如果使用11g的新特性自動記憶體管理MEMORY_TARGET,則要求檢查共享記憶體:

[root@bjtest ~]# df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                 7.9G     0  7.9G   0% /dev/shm

資料庫啟動時指定的MEMORY_TARGET引數不能超過這個設定。

檢查作業系統架構:

[root@bjtest ~]# uname -m
x86_64

檢查磁碟空間,確保/tmp1G以上空間:

[root@bjtest ~]# df -k /tmp
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda5             20315812    176344  19090828   1% /tmp

檢查軟體和資料庫安裝空間,軟體需要將近4G的空間,而資料庫至少需要將近2G的空間,不過對於資料庫環境來說,空間一般都不是問題:

[root@bjtest ~]# df -k /data
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda7            1023246840 710161448 260268896  74% /data

檢查作業系統情況,對於64Linux環境,需要Oracle Enterprise Linux 5 Update 2

[root@bjtest ~]# more /etc/issue
Enterprise Linux Enterprise Linux Server release 5 (Carthage)
Kernel \r on an \m

[root@bjtest ~]# cat /proc/version
Linux version 2.6.18-8.el5xen (mockbuild@ca-build14) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-52)) #1 SMP Tue Jun 5 23:53:34 EDT 2007

當前的版本應該是Enterprise Linux 5 update 1,不知道如果不滿足Oracle的安裝條件是否能夠安裝成功。

檢查系統核心版本,Linux 5需要2.18以上的核心:

[root@bjtest ~]# uname -r
2.6.18-8.el5xen

然後需要檢查下列的包是否已經安裝:

binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
compat-libstdc++-33-3.2.3 (32 bit)
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-2.5-24 (32 bit)
glibc-common-2.5
glibc-devel-2.5
glibc-devel-2.5 (32 bit)
glibc-headers-2.5
ksh-20060214
libaio-0.3.106
libaio-0.3.106 (32 bit)
libaio-devel-0.3.106
libaio-devel-0.3.106 (32 bit)
libgcc-4.1.2
libgcc-4.1.2 (32 bit)
libstdc++-4.1.2
libstdc++-4.1.2 (32 bit)
libstdc++-devel 4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-2.2.11 (32 bit)
unixODBC-devel-2.2.11
unixODBC-devel-2.2.11 (32 bit)

檢查發現libaio-devel對應的兩個包,以及unixODBC對應的4個包沒有安裝,而且剩下的包中有大部分都比要求的版本低。由於作業系統本身版本就比要求的低,光安裝這些包的高版本也沒有多大意義,不如直接嘗試一下,不行的話,重灌作業系統。

下面需要建立oracle使用者和oinstalldba組,這些與其他版本的安裝沒有任何的區別,這裡就不重複介紹了。

對於Oracle安裝來說,基本上已經不需要設定什麼環境變數了,大部分環境變數的內容都可以在安裝的時候指定,除了DISPLAY資訊。

和其他版本的安裝過程一樣,設定一些作業系統的限制。

更改/etc/security/limits.conf檔案,新增下面的內容:

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

編輯/etc/pam.d/login檔案,新增下面的內容:

session    required     pam_limits.so

編輯/etc/sysctl.conf檔案,增加下面的內容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8589934592
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

為了避免重啟資料庫伺服器,可以透過sysctl –p命令來設定系統核心變數:

[root@bjtest ~]# /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
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 8589934592
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

下面建立安裝Oracle所需的$ORACLE_HOME$ORACLE_BASE,以及Oracle資料檔案所需的路徑,然後就可以開始安裝了。

安裝使用VNC圖形方式,因此DISPLAY變數設定為伺服器本身IPVNC的埠,以root登陸後執行xhost +,然後切換到oracle使用者,執行runInstaller開始安裝過程。

11gr2的安裝和以前版本還是有不少差別的,值得一提的是,資料庫的安裝過程借鑑了RAC安裝過程,會前期進行硬體和軟體的檢查,並將可能導致問題的地方列表。有些問題,比如系統引數設定,Oracle的安裝程式甚至可以直接修正。

前面已經提到了的所有問題,Oracle的安裝程式都監測了出來。只能選擇IGNORE ALL,硬著頭皮上了。

本以為會在編譯或連結的時候報錯,沒想到安裝完成了。

root執行root.sh指令碼:

[root@bjtest ~]# /data/oracle/product/11.2/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /data/oracle/product/11.2

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

居然順利完成,如果說當時SWAP分割槽不滿足要求,我還確信安裝可以成功,那麼發現當前的Linux不是update 2的時候,我已經認為安裝多半會失敗,等到發現那麼多需要的包沒有安裝的時候,我已經只是抱著試試看的想法,沒有想到的是,最後居然成功了,真是沒有天理。

下面利用DBCA建庫,這個過程和以前版本比較類似,就不描述了。

最後登陸資料庫,檢查版本:

[oracle@bjtest ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on 星期四 9 3 23:37:20 2009

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-613948/,如需轉載,請註明出處,否則將追究法律責任。

相關文章