Oracle Linux 6.4安裝Oracle 11g R2+RAC+ASM圖文詳解

來源:互聯網
上載者:User

Oracle Linux 6.4安裝Oracle 11g R2+RAC+ASM圖文詳解

一、版本說明
發現網上相關文章很多但是不是很專,因此細化版本為了使文章更加實用。
這次搭建的是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管理資料庫
關於這兩個管理軟體網上文章很多,這裡不再贅述。

相關文章

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.