本文主要摘自于Oracle Database 2 Day + Real Application Clusters Guide 11g Release 2 (11.2) E17264-15,旨在总结和规范oracle 11g RAC安装步骤。
在这个网络发达的时代,oracle 11g rac环境安装资料网上比比皆是,大多都是安装流程,千篇一律,很少有文章探讨为啥要这么做,官方推荐是怎么操作的,为此仔细阅读了oracle 官方文档,特总结如下,现呈各位看官阅示。
本书分为11个标题:
1、前言
2、介绍 Oracle Database 2 Day + Real Application Clusters Guide
3、集群准备工作
4、安装 Oracle Grid Infrastructure and Oracle Real Application Clusters
5、管理数据库实例和集群数据库
6、管理oracle集群软件组件
7、备份还原管理
8、使用services管理数据库负载
9、性能监控和问题解决
10、添加和删除节点实例
11、管理oracle 软件和补丁升级
Administering Redo Logs in Oracle RAC
管理oracle rac redolog日志跟管理单节点redo log日志类似.
关于redo log组和redo 进程介绍
redolog包含数据文件改变记录。在单实例数据库中,redolog往往存储2组或多组。每组包含redolog文件和一个或多个文件镜像拷贝。在oracle rac数据库中,每个实例请求自己的redolog组,这就是所谓的redo线程。镜像拷贝可以提供额外保护,避免硬件损坏或数据块损坏造成数据据丢失风险。如果一个redolog不能访问,oracle会尝试访问镜像文件。redolog镜像文件应该存放在不同磁盘区别于主redolog。
每个实例的redolog 线程必须包含至少2组redolog日志。每个redolog组必须至少包含2个redolgo成员:redolog文件和他的镜像拷贝。如果你使用dbca创建oracle rac,那么数据库会自动实现oracle推荐的配置。
在oracle rac数据库,所有的redolog日志必须位于共享存储。另外,每个实例必须具有访问其他实例redolog权限。如果你的oracle rac数据库使用oracle asm,这时oracle asm需要管理共享存储上的redolog并可以访问它。
About Accessing Redo Log Files for an Oracle RAC Database
在oracle rac数据库,每个实例可以写和归档它自己的redolog日志组。然而,在归档模式,数据库实例执行恢复可以读和操作所有的redolog组,哪个实例产生的重做线程。能够读取所有重做线程,使一个运行实例能够恢复。
当出现实例失败的时候,剩下的一个实例可以读取失败实例的redolog,影虎可以继续访问和更新数据库而不需要等待恢复。例如:有一个oracle集群数据库,有两个实例 A、B ,当实例A失败了后,实例B仍可以读两个节点的redolog,直到恢复完成。
Administering Oracle Clusterware Components
本章主要讲述如何管理oracle集群软件环境。如何管理表决磁盘和OCR。
Oracle Real Application集群(Oracle RAC)使用Oracle Clusterware作为基础结构,它绑定了多个节点,然后作为单个服务器运行。在Oracle RAC环境中,Oracle Clusterware监视所有Oracle组件(如实例和侦听器)。如果出现故障,则Oracle Clusterware会自动尝试重新启动失败的组件,并将操作重定向到幸存组件。
Oracle Clusterware包含了一个高可用框架,用于管理在集群上运行的任何应用程序。Oracle Clusterware管理应用程序,以确保它们在系统启动时启动。Oracle Clusterware还监控应用程序以确保它们始终可用。例如,如果一个应用程序失败了,那么Oracle Clusterware尝试根据您自定义的脚本重新启动。如果集群中的一个节点失败了,那么您就可以规划应用程序进程,它通常运行在失败节点上,以重新启动集群中的另一个节点。
About the Voting Disks
投票磁盘记录节点成员信息。节点必须能够在任何时候访问超过半数的投票磁盘。 为了避免同时丢失多个投票磁盘,每个投票磁盘应该在一个存储设备上,该存储设备不与其他投票磁盘使用的存储设备共享任何组件(控制器、互连等)。
例如,如果您配置了五个投票磁盘,那么一个节点必须能够在任何时候访问至少三个投票磁盘。如果一个节点不能访问最低要求的投票磁盘数量,那么它将从集群中被驱逐或删除。在修复失败并恢复对投票磁盘的访问之后,您可以指示Oracle Clusterware把恢复失败的节点添加到集群。
About Oracle Cluster Registry
Oracle Cluster Registry (OCR) 是一个包含关于集群节点列表和实例到节点映射信息的文件。OCR还包含关于您定制的资源的Oracle Clusterware资源配置文件的信息。在OCR中也支持投票磁盘数据。
集群中的每个节点也有一个OCR的本地副本,称为Oracle本地注册表(OLR),这是在安装Oracle Clusterware时创建的。每个节点上的多个进程同时读取和写入对OLR的访问,特别是对其所在节点的访问,Oracle Clusterware是否具有完全的功能。默认情况下,OLR位于Grid_home /cdata/$HOSTNAME.olr。
About High Availability of Oracle Clusterware Files
高可用配置通常需要多余的硬件软件来支持,已预防单点故障。当一个组件错误,oracle 集群重定向管理资源到冗余组件。然而,如果遇到灾难攻击或者大规模硬件错误,这个时候冗余组件就不够了,就需要提前把重要文件做备份。
oracle 集群软件在共享磁盘上安装了OCR和表决磁盘。在安装的时候如果选择的是一般冗余模式,那么oracle会自动维护冗余副本已防范单点错误,一般冗余方案无需第三方支持,oracle自动维护两份OCR副本和3份表决磁盘副本。
Managing the Oracle Clusterware Stack
oracle集群软件在服务器重启的时候也会自动重启,在日常维护过程中,会进程重启oracle集群软件。
Starting Oracle Clusterware
你可以使用crsctl 去管理oracle集群软件,如果一个Oracle High Availability Services daemon (OHASD)在所有节点运行,你可以在任何节点重启整个oracle集群
crsctl start cluster -all
您可以使用- n选项在特定节点上启动Oracle Clusterware,然后使用空格分隔的节点名列表
crsctl start cluster -n racnode1 racnode2
要使用以上的命令,OHASD进程必须在指定的节点上运行
启动oracle 集群软件,包括OHASD服务,
crsctl start crs
Stopping Oracle Clusterware
停止所有节点上的oracle集群
crsctl stop cluster -all
上面命令停止了Oracle Clusterware、Oracle ASM实例和所有Oracle Clusterware进程(OHASD及其相关流程除外)管理的资源。
停止指定节点的orace集群和oracle asm服务,多个节点使用空格隔开
crsctl stop cluster -n racnode1 racnode2
如果没有加 -all 或者 -n 参数,默认在本节点停止oracle集群和asm服务。
要完全关闭整个Oracle Clusterware栈,包括OHASD进程,使用crsctl stop crs命令。CRSCTL试图停止Oracle Clusterware,在关闭Oracle cluster 管理的资源。当执行了 crsctl stop crs 命令之后仍有oracle cluster 管理的资源运行,则会返回错误,这个时候必须强制关闭oracel cluster 资源 ,使用 crsctl stop crs -f 。
当关闭了oracle cluster 服务,ASM也随之关闭。oralce cluster 文件(表决磁盘和OCR)都存放在ASM中,唯一的关闭asm方法是关闭oracle cluster 服务。
Administering Voting Disks for Oracle Clusterware
本节目标:
. 添加移除表决磁盘
. 备份还原表决磁盘
. 迁移表决磁盘和ASM存储
Adding and Removing Voting Disks
如果选择存储oracle 集群文件在asm上并且使用冗余磁盘组,那么Oracle ASM根据冗余磁盘组自动维护表决磁盘文件数。
如果您使用不同形式的共享存储来存储选票磁盘,你可以动态的添加或删除表决磁盘。
使用grid用户或oracle用户增加、删除表决磁盘:
crsctl add|delete css votedisk path
Backing Up and Recovering Voting Disks
在11g Release 2 (11.2),不在备份表决磁盘,作为OCR数据一部分,表决磁盘自动备份。
当表决磁盘损坏不能再使用的时候,需要替换或者重建表决磁盘。通过删除不可用的表决盘在添加新的表决磁盘达到修改目的。当一个新的表决磁盘被添加的时候,通过将备份数据还原。
crsctl delete css votedisk /dev/sda3
crsctl add css votedisk /dev/sda3
还原 Voting Disks
如果所有的表决磁盘都损坏了,可以按照如下步骤:
只有当OCR被损坏或不可用时,这一步才有必要,比如OCR在Oracle ASM上,而磁盘组不再可用。
如果资源失败,则在尝试恢复OCR之前,重新启动资源。通过运行 ocrcheck 来检车ocr状态。不建议使用-import参数直接还原你的ocr,建议使用-restore来还原ocr.
如果ocr存储在asm磁盘组,asm磁盘组损坏,这个时候就必须还原asm磁盘组,在还原ocr之前先挂载asm磁盘组。还原ocr使用 ocrconfig -restore命令。如果ocr磁盘不存在,需要创建一个空的ocr磁盘,名字跟之前一样,然后使用ocrconfig -restore 进行还原。
Restoring the Oracle Cluster Registry on Linux or UNIX Systems
1 . 查看集群节点
olsnodes
2 . 使用root账户停止oracle集群
crsctl stop crs
如果上面民林报错,可以强制停止
crsctl stop crs -f
3 . 使用root用户还原crs
ocrconfig -restore *file_name*
如果第三步完成,可以直接执行第10步
4 . 使用root账户启动oracle集群到受限模式
# crsctl start crs -excl -nocrs
‘- nocrs’选项确保crsd进程和OCR不会从Oracle集群的其余部分启动。
检查crsd是否在运行,如果是使用root用户停止
# crsctl stop resource ora.crsd -init
5 . 如果想还原ocr到asm磁盘组,就需要事先创建一个同名的磁盘组并mount到本节点
如果不能正常mount磁盘组到本节点,执行如下命令
SQL> drop diskgroup disk_group_name force including contents;
如果想还原ocr到新路径下,使用root用户执行 ‘ocrconfig -repair -replace ’,保证所有节点对这个路径有权限。
6 . 通过root用户,使用ocr备份还原ocr
# ocrconfig -restore file_name
注意:1. 确保在OCR配置中指定的OCR设备是存在的,并且这些OCR设备是有效的
2.如果在Oracle ASM磁盘组中配置了OCR,则确保Oracle ASM磁盘组存在并mount。
7 . 验证ocr完整性
# ocrcheck
8 . 停止受限模式下的oracle集群
# crsctl stop crs -f
9 . 使用root用户在没有执行‘ocrconfig -restore’命令的所有节点上 执行 ‘ ocrconfig -repair -replace ’命令。
10 . 使用root用户启动oracle 集群
# crsctl start crs
11 . 通过运行以下的CVU命令,验证所有集群节点的OCR完整性
$ cluvfy comp ocr -n all -verbose
Restoring the Oracle Cluster Registry on Windows Systems
如果您在Oracle ASM磁盘组上存储OCR,并且该磁盘组是损坏的,那么您必须使用Oracle ASM实用程序恢复Oracle ASM磁盘组,然后在恢复OCR之前再次挂载磁盘组。按照以下程序运行的命令恢复OCR
1 .显示oracle集群节点
C:\>olsnodes
2 . 使用 Administrators停止oralce集群
C:\>crsctl stop crs
入股哟书面命令执行失败,也可以通过如下命令
C:\>crsctl stop crs -f
3 . 使用Administrators用户启动oracle集群到受限模式:
C:\>crsctl start crs -excl -nocrs
The -nocrs option ensures that the crsd process and OCR do not start with the rest of the Oracle Clusterware stack.
Ignore any errors that display.
4 . Restore OCR with the OCR backup file that you identified in “Listing Backup Files” by running the following command as a member of the Administrators group:
C:\>ocrconfig -restore file_name
5 . 验证 OCR完整性:
C:\>ocrcheck
6 . 停止受限模式的oracle集群:
C:\>crsctl stop crs -f
7 . 使用Administrators 账户启动oracle集群:
C:\>crsctl start crs
8 . 通过运行以下的CVU命令,验证所有集群节点的OCR完整性
C:\>cluvfy comp ocr -n all -verbose