• 1. 第29章 Oracle RAC服务器配置和管理Oracle真正应用集群(Real Application Cluster,RAC)是一种数据库集群技术。使用RAC,Oracle数据库可以运行在多台服务器上,组成数据库计算集群,为用户提供了最高级别的可用性、可伸缩性和低成本计算能力。本章介绍如何在Red Hat Enterprise Linux 5.2上安装Oracle RAC 11g并创建和管理RAC数据库
  • 2. 29.1 Oracle RAC简介Oracle RAC是Oracle高可用性结构的一个重要组件,在Oracle 9i中首次推出,是Oracle并行服务器(OPS)的后续版本。发展至今,Oracle RAC已经成为了一项成熟的技术,其应用范围遍及各种企业应用程序以及大中型网站,为业界提供了一个超越单台服务器处理能力限制的可伸缩数据库解决方案。这使得用户可以充分利用现有硬件资源,降低硬件成本,并提供了一个可伸缩的数据库计算环境来支持应用程序的动态负载。 使用RAC的Oracle数据库是一个集群数据库。所谓集群,就是一组通过网络连接起来的独立服务器,它们之间可以协同进行计算,如同一个系统。为了能实行集群计算,RAC将Oracle实例(运行在服务器中的进程和内存结构,以允许对数据库进行访问)与Oracle数据库(保存数据库数据的物理文件)进行了分离。
  • 3. 29.1 Oracle RAC简介
  • 4. 29.2 Oracle Clusterware安装要安装Oracle RAC,首先需要安装Oracle Clusterware 11g。Clusterware是RAC的基础,它负责管理所有与集群和RAC相关配置的信息,以及定时向集群中所有节点发送“心跳”消息,判断节点是否正常等。只需要在一个节点服务器上安装Oracle Clusterware 11g,Clusterware软件会通过Oracle通用安装程序自动安装到集群中的其他节点上。本节介绍如何Red Hat Enterprise Linux 5.2上安装Oracle Clusterware 11g。
  • 5. 29.2.1 如何获得Clusterware安装包可通过Oracle官方网站http://www.oracle.com下载Clusterware 11g的软件安装包。
  • 6. 29.2.2 安装Clusterware的硬件环境要求Oracle 11g RAC对主机的的物理内存、Swap空间、网卡数量以及磁盘空间等硬件配置都有所要求,具体的硬件配置要求如下所示。 (1)物理内存大于1GB。 (2)Swap空间大于1.5GB。 (3)两张物理网卡。 (4)/tmp文件系统可用空间大于400MB。 (5)此外,还需要满足以下的磁盘空间要求:
  • 7. 29.2.3 安装Clusterware的软件环境要求Oracle 11g RAC对服务器的软件环境同样有所要求,每个安装Oracle 11g RAC的节点主机上都需要安装以下或更高版本的软件包: binutils-2.15.92.0.2-18 elfutils-libelf-0.97-5 elfutils-libelf-devel-0.97.5 glibc-2.3.9.4-2.19 glibc-common-2.3.9.4-2.19 glibc-devel-2.3.9.4-2.19 gcc-3.4.5-2 gcc-c++-3.4.5-2 libgcc-3.4.5 libstdc++-3.4.5-2 libstdc++-devel-3.4.5-2 libaio-devel-0.3.105-2 libaio-0.3.105-2 make-3.80-5
  • 8. 29.2.4 网络配置Oracle 11g RAC可以支持多个RAC主机节点,本例仅安装两个主机结点,主机名分别为rac1和rac2。每台主机都有两张网卡。主机网卡IP地址用途rac1eth0172.20.31.111rac1的公共网络地址rac1eth1192.168.0.111rac1的心跳网络地址rac1 172.20.31.113rac1的数据库服务虚拟地址,不需要在网卡上设置,安装Clusterware后会自动启用rac2eth0172.20.31.112rac2的公共网络地址rac2eth1192.168.0.112rac2的心跳网络地址rac2 172.20.31.114rac2的数据库服务虚拟地址,不需要在网卡上设置,安装Clusterware后会自动启用
  • 9. 29.2.5 配置内核参数为了获得更好的性能以及提高系统的稳定程度,Oracle 11g RAC要求用户必须更改Linux系统默认的内核参数,否则无法正常安装。
  • 10. 29.2.6 创建oracle用户和用户组在每台安装Oracle 11g RAC的主机上都必须创建oracle用户,以及用户组dba和oinstall,用于Oracle进程的运行。
  • 11. 29.2.7 配置ssh协议安装Oracle 11g RAC的各个主机结点间需要以互信的方式进行通信,用户可以选择使用rhost或SSH协议。两者的配置步骤有所差异,而相对于rhost,使用SSH将更加安全可靠,因此本书以SSH为例介绍其具体配置步骤。 1.创建.ssh目录 2.生成RSA Key 3.将生成的RSA Key添加到authorized_keys 4.启用SSH协议
  • 12. 29.2.8 配置用户环境在操作系统中创建用户帐号oracle后,还需要配置该用户的用户环境,包括更改用户的资源限制、更改登录的pam文件以及修改用户配置文件profile中的环境信息等,具体的命令以及操作步骤如下所示。 (1)编辑文件/etc/bashrc。 (2)编辑文件/etc/security/limits.conf。 (3)编辑文件/etc/pam.d/login。 (4)编辑/etc/profile。
  • 13. 29.2.9 配置存储Cluster Ware软件以及RAC数据库文件需要安装在共享磁盘上,这共享磁盘空间可以是安装了共享文件系统的外部存储阵列,也可以是由NFS服务器共享出来的共享空间。在本例中是在RAC1主机上通过NFS把磁盘空间共享出来,由RAC1和RAC2共享访问(最理想是通过独立的NFS服务器共享存储空间,本例中由RAC1共享存储只是为了节省机器数量)。
  • 14. 29.2.10 安装Clusterware下载后的Oracle Clusterware安装文件是一个压缩包文件,在安装前需要先进行解压缩,然后启动Oracle Clusterware的图形化安装程序,在安装过程中通过鼠标选择合适的选项并单击【下一步】按钮即可。
  • 15. 29.2.11 CRS服务的检测与启动关闭Oracle Clusterware安装完成后会自动在所有RAC节点主机上启动CRS服务,用户可执行“crs/bin”目录下的“crs_stat –t”命令查看CRS服务的状态。 用户也可以通过执行如下命令手工启动和关闭CRS服务。 启动CRS 关闭CRS
  • 16. 29.3 安装数据库软件Oracle Clusterware安装完成后,接下来需要安装的是数据库软件。Oracle RAC的数据库安装文件与第28章中所介绍的单机版的Oracle安装文件相同,但安装的步骤以及选项有所差异。用户只需要在节点主机RAC1上安装Oracle 11g即可,Oracle通用安装程序会自动把文件复制到集群中其他的所有主机节点上。
  • 17. 29.3.1 安装必须的软件包Oracle 11g同样对Linux操作系统的软件包及版本有所要求,安装Oracle 11g的系统需要先安装以下版本(或更高版本)的软件包:
  • 18. 29.3.2 安装Oracle 11gOracle 11g提供了图形化的安装界面,用户通过鼠标选项合适的选项并单击【下一步】按钮即可完成该软件的安装。
  • 19. 29.4 创建RAC数据库用户只需要在集群节点RAC1上使用Oracle数据库配置向导创建RAC数据库,数据库配置向导会自动把配置信息复制到集群中的其他所有主机节点上。RAC数据库文件的存放位置必须是所有主机节点都能访问,在本例中使用NFS服务共享存储空间。
  • 20. 29.5 RAC数据库的管理Oracle RAC数据库与非RAC数据库在管理上存在一定的差异,本节将主要介绍如何启动、关闭Oracle RAC数据库,如何检测Oracle RAC数据库的状态,网络监听程序的配置以及透明应用程序故障切换的配置等。
  • 21. 29.5.1 RAC数据库进程说明RAC集群中的每个节点主机上都会启动相应的数据库进程,进程的名称按数据库实例名称命名,其中第一个节点主机上的实例为“<数据库名称>1”,第二个实例为“<数据库名称>2”。
  • 22. 29.5.2 启动和关闭RAC数据库srvctl是Oracle RAC集群的配置管理工具,用户可以通过该工具启动、关闭RAC数据库以及检测RAC数据库的状态,其命令格式如下所示。 srvctl start | stop | status database -d 数据库名 srvctl start | stop | status instance -d 数据库名 -i 实例名 1.启动RAC数据库 2.关闭RAC数据库 3.检测RAC数据库的状态
  • 23. 29.5.3 Oracle网络监听程序配置Oracle网络监听程序负责监听Oracle服务端口,接收客户端的连接。通过执行lisnrctl命令,可以获得Oracle网络监听程序的服务信息。
  • 24. 29.5.4 故障切换Oracle RAC的高可用性功能除了负载均衡外,还包括了透明应用程序故障切换(Transparent Application Failover,TAF)。TAF就是指会话连接到一个实例上,如果这个实例出现了故障,RAC会自动将该会话复制到另一个实例上继续运行。要启用TAF功能需要在tnsnames.ora文件中进行一些修改,但在此前先看一下在没有启用TAF时发生故障会是什么结果。
  • 25. 29.6 Oracle RAC常见问题Oracle Clusterware安装过程中出现的故障问题主要是由于SELinux、NFS挂载选项、网络配置以及SSH等造成。本节介绍出现error while loading shared libraries、Failed to initialize ocrconfig以及CRS-0215等错误的解决方法。
  • 26. 29.6.1 执行root.sh脚本出现载入共享库错误由于Red Hat Enterprise Linux 5.2默认启用SELinux,所以执行root.sh脚本时会出现error while loading shared libraries错误。
  • 27. 29.6.2 执行root.sh脚本出现初始化ocrconfig失败的错误由于NFS的挂载选项设置不正确,执行root.sh脚本时会出现Failed to initialize ocrconfig错误。
  • 28. 29.6.3 执行root.sh脚本出现CRS-0215错误由于网络配置不正确,执行root.sh脚本时可能会出现 “CRS-0215: Could not start resource 'ora.rac1.ons'”错误,具体错误信息如下所示。 在 (2) 节点上创建 VIP 应用程序资源... 在 (2) 节点上创建 GSD 应用程序资源... 在 (2) 节点上创建 ONS 应用程序资源... 启动 (2) 节点上的 VIP 应用程序资源 ... 启动 (2) 节点上的 GSD 应用程序资源... 启动 (2) 节点上的 ONS 应用程序资源1:CRS-0215: Could not start resource 'ora.rac1.ons'. //无法启动资源'ora.rac1.ons'