Oracle 11g R2+RAC+ASM+OracleLinux6.4安裝詳解(圖)

分類: Oracle

一、版本說明
發現網上相關文章很多但是不是很專,因此細化版本爲了使文章更加實用。
這次搭建的是Oracle 11g R2 11.2.0.4的RAC環境,使用的操作系統版本爲Oracle Linux 6.4

點擊(此處)摺疊或打開

  1. [root@node1 ~]# lsb_release -a
  2. LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
  3. Distributor ID: OracleServer
  4. Description: Oracle Linux Server release 6.4
  5. Release: 6.4
  6. Codename: n/a
內核版本:

點擊(此處)摺疊或打開

  1. [root@node1 ~]# uname -r
  2. 2.6.39-400.17.1.el6uek.x86_64
UEK代表Unbreakable Enterprise Kernel,是Oracle專門爲Oracle Linux定製的內核,可以提供在線支持和對數據庫的支持,算是OracleLinux的賣點之一。(本文中一些配置過程會因實用UEK版本而得到簡化)

二、Oracle 11g R2 RAC安裝整體步驟
1.服務器準備 (system, storage, and network administration):
  • 安裝操作系統並升級到滿足Oracle安裝要求的版本。
  • 創建安裝所需要的組、用戶以及軟件的家目錄。
  • 設置GNS域名如果您打算部署GNS,並且完成網絡地址在DNS和服務器上的配置。
  • 設置所要求的存儲。
  • 將所有安裝文件拷貝到一個節點上。
2.安裝Oracle Grid集羣基礎架構, 包括Oracle Clusterware和Oracle ASM (system and storage administration):
  • 爲集羣安裝Oracle Grid 基礎架構軟件。在安裝過程中,Fixup腳本進行操作系統參數、SSH和用戶環境變量等參數的附加調整。
  • 升級Oracle Clusterware和Oracle ASM到最新補丁。
3.安裝Oracle RAC (database administration):
  •     安裝Oracle RAC
  •     打補丁到最新版本
  •     完成安裝後的調試

三、詳細安裝過程及說明(參考官方文檔)

1.通過SecureCRT或TerminalX建立命令行連接。

2.在每一個節點上添加安裝Oracle Grid的用戶、組和家目錄,並設置權限。

點擊(此處)摺疊或打開

  1. # /usr/sbin/groupadd -g 1000 oinstall
  2. # /usr/sbin/groupadd -g 1020 asmadmin
  3. # /usr/sbin/groupadd -g 1021 asmdba
  4. # /usr/sbin/groupadd -g 1022 asmoper
  5. # /usr/sbin/groupadd -g 1031 dba
  6. # /usr/sbin/groupadd -g 1032 oper
  7. # useradd -u 1100 -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
  8. # useradd -u 1101 -g oinstall -G dba,asmdba,oper oracle
  9. # mkdir -p /u01/app/11.2.0/grid
  10. # mkdir -p /u01/app/grid
  11. # chown -R grid:oinstall /u01
  12. # mkdir /u01/app/oracle
  13. # chown oracle:oinstall /u01/app/oracle
  14. # chmod -R 775 /u01/
參照官方文檔,採用GI與DB分開安裝和權限的策略,對於多實例管理有利。

3.檢查服務器各個節點的配置是否符合安裝要求

I.服務器硬盤空間要求
/tmp目錄大小至少:1GB
安裝Grid Infrastracture所需空間:6.6GB
安裝Oracle Database所需空間:4GB
此外安裝過程中分析、收集、跟蹤文件所需空間:10GB
建議總共至少30GB,放心!(此處不包含ASM或NFS的空間需求)

II.服務器內存要求

內存大小:至少2.5GB
Swap大小:
當內存爲2.5GB-16GB時,Swap需要大於等於系統內存。
當內存大於16GB時,Swap等於16GB即可。


III
.檢查和調試代碼
  • 查看內存及Swap大小的命令如下。

點擊(此處)摺疊或打開

  1. # grep MemTotal /proc/meminfo
  2. # grep SwapTotal /proc/meminfo

  • 查看/tmp目錄以及配置單獨lv的命令如下。


點擊(此處)摺疊或打開

  1. # df -h /tmp
  2. # lvcreate -L 2G -n lv_tmp vg_temp
  3. # mount /dev/vg_temp/lv_tmp /tmp
  4. # df -h /tmp

4.設置操作系統相關參數

    這一項在非Oracle Linux的操作系統中算是一項比較繁瑣的工作,然而我們這次安裝的版本是Oracle Linux 6.4 with Unbreakable Enterprise Kernel,因此我們有了更簡單的辦法,就是通過安裝Oracle Preinstallation RPM來實現相關操作系統參數的調整和軟件包的安裝。
