【11gR2】Enterprise Linux Release 5 Update 4安裝64位Oracle 11gR2(文字版)

secooler發表於2009-10-27
Oracle 11g的Release 2版本自2009年8月份推出到現在已經有一段時間了,為使她真容得現,遂書此翔實記錄以記之。供參考和體驗。

1.作業系統和Oracle安裝介質下載
1)作業系統安裝介質下載地址
這裡我使用的作業系統是目前,從Oracle官方網站上能夠得到的最新版本:Oracle定製的Linux企業版5.4。
Oracle的Enterprise Linux Release 5 Update 4安裝介質下載地址如下:


從下載列表中發現,只有CD版本的作業系統安裝介質可以下載,DVD版本雖然赫然出現在列表之中,但是無法下載。因此需要燒錄的光碟數無形中增加到了6張CD,使作業系統的安裝變得更加繁瑣。
作業系統安裝介質大小約為3.2G。

2)Oracle 11gR2安裝介質下載
在上同樣可以獲得目前最新版本的Oracle安裝介質——Oracle 11.2.0.1.0。
Oracle 11gR2的安裝介質包含兩個zip包,總大小約為2.3G(與早期版本相比有點“胖”!)。

2.安裝作業系統
關於這個“穿盔甲的小企鵝”Linux版本(Oracle Enterprise Linux Release 5 Update 4)的安裝過程,這裡就不贅述了。以下談一些有趣的事情:
1)作業系統的安裝應該由誰來部署,SA?DBA?
一般情況下,如果您身邊有可愛的SA,基本上OS層面的調優可以請SA來完成,不過我強烈建議DBA要對整套資料庫環境瞭如指掌,因此這一步驟最好DBA“躬親”。

2)作業系統安裝過程中元件的選擇問題
如果在安裝作業系統過程中對於rpm包的選擇實在是不太確定,並且部署的僅僅是測試實驗環境,您可以使用一般意義上“簡單粗暴”的方法:本著“寧可錯選全部也不放過一個”的原則,將所有可選元件全部選擇並安裝。注意,選擇元件的過程比較浪費滑鼠,大約需要點選幾百下,請做好思想上和體力上的準備,防止身心俱疲。
從這裡可以看出一個Junior和Senior的一點區別:Junior以“能行”為目的,Senior以“最優”為終極目標。

3)強烈呼籲作業系統介質的DVD單張版本可供下載
因為我使用的是6張CD版本的安裝介質,因此我更換了5次光碟,最後,終於看到了那隻可愛的“穿著盔甲的小企鵝”迎面向我走來。
如果只是一張安裝介質光碟的話,至少有以下幾個好處:
(1)減少光碟的浪費;
(2)減少往返於寒冷機房的次數;
(3)減少尋找特定rpm包的時間;
(4)提高生活質量。

4)附帶的驚喜
使用Oracle定製的這個Linux作業系統安裝完成後,系統中將會預設建立oracle使用者。
驗證一下oracle使用者的存在性和可用性:
[root@secDB ~]# cat /etc/passwd | grep oracle
oracle:x:500:501::/home/oracle:/bin/bash

[root@secDB ~]# su - oracle
[oracle@secDB ~]$ id
uid=500(oracle) gid=501(oinstall) groups=500(dba),501(oinstall)

5)這裡我們使用兩種方法確認一下作業系統的版本
作業系統安裝完成後,確認一下作業系統的版本(這裡給出兩種方法)。
[root@secDB ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)

[root@secDB ~]# cat /etc/issue
Enterprise Linux Enterprise Linux Server release 5.4 (Carthage)
Kernel \r on an \m

OK,從上面的兩種方法得到的結果,作業系統的版本的確是Linux 5.4。

3.將本機上剛剛下載的Oracle 11gR2安裝介質上傳到伺服器並解壓
我習慣於在Linux作業系統root使用者根目錄下建立一個hsw_media目錄,用來統一存放安裝介質。
1)建立“/hsw_media”目錄
[root@secDB ~]# mkdir -p /hsw_media

