1. 程式人生 > >Oracle Linux 6.4安裝Oracle 11g R2+RAC+ASM圖文詳解

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

  •     安裝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. [[email protected] ~]# su - oracle
  4. [[email protected] ~]$ mkdir ~/.ssh
  5. [[email protected] ~]$ chmod 700 ~/.ssh
  6. [[email protected] ~]$ ssh-keygen -t rsa
  7. [[email protected] ~]$ ssh-keygen -t dsa
  8. [[email protected] ~]# su - oracle
  9. [[email protected] ~]$ mkdir ~/.ssh
  10. [[email protected] ~]$ chmod 700 ~/.ssh
  11. [[email protected] ~]$ ssh-keygen -t rsa
  12. [[email protected] ~]$ ssh-keygen -t dsa
  13. 在節點1上進行互信配置:
  14. [[email protected] ~]$ touch ~/.ssh/authorized_keys
  15. [[email protected] ~]$ cd ~/.ssh
  16. [[email protected] .ssh]$ ssh rac1 cat ~/.ssh/id_rsa.pub >> authorized_keys
  17. [[email protected] .ssh]$ ssh rac2 cat ~/.ssh/id_rsa.pub >> authorized_keys
  18. [[email protected] .ssh]$ ssh rac1 cat ~/.ssh/id_dsa.pub >> authorized_keys
  19. [[email protected] .ssh]$ ssh rac2 cat ~/.ssh/id_dsa.pub >> authorized_keys
  20. 在rac1把儲存公鑰資訊的驗證檔案傳送到rac2上
  21. [[email protected] .ssh]$ pwd
  22. /home/oracle/.ssh
  23. [[email protected] .ssh]$ scp authorized_keys rac2:'pwd'
  24. [email protected]'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. [[email protected] .ssh]$ exec /usr/bin/ssh-agent $SHELL
  32. [[email protected] .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. [[email protected] ~]# fdisk /dev/sdb
  3. 完成後我們通過fdisk -l檢視一下
  4. [[email protected] ~]# fdisk -l
  5. [[email protected] ~]# /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. [[email protected] ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
  11. [[email protected] ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1
  12. [[email protected] ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1
  13. 以下操作在另一個節點上進行,RAC2上操作
  14. [[email protected] ~]# oracleasm scandisks
  15. 這裡用到的是asmlib來做磁碟裝置管理的,這裡大家也可以使用UDEV來管理,在RHEL6中asmlib已經被廢棄了,以後就是UDEV的天下

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

千辛萬苦終於到了安裝前的最後一步~
  1. [[email protected] ~]# su - grid
  2. [[email protected] ~]$ cd grid_sw
  3. [[email protected] 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管理資料庫
關於這兩個管理軟體網上文章很多,這裡不再贅述。