這個安裝包主要完成以下工作:
  • Automatically downloads and installs any additional RPM packages needed for installing Oracle Grid Infrastructure and Oracle Database, and resolves any dependencies

  • Creates an oracle user, and creates the oraInventory (oinstall) and OSDBA (dba) groups for that user

  • As needed, sets sysctl.conf settings, system startup parameters, and driver parameters to values based on recommendations from the Oracle Preinstallation RPM program

  • Sets hard and soft resource limits

  • Sets other recommended parameters, depending on your kernel version

此安裝包位於操作系統安裝盤的Packages目錄下。

點擊(此處)摺疊或打開

  1. # cd /mnt/install_DVD
  2. # cd Packages
  3. # ll | grep preinstall
  4. -rw-r--r-- 1 root root 15524 Jan 16 2013 oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm
  5. # rpm -ivh oracle-rdbms-server-11gR2-preinstall-1.0-7.el6.x86_64.rpm
安裝包修改/etc/sysctl.conf的內容如下:
其中標有oracle-rdbms-server-11gR2-preinstall字樣註釋的便是安裝包所添加的參數。

點擊(此處)摺疊或打開

  1. # cat /etc/sysctl.conf
  2. # Kernel sysctl configuration file for Red Hat Linux
  3. #
  4. # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
  5. # sysctl.conf(5) for more details.

  6. # Controls IP packet forwarding
  7. net.ipv4.ip_forward = 0

  8. # Controls source route verification
  9. net.ipv4.conf.default.rp_filter = 1

  10. # Do not accept source routing
  11. net.ipv4.conf.default.accept_source_route = 0

  12. # Controls the System Request debugging functionality of the kernel
  13. kernel.sysrq = 0

  14. # Controls whether core dumps will append the PID to the core filename.
  15. # Useful for debugging multi-threaded applications.
  16. kernel.core_uses_pid = 1

  17. # Controls the use of TCP syncookies
  18. net.ipv4.tcp_syncookies = 1

  19. # Disable netfilter on bridges.
  20. net.bridge.bridge-nf-call-ip6tables = 0
  21. net.bridge.bridge-nf-call-iptables = 0
  22. net.bridge.bridge-nf-call-arptables = 0

  23. # Controls the default maxmimum size of a mesage queue
  24. kernel.msgmnb = 65536

  25. # Controls the maximum size of a message, in bytes
  26. kernel.msgmax = 65536

  27. # Controls the maximum shared segment size, in bytes

  28. # Controls the maximum number of shared memory segments, in pages

  29. # oracle-rdbms-server-11gR2-preinstall setting for fs.file-max is 6815744
  30. fs.file-max = 6815744

  31. # oracle-rdbms-server-11gR2-preinstall setting for kernel.sem is '250 32000 100 128'
  32. kernel.sem = 250 32000 100 128

  33. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmni is 4096
  34. kernel.shmmni = 4096

  35. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 1073741824 on x86_64
  36. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 2097152 on i386
  37. kernel.shmall = 1073741824

  38. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmax is 4398046511104 on x86_64
  39. # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmmax is 4294967295 on i386
  40. kernel.shmmax = 4398046511104

  41. # oracle-rdbms-server-11gR2-preinstall setting for net.core.rmem_default is 262144
  42. net.core.rmem_default = 262144

  43. # oracle-rdbms-server-11gR2-preinstall setting for net.core.rmem_max is 4194304
  44. net.core.rmem_max = 4194304

  45. # oracle-rdbms-server-11gR2-preinstall setting for net.core.wmem_default is 262144
  46. net.core.wmem_default = 262144

  47. # oracle-rdbms-server-11gR2-preinstall setting for net.core.wmem_max is 1048576
  48. net.core.wmem_max = 1048576

  49. # oracle-rdbms-server-11gR2-preinstall setting for fs.aio-max-nr is 1048576
  50. fs.aio-max-nr = 1048576

  51. # oracle-rdbms-server-11gR2-preinstall setting for net.ipv4.ip_local_port_range is 9000 65500
  52. net.ipv4.ip_local_port_range = 9000 65500

5.配置Oracle網絡

I.硬件配置要求
  • 每個服務器節點至少需要2塊網卡,一塊對外網絡接口,一塊私有網絡接口(心跳)。
  •  如果你通過OUI安裝Oracle集羣軟件,需要保證每個節點用於外網或私網接口(網卡名)保證一致。比如,node1使用eth0作爲對外接口,node2就不能使用eth1作爲對外接口。

II.IP配置要求
  • 存在爲集羣服務的DHCP

  • DHCP能爲每個節點提供足夠的IP,一個虛擬IP、3個SCAN IP


III.非GNS下手動配置IP實例