2)上傳Oracle 11gR2的安裝介質到伺服器上
方法很多,可以使用ftp。因為我安裝了Cygwin工具,所以可以使用更加熟悉的“scp”命令上傳安裝介質,命令如下:
$ scp * root@144.194.192.183:/hsw_media
root@144.194.192.183's password:
linux.x64_11gR2_database_1of2.zip 100% 1182MB   6.8MB/s   02:55
linux.x64_11gR2_database_2of2.zip 100% 1060MB   8.2MB/s   02:09

3)在伺服器端解壓安裝介質,注意兩個zip包需要分別解壓,並保證解壓後的內容均在同一個database的目錄下
(1)先解壓第一個安裝包
[root@secDB hsw_media]# unzip linux.x64_11gR2_database_1of2.zip

(2)第一個安裝包解壓完成後順手檢視一下解壓後介質大小。大約1.2G,僅僅解壓完成一個安裝包就與之前10g的安裝包大小相同。
[root@secDB hsw_media]# du -sm database
1285    database

(3)再繼續解壓第二個安裝包
[root@secDB hsw_media]# unzip linux.x64_11gR2_database_2of2.zip

(4)最後確認一下最終的安裝介質的大小。一共大約是2.3G,真是一個“大塊頭”
[root@secDB hsw_media]# du -sm database
2372    database

(5)為了後面在oracle使用者下圖形化安裝資料庫,需要將安裝目錄的所有者修改為oracle
[root@secDB ~]# chown -R oracle:oinstall /hsw_media/database

4.檢查伺服器記憶體是否滿足1G的要求
如果伺服器真的沒有滿足這個1G的要求,對安裝的影響也不是很大,只不過會在安裝正式開始前收到一個先決條件檢查不透過的“友情警告”資訊。
下面給出兩種檢視系統記憶體的方法
1)常用檢視方法
[root@secDB ~]# cat /proc/meminfo | grep MemTotal
MemTotal:      1784832 kB

2)取巧的檢視方法
[root@secDB ~]# top | grep Mem
Mem:   1784832k total,  1762364k used,    22468k free,     9660k buffers

5.檢查伺服器的Swap是否滿足要求
1)Swap交換區大小與實體記憶體大小的比例關係的一般規律如下
如果實體記憶體在1G到2G之間,Swap分配大小建議是實體記憶體的1.5倍;
如果實體記憶體在2G到16G之間,Swap建議與實體記憶體大小保持一致;
如果實體記憶體在16G以上,Swap大小建議保證有16G即可。

2)檢視當前系統中Swap的大小
/proc/meminfo檔案中同樣記錄了Swap大小的資訊
[root@secDB ~]# cat /proc/meminfo | grep SwapTotal
SwapTotal:     4095992 kB

取巧的方法同樣可以達到獲得Swap大小的目的
[root@secDB ~]# top | grep Swap
Swap:  4095992k total,      248k used,  4095744k free,  1535268k cached

3)結論
實體記憶體是2G,Swap大小是4G,滿足安裝的需求。