6.檢查操作系統軟件包
首先,根據操作系統版本到官方文檔中找到安裝包需求列表
,如下圖

可以通過mount安裝盤或直接通過yum源檢查和安裝所需要的包:

點擊(此處)摺疊或打開

  1. # rpm -qa packages_name
  2. # rpm -ivh packages_name

  3. # yum list packages_name
  4. # yum install packages_name
這裏還要提一下:CVUdisk這個包也可以在這個時候一起安裝好,以備之後使用CVU時會用到。

點擊(此處)摺疊或打開

  1. # 檢查是否已經安裝
  2. # rpm -qi cvuqdisk
  3. # 如果已安裝需要先卸載之前的版本
  4. # rpm -e cvuqdisk
  5. # 安裝新版本
  6. # CVUQDISK_GRP=oinstall; export CVUQDISK_GRP
  7. # rpm -ivh cvuqdisk-1.0.9-1.rpm

7.關閉NTP及端口範圍參數修改

點擊(此處)摺疊或打開

  1. # Oracle建議使用Oracle Cluster Time Synchronization Service,因此關閉刪除NTP
  2. # /sbin/service ntpd stop
  3. # chkconfig ntpd off
  4. # rm /etc/ntp.conf (mv /etc/ntp.conf /etc/ntp.conf.old)
  5. # rm /var/run/ntpd.pid

  6. 檢查TCP/UDP端口範圍
  7. # cat /proc/sys/net/ipv4/ip_local_port_range
  8. 如果已經顯示9000 65500,就不用進行下面的步驟了
  9. # echo 9000 65500 > /proc/sys/net/ipv4/ip_local_port_range
  10. # vim /etc/sysctl.conf
  11. # 添加此行:
  12. # TCP/UDP port range
  13. net.ipv4.ip_local_port_range = 9000 65500
  14. # 重啓網絡
  15. # /etc/rc.d/init.d/network restart

8.
調整.bash_profile內容並設置顯示地址

點擊(此處)摺疊或打開

  1. 設置參數:
  2. $ su - root
  3. # mkdir /mount_point/tmp
  4. # chmod 775 /mount_point/tmp
  5. # exit

  6. $ vi .bash_profile
  7. 加入行:
  8. TEMP=/mount_point/tmp
  9. TMPDIR=/mount_point/tmp
  10. export TEMP TMPDIR
  11. 加入行:umask 022
  12. 加入行:DISPLAY=local_IP:0.0 ; export DISPLAY
  13. local_IP爲你要將安裝視圖所顯示的桌面地址

  14. 檢查設置參數
  15. $ umask
  16. $ env | more
  17. $ echo $DISPLAY
  18. $ echo $TEMP
  19. $ echo $TMPDIR

9.
配置SSH互信
這是很關鍵的一步,雖然官方文檔中聲稱安裝GI和RAC的時候OUI會自動配置SSH,但爲了在安裝之前使用CVU檢查各項配置,還是手動配置互信更優。