6.確認所剩磁碟空間是否滿足安裝需求
Oracle軟體安裝所需要的磁碟大小一般不超過5G,所以保證磁碟可用空間在5G以上即可。但是將其他因素(如資料庫檔案所佔用空間等)考慮進來,建議至少保證有25G的磁碟空間可用
[root@secDB ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup01-LogVol00
                      261G   12G  237G   5% /
/dev/cciss/c0d0p1      97M   27M   65M  30% /boot
tmpfs                 872M     0  872M   0% /dev/shm
none                  872M  104K  872M   1% /var/lib/xenstored

因為在安裝過程中,有一部分資料會寫入到“/tmp”目錄下,建議該目錄的空間大小不要小於1G
asd@asddevdb /exp$ df -h /tmp
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      127G   60G   61G  50% /

7.保證Oracle安裝過程中所需要的rpm包均安裝到位
以下是與此版本有關的rpm安裝命令列表,在執行過程中,如果該rpm包已經部署過,將收到不必重新安裝的提示,如果相應的rpm包未安裝過,命令將會自動進行安裝。
所以一次性執行一下這些命令比較穩妥。
這裡,因為我在前期安裝作業系統的時候,將所有的安裝介面上可選的元件都選擇並安裝了,所以這一步驟的安裝比較順利。
[root@secDB server]# rpm -ivh rpm -ivh binutils-2.17.50.0.6*
[root@secDB server]# rpm -ivh compat-libstdc++-33-3.2.3*
[root@secDB server]# rpm -ivh elfutils-libelf-0.137*
[root@secDB server]# rpm -ivh elfutils*
[root@secDB server]# rpm -ivh gcc-4.1.2*
[root@secDB server]# rpm -ivh gcc-c++-4.1.2*
[root@secDB server]# rpm -ivh glibc-2.5-42*
[root@secDB server]# rpm -ivh glibc-common-2.5*
[root@secDB server]# rpm -ivh glibc-devel-2.5*
[root@secDB server]# rpm -ivh glibc-headers-2.5*
[root@secDB server]# rpm -ivh ksh-20080202*
[root@secDB server]# rpm -ivh libaio-0.3.106*
[root@secDB server]# rpm -ivh libaio-devel-0.3.106*
[root@secDB server]# rpm -ivh libgcc-4.1.2*
[root@secDB server]# rpm -ivh libstdc++-4.1.2*
[root@secDB server]# rpm -ivh libstdc++-devel-4*
[root@secDB server]# rpm -ivh make-3.81*
[root@secDB server]# rpm -ivh sysstat-7.0.2*
[root@secDB server]# rpm -ivh unixODBC-2.2.11*
[root@secDB server]# rpm -ivh unixODBC-devel-2.2.11*
[root@secDB server]# rpm -ivh libaio-devel-0.3.106-3.2.i386.rpm
[root@secDB server]# rpm -ivh unixODBC-devel-2.2.11-7.1.i386.rpm

8.配置系統核心引數
在檔案“/etc/sysctl.conf”中需要對如下所列這些核心引數格外關心並特殊照顧,重點關注“kernel.shmmax”引數的設定,其次關注“fs.file-max”、“net.ipv4.ip_local_port_range”和“net.core.wmem_max”引數的設定。
[root@secDB ~]# vi /etc/sysctl.conf
fs.aio-max-nr = 3145728
fs.file-max = 6815744
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.shmmni = 4096
kernel.sem = 250 32000 100 142
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 = 1048576

9.使用“sysctl -p”命令使上面的修改生效,同時列印出所有當前的設定值
[root@secDB ~]# /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 = 1
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 8192
kernel.shmmax = 4398046511104
kernel.shmall = 1073741824
fs.file-max = 6815744
kernel.msgmni = 2878
kernel.sem = 250 32000 100 142
kernel.shmmni = 4096
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 3145728
net.ipv4.ip_local_port_range = 9000 65500

10.修改Shell Limits以便提高Oracle的執行效率
1)確認“/etc/security/limits.conf”檔案中已經包含如下內容,此處我未做修改,保持了系統安裝完成後的預設值
[root@secDB ~]# vi /etc/security/limits.conf
oracle   soft   nofile    131072
oracle   hard   nofile    131072
oracle   soft   nproc    131072
oracle   hard   nproc    131072
oracle   soft   core    unlimited
oracle   hard   core    unlimited
oracle   soft   memlock    50000000
oracle   hard   memlock    50000000

2)在檔案“/etc/pam.d/login”新增如下一行資訊
[root@secDB ~]# vi /etc/pam.d/login
session    required     pam_limits.so

11.建立Oralce的安裝所需要的目錄並給與755許可權
[root@secDB ~]# mkdir -p /oracle/ora11gR2/product
[root@secDB ~]# mkdir -p /oracle/ora11gR2/oradata
[root@secDB ~]# chown -R oracle:oinstall /oracle
[root@secDB ~]# chmod -R 775 /oracle

12.配置oracle使用者的配置檔案“.bash_profile”
[root@secDB ~]# su - oracle
[oracle@secDB ~]$ vi .bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/oracle/ora11gR2
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=secooler
export ORACLE_TERM=xterm
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/usr/X11R6/lib64/
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_ASSUME_KERNEL=2.6.18
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
umask 022
set -o vi
alias vi=vim
if [ $USER = "oracle" ]; then
  if [ $SHELL = "/bin/ksh" ]; then
    ulimit -p 16384
    ulimit -n 65536
  else
    ulimit -u 16384 -n 65536
  fi
fi

13.因為稍後我們打算採用圖形化方法安裝資料庫,為了遠端操作方便,需要配置一下VNC軟體(當然一切可以實現遠端操作的工具都可以使用)
【實驗】【VNC】Linux環境VNC服務安裝、配置與使用
http://space.itpub.net/519536/viewspace-607549

14.圖形化安裝過程正式啟動
使用VNC客戶端登入到root使用者的桌面。

15.在root使用者下使用“xhost +”命令開啟訪問控制,以便允許在oracle使用者下可以啟動圖形化安裝介面
[root@secDB ~]# xhost +

16.切換到oracle使用者,然後進入到Oracle安裝介質的目錄
[root@secDB database]# su - oracle
[oracle@secDB ~]$ cd /hsw_media/database/

17.執行“runInstaller”調出安裝介面
安裝介面與以往的版本相比有了較大的變化。在這個全新的安裝引導介面裡,我們可以很容易的從左側的安裝步驟列表中得到我們所處的具體環節。介面的右側是可供選擇的配置選項。下面我來詳細的描述一下整個安裝過程。

1)Configure Security Updates這一步驟,要求提供一個郵箱地址,這裡我們選擇不提供,點選“Next”。點選“Yes”確認不提供郵箱地址;

2)Installation Option這一步驟,保持預設選項“Create and configure a database”不變,點選“Next”;

3)System Class這一步驟,細節發現:每一個選項前面都有一個帶問號的黃色小燈泡,滑鼠懸停在上面可以得到簡略的提示資訊,如果想得到詳細的提示資訊還可以點選“more”。我們這裡選擇“Sever Class”,可以透過此選項得到更多的可配置項,另外一個選項“Desktop Class”是供快速簡易部署使用的。點選“Next”;

4)Grid Options這一步驟,選擇預設的“Single instance database installation”即可,另外一個選項“Real Application Cluster database installation”在RAC部署安裝時使用,點選“Next”;

5)Install Type這一步驟,預設是“Typical install”,我為得到更多的細節,這裡選擇了“Advanced Install”,點選“Next”;

6)Product Languages這一步驟,最終也沒能找到Chinese,只好使用預設設定“English”,點選“Next”;

7)Database Edition這一步驟,有三個選項,我們選擇預設的“Enterprise Edition”選項(提示:只有選擇第一項,“Select Options...”按鈕才可以點選並進行深入配置),點選“Next”;

8)Installation Location這一步驟,保持預設讀取到的環境變數不變即可,點選“Next”;

9)Create Inventory這一步驟,保持預設,點選“Next”;

10)Configuration Type這一步驟,保持預設的“General Purpose / Transaction Processing”,點選“Next”;

11)Database Identifiers這一步驟,這裡我將“Global database name”的內容從“orcl”修改成“secooler”,在修改該項的同時“Oracle Service Identifier”也會隨之改變,點選“Next”;

12)Configuration Options這一步驟,可以配置記憶體分配、字符集、安全和是否建立樣本資料。注意一下字符集的選擇,這裡我選擇的是“Simplified Chinese ZHS16GBK”,其他的可以使用預設值,點選“Next”;