點擊(此處)摺疊或打開

  1. 配置過程如下:
  2. 各節點生成Keys:
  3. [root@rac1 ~]# su - oracle
  4. [oracle@rac1 ~]$ mkdir ~/.ssh
  5. [oracle@rac1 ~]$ chmod 700 ~/.ssh
  6. [oracle@rac1 ~]$ ssh-keygen -t rsa
  7. [oracle@rac1 ~]$ ssh-keygen -t dsa
  8. [root@rac2 ~]# su - oracle
  9. [oracle@rac2 ~]$ mkdir ~/.ssh
  10. [oracle@rac2 ~]$ chmod 700 ~/.ssh
  11. [oracle@rac2 ~]$ ssh-keygen -t rsa
  12. [oracle@rac2 ~]$ ssh-keygen -t dsa

  13. 在節點1上進行互信配置:
  14. [oracle@rac1 ~]$ touch ~/.ssh/authorized_keys
  15. [oracle@rac1 ~]$ cd ~/.ssh
  16. [oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
  17. [oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
  18. [oracle@rac1 .ssh]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
  19. [oracle@rac1 .ssh]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys

  20. 在rac1把存儲公鑰信息的驗證文件傳送到rac2上
  21. [oracle@rac1 .ssh]$ pwd
  22. /home/oracle/.ssh
  23. [oracle@rac1 .ssh]$ scp authorized_keys rac2:'pwd'
  24. oracle@rac2's password:
  25. authorized_keys 100% 1644 1.6KB/s 00:00

  26. 設置驗證文件的權限
  27. 在每一個節點執行:
  28. $ chmod 600 ~/.ssh/authorized_keys

  29. 啓用用戶一致性
  30. 在你要運行OUI的節點以oracle用戶運行(這裏選擇rac1):
  31. [oracle@rac1 .ssh]$ exec /usr/bin/ssh-agent $SHELL
  32. [oracle@rac1 .ssh]$ ssh-add
  33. Identity added: /home/oracle/.ssh/id_rsa (/home/oracle/.ssh/id_rsa)
  34. Identity added: /home/oracle/.ssh/id_dsa (/home/oracle/.ssh/id_dsa)

  35. 驗證ssh配置是否正確
  36. 以oracle用戶在所有節點分別執行:
  37. ssh rac1 date
  38. ssh rac2 date
  39. ssh rac1-priv date
  40. ssh rac2-priv date

  41. 如果不需要輸入密碼就可以輸出時間,說明ssh驗證配置成功。必須把以上命令在兩個節點都運行,每一個命令在第一次執行的時候需要輸入yes。
  42. 如果不運行這些命令,即使ssh驗證已經配好,安裝clusterware的時候也會出現錯誤:
  43. The specified nodes are not clusterable
  44. 因爲,配好ssh後,還需要在第一次訪問時輸入yes,纔算是真正的無障礙訪問其他服務器。
請謹記,SSH互信需要實現的就是各個節點之間可以無密碼進行SSH訪問。

10.爲Grid集羣基礎軟件配置存儲(使用ASM)
Oracle所允許的存儲主要有ASM、NFS和ACFS等,這裏僅介紹ASM的配置過程。
(1)安裝ASM配置軟件

點擊(此處)摺疊或打開

  1. 依然是可以通過yum或者系統DVD光盤安裝
  2. # cd /mnt/install_DVD/Packages
  3. # rpm -qi oracleasm
  4. # rpm -qi oracleasm-support
  5. # rpm -qi oracleasm-support-2.1.8-1.el6.x86_64.rpm
  6. //我們是Oracle Linux系統,此版本已經集成了oracleasm和oracleasmlib,所以就不用再安裝了~
(2)規劃ASM磁盤組
官方文檔中規定了不同冗餘策略下OCR、Voting Disk、Database和Recovery所需求的大小。


找到存儲管理員,把規劃好的磁盤都讓他給你配置好~

(3)配置ASM

點擊(此處)摺疊或打開

  1. 格式化每個磁盤
  2. [root@rac1 ~]# fdisk /dev/sdb

  3. 完成後我們通過fdisk -l查看一下
  4. [root@rac1 ~]# fdisk -l

  5. [root@rac1 ~]# /usr/sbin/oracleasm configure -i
  6. Default user to own the driver interface []: grid
  7. Default group to own the driver interface []: asmadmin
  8. Start Oracle ASM library driver on boot (y/n) [n]: y
  9. Scan for Oracle ASM disks on boot (y/n) [y]: y

  10. [root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
  11. [root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
  12. [root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1

  13. 以下操作在另一個節點上進行,RAC2上操作
  14. [root@rac2 ~]# oracleasm scandisks
  15. 這裏用到的是asmlib來做磁盤設備管理的,這裏大家也可以使用UDEV來管理,在RHEL6中asmlib已經被廢棄了,以後就是UDEV的天下

11.使用CVU檢查各個節點的配置工作

千辛萬苦終於到了安裝前的最後一步~

點擊(此處)摺疊或打開

  1. [root@node1 ~]# su - grid
  2. [grid@node1 ~]$ cd grid_sw
  3. [grid@node1 grid_sw]$ ./runcluvfy.sh stage -pre crsinst -n node1,node2 -fixup -verbose
  4. 其中“grid_sw”爲安裝包解壓出來的grid安裝文件。
這一步的重點在於遇到報錯怎樣處理:
我這次安裝遇到了PRVF-5636,此問題是由於沒有DNS以及/etc/resolv.conf 的設置引起的,因爲腳本要用nslookup命令去檢測兩個節點的連通性。

12.安裝GI和RAC
(1)安裝
Oracle Grid Infrastructure

安裝過程中遇到了udev的報錯,由於我們使用的oracleasmlib,所以直接無視~

(2)安裝Oracle Database 11g with Oracle Real Application Clusters

安裝Grid是難點,RAC只要Grid安裝順利基本不是問題,安裝過程中也請先使用CVU進行安裝前檢測,本次安裝過程中遇到了一些文件權限的問題,大家安裝時也請多注意。尤其是ASM的權限和安裝用戶的家目錄權限。

13.使用ASMCA和DBCA管理數據庫
關於這兩個管理軟件網上文章很多,這裏不再贅述。

鳴謝:
本文參考了衆多高手的博客和文章,特此說明,以表敬意!
http://blog.itpub.net/28883355/viewspace-1125122/
http://blog.itpub.net/20674423/viewspace-1130320/
https://community.oracle.com/message/10696565
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章