13)Management Options這一步驟,保持預設,不配置Database Control,點選“Next”;

14)Database Storage這一步驟,保持預設的“/oracle/ora11gR2/oradata”不變,如果想使用ASM也是在這裡進行配置,點選“Next”;

15)Backup and Recovery這一步驟,在這一步驟裡可以選擇“Enable automated backups”選項啟用自動備份,我這裡為了簡單一些,選擇預設的“Do not enable automated backups”不啟用自動備份。點選“Next”;

16)Schema Passwords這一步驟,為了系統安全,這裡可以對SYS, SYSTEM, SYSMAN和DBSNMP系統使用者單獨設定登入密碼,但我為了簡化操作,統一設定為一個密碼。在設定密碼的過程中,Oracle對密碼的複雜性也做了一些限制,需要大寫字母小寫字母還有數字混合出現才能透過校驗。點選“Next”;

17)Operating System Groups這一步驟,設定OSDBA組和OSOPER組,保持預設,點選“Next”

18)Prerequisite Checks這一步驟,Oracle將全面檢查之前的配置是否滿足安裝需求。這一步驟中有關不滿足安裝先決條件的提示資訊的可參考性是一個亮點,非常的人性化,任何錯誤都會給出一個詳細的說明。比如當缺少某些rpm包時,提示資訊會給出具體的rpm包的名字;再如,當某一個系統變數設定得不正確時,會給出現有錯誤設定和正確設定的對比資訊。而且還有一個按鈕叫做“Fix & Check again”可以自動糾正一些錯誤,這應該也算Oracle在安裝過程中的一大進步。如果在這一步Oracle要求的所有安裝的先決條件均滿足了,安裝介面將自動跳轉到下一頁“Summary”;

19)Summary這一步驟,能夠看到這一步,基本上開始安裝就沒有什麼問題了。點選“Finish”進入正式安裝階段;

20)Install Product這一步驟,介面上的進度資訊比較直觀,更加值得稱讚的是可以點選“Details”檢視詳細動態的安裝日誌,有一種像使用“tail -f”命令那樣身臨其境感覺,很爽,便於快速發現錯誤,這也是非常值得稱讚的改進。這一步需要的時間最長,不過都是後臺自動化操作,可以在這個時候小小的休息一下。最後看到DBCA提示資訊後,點選“OK”退出提示視窗,然後就會看到我們非常熟悉的提示手工執行兩個指令碼,在root使用者下分別執行一下
[root@secDB server]# cd /oracle/oraInventory/
[root@secDB oraInventory]# ./orainstRoot.sh
[root@secDB oraInventory]# cd /oracle/ora11gR2/product/11.2.0/dbhome_1/
[root@secDB dbhome_1]# ./root.sh
指令碼執行完成後,點選“OK”;

21)Finish這一步驟,終於到了最後一步,右側視窗提示EM的URL,點選“Close”完成整個Oracle 11gR2的安裝過程。好漫長,長舒一口氣。

18.最後驗證一下辛辛苦苦得來的Oracle 11gR2可用性
[oracle@secDB ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Oct 28 00:59:54 2009

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault 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

SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
2009-10-28 01:00:29

SQL>

夜已經深了,現在已經是凌晨1點了,吃個夜宵該回家了。
(以上操作的每一步驟均有截圖,找時間再做一個圖文並茂的吧,今天到此結束。晚安朋友們。)

19.小結
1)整個安裝過程比較順暢,安裝介面比較簡潔大方,對進度的友好提示是一大亮點;
2)每一步驟中的每一個選項都配有詳細的註釋資訊(可以點選帶問號的黃色小燈泡);
3)在系統不滿足安裝先決條件時,提示資訊很具有參考價值;
4)在漫長的後臺自動安裝過程中,實時日誌顯示是另外一個亮點;
5)11g的宣傳圖示很cool,有一種爆炸的衝擊力。

Good luck.

-- The End –-

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

相關文章