在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 集群(续)
本指南中的信息未经 Oracle 验证,且不受 Oracle 支持,您在使用时只能风险自负;本指南仅供教学使用。
21. 为集群安装 Oracle Grid Infrastructure
仅在集群的一个 Oracle RAC 节点 (racnode1) 上执行以下安装过程。Oracle Universal Installer 将把 Oracle Grid Infrastructure 软件(Oracle Clusterware 和自动存储管理)安装到集群中的两个 Oracle RAC 节点。
现在您已做好准备,可以开始安装环境的“网格”部分了,该部分包括 Oracle Clusterware 和自动存储管理。完成以下步骤,在集群中安装 Oracle Grid Infrastructure。
Help
典型安装与高级安装
g
- 典型安装 典型安装选项是简化的安装过程,只需进行最少的手动配置选择。这个新选项为用户(尤其是那些集群技术新手)提供了一个简化的集群安装过程。典型安装是让尽可能多的选项默认采用最佳实践的建议值。
- 高级安装 高级安装选项是一个高级过程,需要较高程度的系统知识。该安装选项使您可以进行特定的配置选择,包括额外的存储和网络选择、对基于角色的管理权限使用操作系统组身份验证、与 IPMI 集成,或使用细粒度指定自动存储管理角色。
由于本文将使用基于角色的管理权限和细粒度来指定自动存储管理角色,因此我们将使用“高级安装”选项。
配置 SCAN 而不使用 DNS
对于本文,尽管我说过将手动分配 IP 地址并使用 DNS 方法进行名称解析(这与 GNS 不同),实际上我不会在任何 DNS 服务器(或 GNS)中定义 SCAN。相反,我将只在每个 Oracle RAC 节点以及任何将连接到数据库集群的客户端的 hosts 文件 ( /etc/hosts) 中定义 SCAN 主机名和 IP 地址。尽管 Oracle 非常不鼓励这么做,并且强烈建议使用 GNS 或 DNS 解析方法,但我觉得对 DNS 的配置超出了本文的范围。本节将提供一种变通方法(这完全是一种非常规的方法),该方法使用 nslookup
只在 hosts 文件中而不在网格命名服务 (GNS) 或 DNS 中定义 SCAN 是一种无效配置,将导致 Oracle Grid Infrastructure 安装过程中运行的集群验证实用程序失败:

图 17:Oracle Grid Infrastructure/CVU 错误 —(配置 SCAN 而不使用 DNS)
|
[Next] 按钮继续进行 Oracle Grid Infrastructure 的安装。在文档 ID:887471.1(My Oracle Support 网站)中对此有记述。
root身份对 nslookup
nslookup 二进制文件重命名为 nslookup.original:
[root@racnode1 ~]# mv /usr/bin/nslookup /usr/bin/nslookup.original
/usr/bin/nslookup 的 shell 脚本,在该脚本中用 24.154.1.34 替换主 DNS,用 racnode-cluster-scan 替换 SCAN 主机名,用 192.168.1.187
|
nslookup
[root@racnode1 ~]# chmod 755 /usr/bin/nslookup
记住要在两个 Oracle RAC 节点上执行这些操作。
nslookup 脚本时,这个新的 nslookup shell 脚本只是回显您的 SCAN IP 地址,其他情况下则会调用原先的 nslookup
现在,在 Oracle Grid Infrastructure 的安装过程中,当 CVU 尝试验证您的 SCAN 时,它就会成功通过:
|
验证终端 Shell 环境
grid)登录到 racnode1。接下来,如果您使用远程客户端连接到将执行安装的 Oracle RAC 节点(从一个配置了 X 服务器的工作站通过 SSH 或 Telnet 连接到 racnode1),请根据使用 X 终端登录远程系统一节所述来验证您的 X11 显示服务器设置。
安装 Oracle Grid Infrastructure
grid
[grid@racnode1 ~]$ id uid=1100(grid) gid=1000(oinstall)
groups=1000(oinstall),1200(asmadmin),1201(asmdba),1202(asmoper)
[grid@racnode1 ~]$ DISPLAY=<your local workstation>:0.0
[grid@racnode1 ~]$ export DISPLAY
[grid@racnode1 ~]$ cd /home/grid/software/oracle/grid
[grid@racnode1 grid]$ ./runInstaller
屏幕名称 | 响应 | 屏幕截图 |
Select Installation Option | Install and Configure Grid Infrastructure for a Cluster |
|
Select Installation Type | Advanced Installation |
|
Select Product Languages | 为您的环境进行合适的选择。 |
|
Grid Plug and Play Information | 有关如何配置网格命名服务 (GNS) 的说明超出了本文的范围。取消选中“Configure GNS”选项。
单击 [Next] 之后,OUI 将尝试验证 SCAN 信息:
|
|
Cluster Node Information | 使用此屏幕将 racnode2 节点添加到集群中并配置 SSH 连接。
单击 Add 按钮,按下表添加 racnode2 及其虚拟 IP 名称 racnode2-vip:
接下来,单击 [SSH Connectivity] 按钮。输入 grid 用户的 OS Password,然后单击 [Setup] 按钮。这会启动 SSH Connectivity 配置过程:
SSH 配置过程成功完成后,确认该对话框。
单击 [Test] |
|
Specify Network Interface Usage |
|
|
Storage Option Information | Automatic Storage Management (ASM)。 |
|
Create ASM Disk Group |
|
|
Specify ASM Password | Use same passwords for these accounts。 |
|
Failure Isolation Support | Do not use Intelligent Platform Management Interface (IPMI)。 |
|
Privileged Operating System Groups | 本文通过任务角色划分配置来使用基于角色的管理权限和细粒度来指定自动存储管理角色。
进行所需更改以与下表中各值保持一致:
|
|
Specify Installation Location | $ORACLE_BASE) 和 Software Location ( $ORACLE_HOME): Oracle Base: /u01/app/grid Software Location: /u01/app/11.2.0/grid |
|
Create Inventory | 由于这是该主机上的第一次安装,您需要创建 Oracle 清单目录。使用 OUI 提供的默认值: Inventory Directory: /u01/app/oraInventory oraInventory Group Name: oinstall |
|
Prerequisite Checks |
从 Oracle Clusterware 11g 第 2 版 (11.2) 开始,如果任何检查失败,安装程序 (OUI) 将创建 shell 脚本程序(称为修复脚本)以解决许多不满足系统配置要求之问题。如果 OUI 检测到标记为“fixable”的不满足要求之任务,您可通过单击 [Fix & Check Again] 按钮生成修复脚本来轻松解决这一问题。
修复脚本是在安装期间生成的。安装程序将提示您以 root 身份在一个单独的终端会话中运行该脚本。当您运行该脚本时,它会将内核值提高到所需最小值,如有必要,会完成其他操作系统配置任务。
|
|
Summary | [Finish] |
|
Setup | 安装程序在两个 Oracle RAC 节点上执行 Oracle Grid Infrastructure 安装过程。 |
|
Execute Configuration scripts | /u01/app/oraInventory/orainstRoot.sh 和/u01/app/11.2.0/grid/root.sh 脚本。以 root 用户帐户在集群的两个 Oracle RAC 节点(从执行安装的节点开始)上打开一个新的控制台窗口。
在 RAC 集群的两个节点上运行 orainstRoot.sh 脚本:
在集群中两个 Oracle RAC 节点(从执行安装的节点开始)上的同一个新控制台窗口中,仍以 root 用户帐户登录。在 RAC 集群中的两个节点上运行 root.sh 脚本(从执行安装的节点开始,每次一个)。
root.sh 脚本的运行可能需要几分钟。在最后一个节点上运行root.sh 时,您将收到类似以下的输出,指示安装成功:
|
|
Configure Oracle Grid Infrastructure for a Cluster | [Next]然后单击 [Close] 退出 OUI。
如本节早前所述,如果只在 hosts 文件 ( /etc/hosts) 中配置 SCAN,而不在网格命名服务 (GNS) 中配置,也不使用 DNS 来手动配置,则该配置会被视为无效配置,这将导致集群验证实用程序失败。
如果 CVU 只报告了此错误,可放心忽略此检查并继续:单击 [Next]按钮然后单击 [Close] 按钮退出 OUI。在文档 ID:887471.1(My Oracle Support 网站)中对此有记述。
如果您只在 hosts 文件中定义 SCAN 但却想让 CVU 成功完成,不要在 OUI 中单击 [Next] 按钮来绕过该错误。相反,要按照配置 SCAN 而不使用 DNS 一节中的说明来修改 nslookup 实用程序。在完成该节所述步骤后,返回到 OUI 中,单击 [Retry] 按钮。现在 CVU 会成功完成,不报告错误了。单击 [Next],然后单击 [Close] |
|
Finish | [Close] |
|
Cluster Name | SCAN Name | SCAN Port |
racnode-cluster | racnode-cluster-scan | 1521 |
警告:安装完成后,不要在 Oracle Clusterware 还在运行时手动删除或通过运行相应 cron 作业来删除/tmp/.oracle 或 /var/tmp/.oracle
22. 集群的 Oracle Grid Infrastructure 的安装后任务
在集群中的两个 Oracle RAC 节点上执行以下安装后过程。
验证 Oracle Clusterware 安装
grid
检查 CRS 状态
[grid@racnode1 ~]$ crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online检查 Clusterware 资源
注:在 Oracle Clusterware 11g 第 2 版 (11.2) 中不再使用 crs_stat
[grid@racnode1 ~]$ crs_stat -t -v
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.CRS.dg ora....up.type 0/5 0/ ONLINE ONLINE racnode1
ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE racnode1
ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE racnode1
ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE racnode1
ora.eons ora.eons.type 0/3 0/ ONLINE ONLINE racnode1
ora.gsd ora.gsd.type 0/5 0/ OFFLINE OFFLINE
ora....network ora....rk.type 0/5 0/ ONLINE ONLINE racnode1
ora.oc4j ora.oc4j.type 0/5 0/0 OFFLINE OFFLINE
ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE racnode1
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE racnode1
ora....E1.lsnr application 0/5 0/0 ONLINE ONLINE racnode1
ora....de1.gsd application 0/5 0/0 OFFLINE OFFLINE
ora....de1.ons application 0/3 0/0 ONLINE ONLINE racnode1
ora....de1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE racnode1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE racnode2
ora....E2.lsnr application 0/5 0/0 ONLINE ONLINE racnode2
ora....de2.gsd application 0/5 0/0 OFFLINE OFFLINE
ora....de2.ons application 0/3 0/0 ONLINE ONLINE racnode2
ora....de2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE racnode2
ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE racnode1
ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE racnode1检查集群节点 [grid@racnode1 ~]$ olsnodes -n
racnode1 1
racnode2 2检查两个节点上的 Oracle TNS 监听器进程 [grid@racnode1 ~]$ ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' |
awk '{print $9}'
LISTENER_SCAN1
LISTENER
[grid@racnode2 ~]$ ps -ef | grep lsnr | grep -v 'grep' | grep -v 'ocfs' |
awk '{print $9}'
LISTENER确认针对 Oracle Clusterware 文件的 Oracle ASM 功能
如果在 Oracle ASM 上安装了 OCR 和表决磁盘文件,则以 Grid Infrastructure 安装所有者的身份,使用下面的命令语法来确认当前正在运行已安装的 Oracle ASM:
[grid@racnode1 ~]$ srvctl status asm -a
ASM is running on racnode1,racnode2
ASM is enabled.检查 Oracle 集群注册表 (OCR) [grid@racnode1 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 2404
Available space (kbytes) : 259716
ID : 1259866904
Device/File Name : +CRS
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user检查表决磁盘 [grid@racnode1 ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 4cbbd0de4c694f50bfd3857ebd8ad8c4 (ORCL:CRSVOL1) [CRS]
Located 1 voting disk(s).
注:要管理 Oracle ASM 或 Oracle Net 11g 第 2 版 (11.2) 或更高安装版本,请使用集群的 Oracle Grid Infrastructure 主目录(网格主目录)中的 srvctl 程序。当我们安装 Oracle Real Application Clusters(Oracle 数据库软件)时,不能使用数据库主目录下的 srvctl
表决磁盘管理
dd 命令备份表决磁盘。在 Oracle Clusterware 11.2 以及更高版本中,不再支持使用 dd
g
要了解更多有关管理表决磁盘、Oracle 集群注册表 (OCR) 和 Oracle 本地注册表 (OLR) 的信息,请参阅Oracle Clusterware 管理和部署指南 11g。
备份 root.sh 脚本
root.sh 脚本。如果您在同一 Oracle 主目录下安装其他产品,则安装程序在安装过程中会更新现有 root.sh 脚本的内容。如果您需要原先 root.sh 脚本中包含的信息,可通过 root.sh
root 身份在两个 Oracle RAC 节点上备份 root.sh
[root@racnode1 ~]# cd /u01/app/11.2.0/grid
[root@racnode1 grid]# cp root.sh root.sh.racnode1.AFTER_INSTALL_NOV-20-2009
[root@racnode2 ~]# cd /u01/app/11.2.0/grid
[root@racnode2 grid]# cp root.sh root.sh.racnode2.AFTER_INSTALL_NOV-20-2009
安装集群运行状况管理软件(可选)
Instantaneous Problem Detection OS Tool (IPD/OS)。编写本文时,我们使用的是 Oracle Enterprise Linux 5 Update 4,它使用 2.6.18 内核:
[root@racnode1 ~]# uname -a
Linux racnode1 2.6.18-164.el5 #1 SMP Thu Sep 3 04:15:13 EDT 2009
x86_64 x86_64 x86_64 GNU/Linux
OS Watcher and RACDDT,该软件可从 My Oracle Support 网站(以前的 Metalink)获取。
IPD/OS 工具用于检测和分析有关操作系统和集群资源的性能降低和故障的状况。对于运行 Oracle Clusterware、Oracle ASM 和 Oracle RAC 的集群中出现的许多问题(如节点逐出),该工具可给出更好的解释。该工具不断跟踪每个节点、进程和设备级的操作系统资源消耗情况。它收集并分析整个集群的数据。在实时模式下,达到阈值后,会向操作者显示警报。为了进行根本原因分析,可以重放历史数据以了解故障当时所发生的情况。
有关安装和配置 IPD/OS 工具的说明超出了本文范围,在此不对其进行讨论。您可在以下 URL 下载 IPD/OS 工具及随附的详细安装配置指南:
http://www.oracle.com/technetwork/cn/database/database11g/ipd-download-homepage-087562-zhs.html
23. 为数据和快速恢复区创建 ASM 磁盘组
以 grid 用户身份仅在集群中的一个节点 (racnode1) 上运行 ASM Configuration Assistant (asmca) 以创建其他的 ASM 磁盘组,这些磁盘组将用于创建集群化数据库。
+CRS
asmca) 再创建两个 ASM 磁盘组。稍后本指南在创建集群化数据库时将使用这些新的 ASM 磁盘组。
+RACDB_DATA,用于存储所有 Oracle 物理数据库文件(数据、联机重做日志、控制文件、存档重做日志)。另一个 ASM 磁盘组将用于名为 +FRA
验证终端 Shell 环境
grid)登录到 racnode1。接下来,如果您使用远程客户端连接到将执行安装的 Oracle RAC 节点(从一个配置了 X 服务器的工作站通过 SSH 或 Telnet 连接到 racnode1),请根据使用 X 终端登录远程系统一节所述来验证您的 X11 显示服务器设置。
使用 ASMCA 创建其他 ASM 磁盘组
grid
[grid@racnode1 ~]$ asmca &
24. 在 Oracle Real Application Clusters 中安装 Oracle Database 11g
仅在集群中的一个 Oracle RAC 节点 (racnode1) 上执行以下 Oracle Database 软件安装过程!Oracle Universal Installer 会通过 SSH 将 Oracle Database 软件安装到集群中的两个 Oracle RAC 节点。
racnode1) 上以 oracle
就本指南而言,我们在安装 Oracle Database 软件时将不使用“Create Database”选项。在本指南稍后,我们将在完成所有安装任务之后使用 Database Configuration Assistant (DBCA) 创建集群化数据库。
验证终端 Shell 环境
oracle)登录到 racnode1。接下来,如果您使用远程客户端连接到将执行安装的 Oracle RAC 节点(从一个配置了 X 服务器的工作站通过 SSH 或 Telnet 连接到 racnode1),请根据使用 X 终端登录远程系统一节所述来验证您的 X11 显示服务器设置。
安装 Oracle Database 11g
oracle
[oracle@racnode1 ~]$ id uid=1101(oracle)
gid=1000(oinstall)
groups=1000(oinstall),1201(asmdba),1300(dba),1301(oper)
[oracle@racnode1 ~]$ DISPLAY=<your local workstation>:0.0
[oracle@racnode1 ~]$ export DISPLAY
[oracle@racnode1 ~]$ cd /home/oracle/software/oracle/database
[oracle@racnode1 database]$ ./runInstaller
屏幕名称 | 响应 | 屏幕截图 |
Configure Security Updates | [Next] 按钮继续。出现警告对话框时(该对话框指示您尚未提供电子邮件地址),单击[Yes] |
|
Installation Option | Install database software only。 |
|
Grid Options | Real Application Clusters database installation 单选按钮(此为默认选择),确保选中 Node Name 窗口中的两个 Oracle RAC 节点。
接下来,单击 [SSH Connectivity] 按钮。输入 oracle 用户的 OS Password,然后单击 [Setup] 按钮。这会启动 SSH Connectivity 配置过程:
SSH 配置过程成功完成后,确认该对话框。
单击 [Test] |
|
Product Languages | 为您的环境进行合适的选择。 |
|
Database Edition | Enterprise Edition。 |
|
Installation Location | 指定 Oracle 基目录和软件位置 (Oracle_home),如下所示: Oracle Base:/u01/app/oracle Software Location:/u01/app/oracle/product/11.2.0/dbhome_1 |
|
Operating System Groups | 分别为 SYSDBA 和 SYSOPER 权限选择操作系统组: Database Administrator (OSDBA) Group: dba Database Operator (OSOPER) Group: oper |
|
Prerequisite Checks |
从 11g 第 2 版 (11.2) 开始,如果任何检查失败,安装程序 (OUI) 将创建 shell 脚本程序(称为修复脚本)以解决许多不满足系统配置要求的问题。如果 OUI 检测到标记为“fixable”的不满足要求之任务,您可通过单击 [Fix & Check Again] 按钮生成修复脚本来轻松解决这一问题。
修复脚本是在安装期间生成的。安装程序将提示您以 root 身份在一个单独的终端会话中运行该脚本。当您运行该脚本时,它会将内核值提高到所需最小值,如有必要,会完成其他操作系统配置任务。
|
|
Summary | [Finish] |
|
Install Product | 安装程序在两个 Oracle RAC 节点上执行 Oracle Database 软件安装过程。 |
|
Execute Configuration scripts | /u01/app/oracle/product/11.2.0/dbhome_1/root.sh 脚本。以 root 用户帐户在集群的两个 Oracle RAC 节点(从执行安装的节点开始)上打开一个新的控制台窗口。
在 RAC 集群的所有节点上运行 root.sh 脚本。
|
|
Finish | [Close] |
|
25. 安装 Oracle Database 11g
仅在集群中的一个 Oracle RAC 节点 (racnode1) 上执行以下 Oracle Database 11g
g 软件,您可以选择安装 Oracle Database 11g Examples。和 Oracle Database 软件的安装一样,以 oracle 用户身份只在集群的一个节点 ( racnode1) 上安装 Examples 软件。在安装过程中,OUI 会将二进制文件从此节点复制集群中的所有其他节点上。
验证终端 Shell 环境
oracle)登录到 racnode1。接下来,如果您使用远程客户端连接到将执行安装的 Oracle RAC 节点(从一个配置了 X 服务器的工作站通过 SSH 或 Telnet 连接到 racnode1),请根据使用 X 终端登录远程系统一节所述来验证您的 X11 显示服务器设置。
安装 Oracle Database 11g
oracle
[oracle@racnode1 ~]$ cd /home/oracle/software/oracle/examples
[oracle@racnode1 examples]$ ./runInstaller
26. 创建 Oracle 集群数据库
仅应在集群的一个 Oracle RAC 节点 (racnode1) 上执行数据库创建过程。
Database Configuration Assistant
$ORACLE_BASE/product/11.2.0/dbhome_1 环境正确设置了$ORACLE_HOME 和 $PATH 环境变量。第 13 节中讲述了如何在 oracle
在开始创建集群化数据库之前,还应确保现已安装的所有服务(Oracle TNS 监听器、Oracle Clusterware 进程等)正在运行。
[oracle@racnode1 ~]$ su - grid -c "crs_stat -t -v"
Password: *********
Name Type R/RA F/FT Target State Host
----------------------------------------------------------------------
ora.CRS.dg ora....up.type 0/5 0/ ONLINE ONLINE racnode1
ora.FRA.dg ora....up.type 0/5 0/ ONLINE ONLINE racnode1
ora....ER.lsnr ora....er.type 0/5 0/ ONLINE ONLINE racnode1
ora....N1.lsnr ora....er.type 0/5 0/0 ONLINE ONLINE racnode1
ora....DATA.dg ora....up.type 0/5 0/ ONLINE ONLINE racnode1
ora.asm ora.asm.type 0/5 0/ ONLINE ONLINE racnode1
ora.eons ora.eons.type 0/3 0/ ONLINE ONLINE racnode1
ora.gsd ora.gsd.type 0/5 0/ OFFLINE OFFLINE
ora....network ora....rk.type 0/5 0/ ONLINE ONLINE racnode1
ora.oc4j ora.oc4j.type 0/5 0/0 OFFLINE OFFLINE
ora.ons ora.ons.type 0/3 0/ ONLINE ONLINE racnode1
ora....SM1.asm application 0/5 0/0 ONLINE ONLINE racnode1
ora....E1.lsnr application 0/5 0/0 ONLINE ONLINE racnode1
ora....de1.gsd application 0/5 0/0 OFFLINE OFFLINE
ora....de1.ons application 0/3 0/0 ONLINE ONLINE racnode1
ora....de1.vip ora....t1.type 0/0 0/0 ONLINE ONLINE racnode1
ora....SM2.asm application 0/5 0/0 ONLINE ONLINE racnode2
ora....E2.lsnr application 0/5 0/0 ONLINE ONLINE racnode2
ora....de2.gsd application 0/5 0/0 OFFLINE OFFLINE
ora....de2.ons application 0/3 0/0 ONLINE ONLINE racnode2
ora....de2.vip ora....t1.type 0/0 0/0 ONLINE ONLINE racnode2
ora....ry.acfs ora....fs.type 0/5 0/ ONLINE ONLINE racnode1
ora.scan1.vip ora....ip.type 0/0 0/0 ONLINE ONLINE racnode1
验证终端 Shell 环境
oracle)登录到 racnode1。接下来,如果您使用远程客户端连接到将执行安装的 Oracle RAC 节点(从一个配置了 X 服务器的工作站通过 SSH 或 Telnet 连接到 racnode1),请根据使用 X 终端登录远程系统一节所述来验证您的 X11 显示服务器设置。
创建集群化数据库
oracle
[oracle@racnode1 ~]$ dbca &
完成 DBCA 后,您就启动了一个功能完善的 Oracle RAC 集群!
验证集群化数据库已开启
[oracle@racnode1 ~]$ su - grid -c "crsctl status resource -w
\"TYPE co 'ora'\" -t"
Password: *********
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
ONLINE ONLINE racnode1
ONLINE ONLINE racnode2
ora.FRA.dg
ONLINE ONLINE racnode1
ONLINE ONLINE racnode2
ora.LISTENER.lsnr
ONLINE ONLINE racnode1
ONLINE ONLINE racnode2
ora.RACDB_DATA.dg
ONLINE ONLINE racnode1
ONLINE ONLINE racnode2
ora.asm
ONLINE ONLINE racnode1 Started
ONLINE ONLINE racnode2 Started
ora.eons
ONLINE ONLINE racnode1
ONLINE ONLINE racnode2
ora.gsd
OFFLINE OFFLINE racnode1
OFFLINE OFFLINE racnode2
ora.net1.network
ONLINE ONLINE racnode1
ONLINE ONLINE racnode2
ora.ons
ONLINE ONLINE racnode1
ONLINE ONLINE racnode2
ora.registry.acfs
ONLINE ONLINE racnode1
ONLINE ONLINE racnode2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE racnode1
ora.oc4j
1 OFFLINE OFFLINE
ora.racdb.db
1 ONLINE ONLINE racnode1 Open
2 ONLINE ONLINE racnode2 Open
ora.racnode1.vip
1 ONLINE ONLINE racnode1
ora.racnode2.vip
1 ONLINE ONLINE racnode2
ora.scan1.vip
1 ONLINE ONLINE racnode1Oracle Enterprise Manager
如果您配置了 Oracle Enterprise Manager (Database Control),可以用它查看数据库的配置和当前状态。
[oracle@racnode1 ~]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.
https://racnode1:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is running.
------------------------------------------------------------------
Logs are generated in directory
/u01/app/oracle/product/11.2.0/dbhome_1/racnode1_racdb/sysman/log

图 18:Oracle Enterprise Manager —(数据库控制台)
27. 数据库创建后任务(可选)
为了增强可用性和数据库管理,本节提供几个可在新的 Oracle 11g
重新编译无效对象
utlrp.sql
[oracle@racnode1 ~]$ sqlplus / as sysdba
SQL> @?/rdbms/admin/utlrp.sql
在 RAC 环境中启用存档日志
联机重做日志文件中。在 Oracle RAC 环境中,每个实例将具有自己的联机重做日志文件集,称为线程。每个 Oracle 实例将以循环方式使用其联机重做日志组。一个联机重做日志填满之后,Oracle 将转至下一个联机重做日志。如果数据库处于“存档日志模式”,Oracle 将创建该联机重做日志的一个副本,然后再对其进行重用。一个线程至少必须包含两个联机重做日志(或联机重做日志组)。对于单个实例的配置也同样如此。单个实例至少必须包含两个联机重做日志(或联机重做日志组)。
联机重做日志文件的大小完全独立于另一个实例的重做日志大小。尽管在大多数配置中该大小是相同的,但是该大小可能会随每个节点的负载和备份/恢复注意事项而异。还值得一提的是,每个实例都具有对自己的联机重做日志文件的独占式写访问权限。但是在正确配置的 RAC 环境中,如果某个实例异常中断,每个实例都可以读取该实例的当前联机重做日志文件以执行实例恢复。因此,需要将联机重做日志置于一个共享存储设备上(就像数据库文件一样)。
如上文所述,Oracle 以循环方式写入其联机重做日志文件。当前的联机重做日志填满之后,Oracle 将转至下一个联机重做日志。为方便进行介质恢复,Oracle 允许 DBA 将数据库置于“存档日志模式”,以在联机重做日志填满后(并且得到重用之前)创建它的副本。该过程称为存档。
racdb1 实例的racnode1
- oracle 用户身份登录到一个节点(即 racnode1),通过在当前实例中将 cluster_database设置为 FALSE 来禁用集群实例参数:
[oracle@racnode1 ~]$ sqlplus / as sysdba
SQL> alter system set cluster_database=false scope=spfile sid='racdb1';
System altered.- oracle 用户身份关闭所有 访问集群化数据库的实例:
[oracle@racnode1 ~]$ srvctl stop database -d racdb- 挂载 数据库:
[oracle@racnode1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sat Nov 21 19:26:47 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2213896 bytes
Variable Size 1073743864 bytes
Database Buffers 570425344 bytes
Redo Buffers 7135232 bytesSQL> alter database archivelog;
Database altered.- cluster_database 修改为 TRUE,重新启用对集群的支持:
SQL> alter system set cluster_database=true scope=spfile sid='racdb1';
System altered.SQL> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.- oracle 帐户身份使用 srvctl 命令重启所有实例:
[oracle@racnode1 ~]$ srvctl start database -d racdb[oracle@racnode1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sat Nov 21 19:33:38 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 69
Next log sequence to archive 70
Current log sequence 70启用存档日志模式后,RAC 配置中的每个实例都可以自动存档重做日志!
下载并安装自定义 Oracle 数据库脚本
DBA 依赖 Oracle 的数据字典视图和动态性能视图以支持并更好地管理他们的数据库。尽管这些视图提供一个简单方便的机制来查询有关数据库的重要信息,但是拥有一个用于查询这些视图的准确、随时可用的 SQL 脚本集合是有帮助的。
在本节中,您将下载并安装 Oracle DBA 脚本集合,用于管理数据库的多个方面,包括空间管理、性能、备份、安全性和会话管理。可以使用以下链接http://www.idevelopment.info/data/Oracle/DBA_scripts/common.zip 下载 Oracle DBA 脚本存档。使用oracle 用户帐户将 common.zip 存档下载到集群中每个节点的 $ORACLE_BASE 目录。对于本文,将common.zip 存档复制到 /u01/app/oracle。接下来,将存档文件解压缩到 $ORACLE_BASE
oracle
[oracle@racnode1 ~]$ mv common.zip /u01/app/oracle
[oracle@racnode1 ~]$ cd /u01/app/oracle
[oracle@racnode1 ~]$ unzip common.zip最后一步是验证(或设置)当前 UNIX shell 相应的环境变量,以确保在任何目录中都可以从 SQL*Plus 内运行 Oracle SQL 脚本。对于 UNIX,验证以下环境变量已设置并包含在您的登录 shell 脚本中:
ORACLE_PATH=$ORACLE_BASE/common/oracle/sql:.:$ORACLE_HOME/rdbms/admin
export ORACLE_PATH注:ORACLE_PATH 环境变量应该已在 .bash_profile 登录脚本中设置,该登录脚本是在为 oracle 用户帐户创建登录脚本一节中创建的。
$ORACLE_PATH) 已设置为相应的目录,现在您登录到 SQL*Plus 后应该能够运行 $ORACLE_BASE/common/oracle/sql
SQL> @dba_tablespaces
Status Tablespace TS Type Ext. Seg. Tablespace Used Pct.
Name Mgt. Mgt. Size (in bytes) Used
------- ----------- ------------ ------ ------- ------------- ------------ -----
ONLINE SYSAUX PERMANENT LOCAL AUTO 629,145,600 511,967,232 81
ONLINE UNDOTBS1 UNDO LOCAL MANUAL 1,059,061,760 948,043,776 90
ONLINE USERS PERMANENT LOCAL AUTO 5,242,880 1,048,576 20
ONLINE SYSTEM PERMANENT LOCAL MANUAL 734,003,200 703,135,744 96
ONLINE EXAMPLE PERMANENT LOCAL AUTO 157,286,400 85,131,264 54
ONLINE UNDOTBS2 UNDO LOCAL MANUAL 209,715,200 20,840,448 10
ONLINE TEMP TEMPORARY LOCAL MANUAL 75,497,472 66,060,288 88
---------------- ---------------- ----
avg 63
sum 2,869,952,512 2,336,227,328
7 rows selected.help.sql
SQL> @help.sql
========================================
Automatic Shared Memory Management
========================================
asmm_components.sql
========================================
Automatic Storage Management
========================================
asm_alias.sql
asm_clients.sql
asm_diskgroups.sql
asm_disks.sql
asm_disks_perf.sql
asm_drop_files.sql
asm_files.sql
asm_files2.sql
asm_templates.sql
< --- SNIP --- >
perf_top_sql_by_buffer_gets.sql
perf_top_sql_by_disk_reads.sql
========================================
Workspace Manager
========================================
wm_create_workspace.sql
wm_disable_versioning.sql
wm_enable_versioning.sql
wm_freeze_workspace.sql
wm_get_workspace.sql
wm_goto_workspace.sql
wm_merge_workspace.sql
wm_refresh_workspace.sql
wm_remove_workspace.sql
wm_unfreeze_workspace.sql
wm_workspaces.sql
28. 创建/更改表空间
创建集群化数据库时,我们保留了所有表空间的默认大小设置。如果您将一个大型驱动器用作共享存储,则可能想创建一个大小可以调整的测试数据库。
以下是几个可为测试数据库修改和创建所有表空间的可选的 SQL 命令。请记住,此示例中使用的数据库文件名称(OMF 文件)可能与 Oracle Database Configuration Assistant (DBCA) 为您的环境创建的数据库文件名称不同。完成本节后,在适合的地方替换在您的环境中创建的数据文件名。可以使用以下查询确定环境中的文件名:
SQL> select tablespace_name, file_name
2 from dba_data_files
3 union
4 select tablespace_name, file_name
5 from dba_temp_files;
TABLESPACE_NAME FILE_NAME
--------------- --------------------------------------------------
EXAMPLE +RACDB_DATA/racdb/datafile/example.263.703530435
SYSAUX +RACDB_DATA/racdb/datafile/sysaux.260.703530411
SYSTEM +RACDB_DATA/racdb/datafile/system.259.703530397
TEMP +RACDB_DATA/racdb/tempfile/temp.262.703530429
UNDOTBS1 +RACDB_DATA/racdb/datafile/undotbs1.261.703530423
UNDOTBS2 +RACDB_DATA/racdb/datafile/undotbs2.264.703530441
USERS +RACDB_DATA/racdb/datafile/users.265.703530447
7 rows selected.
[oracle@racnode1 ~]$ sqlplus "/ as sysdba"
SQL> create user scott identified by tiger default tablespace users;
User created.
SQL> grant dba, resource, connect to scott;
Grant succeeded.
SQL> alter database datafile '+RACDB_DATA/racdb/datafile/users.265.703530447'
resize 1024m;
Database altered.
SQL> alter tablespace users add datafile '+RACDB_DATA' size 1024m autoextend off;
Tablespace altered.
SQL> create tablespace indx datafile '+RACDB_DATA' size 1024m
2 autoextend on next 100m maxsize unlimited
3 extent management local autoallocate
4 segment space management auto;
Tablespace created.
SQL> alter database datafile '+RACDB_DATA/racdb/datafile/system.259.703530397'
resize 1024m;
Database altered.
SQL> alter database datafile '+RACDB_DATA/racdb/datafile/sysaux.260.703530411'
resize 1024m;
Database altered.
SQL> alter database datafile '+RACDB_DATA/racdb/datafile/undotbs1.261.703530423'
resize 1024m;
Database altered.
SQL> alter database datafile '+RACDB_DATA/racdb/datafile/undotbs2.264.703530441'
resize 1024m;
Database altered.
SQL> alter database tempfile '+RACDB_DATA/racdb/tempfile/temp.262.703530429'
resize 1024m;
Database altered.以下是我为我的测试数据库环境定义的表空间快照:
Status Tablespace TS Type Ext. Seg. Tablespace Used Pct.
Name Mgt. Mgt. Size (in bytes) Used
------- ----------- ------------ ------ ------- ------------- ------------ -----
ONLINE SYSAUX PERMANENT LOCAL AUTO 1,073,741,824 512,098,304 48
ONLINE UNDOTBS1 UNDO LOCAL MANUAL 1,073,741,824 948,043,776 88
ONLINE USERS PERMANENT LOCAL AUTO 2,147,483,648 2,097,152 0
ONLINE SYSTEM PERMANENT LOCAL MANUAL 1,073,741,824 703,201,280 65
ONLINE EXAMPLE PERMANENT LOCAL AUTO 157,286,400 85,131,264 54
ONLINE INDX PERMANENT LOCAL AUTO 1,073,741,824 1,048,576 0
ONLINE UNDOTBS2 UNDO LOCAL MANUAL 1,073,741,824 20,840,448 2
ONLINE TEMP TEMPORARY LOCAL MANUAL 1,073,741,824 66,060,288 6
---------------- ---------------- ---------
avg 33
sum 8,747,220,992 2,338,521,088
8 rows selected.
29. 验证 Oracle Grid Infrastructure 和数据库配置
oracle 操作系统用户身份只从 racnode1
服务器控制实用程序 (SRVCTL) 来进行,并且这些检查可以作为 oracle 或grid
- 添加和删除节点级应用程序
- 设置和取消设置节点级应用程序的环境
- 管理节点应用程序
- 管理 ASM 实例
- 启动和停止一组包括虚拟 IP 地址、监听器、Oracle 通知服务和 Oracle Enterprise Manager 代理在内的程序(出于维护目的)。
Oracle 集群件控制
g 第 2 版 (11.2) 引进了可识别集群的
可以使用 CRSCTL 命令对 Oracle Clusterware 执行如下几个操作:
- 启动和停止 Oracle Clusterware 资源
- 启用和禁用 Oracle Clusterware 后台程序
- 检查集群的运行状况
- 管理代表第三方应用程序的资源
- 将 Intelligent Platform Management Interface (IPMI) 与 Oracle Clusterware 集成,提供故障隔离支持并确保集群完整性
- 调试 Oracle Clusterware 组件
就本文(本节)而言,我们只执行“检查集群的运行状况”这一操作,将通过集群化的(可识别集群的)命令来执行该操作:
crsctl check cluster
g
- crs_stat
- crs_register
- crs_unregister
- crs_start
- crs_stop
- crs_getperm
- crs_profile
- crs_relocate
- crs_setperm
- crsctl check crsd
- crsctl check cssd
- crsctl check evmd
- crsctl debug log
- crsctl set css votedisk
- crsctl start resources
- crsctl stop resources
检查集群的运行状况 —(集群化命令)
grid 用户身份运行以下命令。 [grid@racnode1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
所有 Oracle 实例 —(数据库状态)
[oracle@racnode1 ~]$ srvctl status database -d racdb
Instance racdb1 is running on node racnode1
Instance racdb2 is running on node racnode2
单个 Oracle 实例 —(特定实例的状态)
[oracle@racnode1 ~]$ srvctl status instance -d racdb -i racdb1
Instance racdb1 is running on node racnode1
节点应用程序 —(状态)
[oracle@racnode1 ~]$ srvctl status nodeapps
VIP racnode1-vip is enabled
VIP racnode1-vip is running on node: racnode1
VIP racnode2-vip is enabled VIP racnode2-vip is running on node: racnode2
Network is enabled Network is running on node: racnode1
Network is running on node: racnode2 GSD is disabled
GSD is not running on node: racnode1
GSD is not running on node: racnode2
ONS is enabled
ONS daemon is running on node: racnode1
ONS daemon is running on node: racnode2
eONS is enabled eONS daemon is running on node: racnode1
eONS daemon is running on node: racnode2
节点应用程序 —(配置)
[oracle@racnode1 ~]$ srvctl config nodeapps
VIP exists.:racnode1 VIP exists.: /racnode1-vip/192.168.1.251/255.255.255.0/eth0
VIP exists.:racnode2
VIP exists.: /racnode2-vip/192.168.1.252/255.255.255.0/eth0
GSD exists.
ONS daemon exists. Local port 6100, remote port 6200
eONS daemon exists. Multicast port 24057, multicast IP address 234.194.43.168,
listening port 2016
列出配置的所有数据库
[oracle@racnode1 ~]$ srvctl config database racdb
数据库 —(配置)
[oracle@racnode1 ~]$ srvctl config database -d racdb -a
Database unique name: racdb
Database name: racdb
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +RACDB_DATA/racdb/spfileracdb.ora
Domain: idevelopment.info
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: racdb
Database instances: racdb1,racdb2
Disk Groups: RACDB_DATA,FRA
Services:
Database is enabled
Database is administrator managed
ASM —(状态)
[oracle@racnode1 ~]$ srvctl status asm
ASM is running on racnode1,racnode2
ASM —(配置)
$ srvctl config asm -a
ASM home: /u01/app/11.2.0/grid
ASM listener: LISTENER
ASM is enabled.
TNS 监听器 —(状态)
[oracle@racnode1 ~]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): racnode1,racnode2
TNS 监听器 —(配置)
[oracle@racnode1 ~]$ srvctl config listener -a
Name: LISTENER
Network: 1, Owner: grid
Home: <crs>
/u01/app/11.2.0/grid on node(s) racnode2,racnode1
End points: TCP:1521
SCAN —(状态)
[oracle@racnode1 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node racnode1
SCAN —(配置)
[oracle@racnode1 ~]$ srvctl config scan
SCAN name: racnode-cluster-scan, Network: 1/192.168.1.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /racnode-cluster-scan/192.168.1.187
VIP —(特定节点的状态)
[oracle@racnode1 ~]$ srvctl status vip -n racnode1
VIP racnode1-vip is enabled
VIP racnode1-vip is running on node: racnode1
[oracle@racnode1 ~]$ srvctl status vip -n racnode2
VIP racnode2-vip is enabled
VIP racnode2-vip is running on node: racnode2
VIP —(特定节点的配置)
[oracle@racnode1 ~]$ srvctl config vip -n racnode1
VIP exists.:racnode1
VIP exists.: /racnode1-vip/192.168.1.251/255.255.255.0/eth0
[oracle@racnode1 ~]$ srvctl config vip -n racnode2
VIP exists.:racnode2
VIP exists.: /racnode2-vip/192.168.1.252/255.255.255.0/eth0
节点应用程序配置 —(VIP、GSD、ONS、监听器)
[oracle@racnode1 ~]$ srvctl config nodeapps -a -g -s -l
-l option has been deprecated and will be ignored.
VIP exists.:racnode1
VIP exists.: /racnode1-vip/192.168.1.251/255.255.255.0/eth0
VIP exists.:racnode2
VIP exists.: /racnode2-vip/192.168.1.252/255.255.255.0/eth0
GSD exists.
ONS daemon exists. Local port 6100, remote port 6200
Name: LISTENER
Network: 1, Owner: grid
Home: <crs>
/u01/app/11.2.0/grid on node(s) racnode2,racnode1
End points: TCP:1521
验证所有集群节点间的时钟同步
[oracle@racnode1 ~]$ cluvfy comp clocksync -verbose
Verifying Clock Synchronization across the cluster nodes
Checking if Clusterware is installed on all nodes...
Check of Clusterware install passed
Checking if CTSS Resource is running on all nodes...
Check: CTSS Resource running on all nodes
Node Name Status
------------------------------------ ------------------------
racnode1 passed
Result: CTSS resource check passed
Querying CTSS for time offset on all nodes...
Result: Query of CTSS for time offset passed
Check CTSS state started...
Check: CTSS state
Node Name State
------------------------------------ ------------------------
racnode1 Active
CTSS is in Active state. Proceeding with check of clock time offsets on all nodes...
Reference Time Offset Limit: 1000.0 msecs
Check: Reference Time Offset
Node Name Time Offset Status
------------ ------------------------ ------------------------
racnode1 0.0 passed
Time offset is within the specified limits on the following set of nodes: "[racnode1]"
Result: Check of clock time offsets passed
Oracle Cluster Time Synchronization Services check passed
Verification of Clock Synchronization across the cluster nodes was successful.
集群中所有正在运行的实例 — (SQL)
SELECT
inst_id
, instance_number inst_no
, instance_name inst_name
, parallel
, status
, database_status db_status
, active_state state
, host_name host
FROM gv$instance
ORDER BY inst_id;
INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST
-------- -------- ---------- --- ------- ------------ --------- -------
1 1 racdb1 YES OPEN ACTIVE NORMAL racnode1
2 2 racdb2 YES OPEN ACTIVE NORMAL racnode2
所有数据库文件及它们所在的 ASM 磁盘组 — (SQL)
select name from v$datafile
union
select member from v$logfile
union
select name from v$controlfile
union
select name from v$tempfile;
NAME
-------------------------------------------
+FRA/racdb/controlfile/current.256.703530389
+FRA/racdb/onlinelog/group_1.257.703530391
+FRA/racdb/onlinelog/group_2.258.703530393
+FRA/racdb/onlinelog/group_3.259.703533497
+FRA/racdb/onlinelog/group_4.260.703533499
+RACDB_DATA/racdb/controlfile/current.256.703530389
+RACDB_DATA/racdb/datafile/example.263.703530435
+RACDB_DATA/racdb/datafile/indx.270.703542993
+RACDB_DATA/racdb/datafile/sysaux.260.703530411
+RACDB_DATA/racdb/datafile/system.259.703530397
+RACDB_DATA/racdb/datafile/undotbs1.261.703530423
+RACDB_DATA/racdb/datafile/undotbs2.264.703530441
+RACDB_DATA/racdb/datafile/users.265.703530447
+RACDB_DATA/racdb/datafile/users.269.703542943
+RACDB_DATA/racdb/onlinelog/group_1.257.703530391
+RACDB_DATA/racdb/onlinelog/group_2.258.703530393
+RACDB_DATA/racdb/onlinelog/group_3.266.703533497
+RACDB_DATA/racdb/onlinelog/group_4.267.703533499
+RACDB_DATA/racdb/tempfile/temp.262.703530429
19 rows selected.
ASM 磁盘卷 — (SQL)
SELECT path
FROM v$asm_disk;
PATH
----------------------------------
ORCL:CRSVOL1
ORCL:DATAVOL1
ORCL:FRAVOL1
30. 启动/停止集群
g 第 2 版进行了所有安装和配置。Oracle Grid Infrastructure 已由 grid 用户安装,Oracle RAC 软件已由 oracle 用户安装。一个名为 racdb
完成所有这些艰巨任务之后,您可能会问:“那么我怎样来启动和停止服务?”。如果您遵循了本指南中的说明,则所有服务(包括 Oracle Clusterware、ASM、网络、SCAN、VIP、Oracle Database 等)应在 Linux 节点每次重新引导时自动启动。
racnode1) 上停止和启动 Oracle Clusterware 系统提供所需命令。
root
在本地服务器上停止 Oracle Clusterware 系统
racnode1 节点上使用 crsctl stop cluster
[root@racnode1 ~]# /u01/app/11.2.0/grid/bin/crsctl stop cluster
CRS-2673: Attempting to stop 'ora.crsd' on 'racnode1'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on
'racnode1'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'racnode1'
CRS-2673: Attempting to stop 'ora.CRS.dg' on 'racnode1'
CRS-2673: Attempting to stop 'ora.racdb.db' on 'racnode1'
CRS-2673: Attempting to stop 'ora.registry.acfs' on 'racnode1'
CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'racnode1'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.racnode1.vip' on 'racnode1'
CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.scan1.vip' on 'racnode1'
CRS-2677: Stop of 'ora.scan1.vip' on 'racnode1' succeeded
CRS-2672: Attempting to start 'ora.scan1.vip' on 'racnode2'
CRS-2677: Stop of 'ora.racnode1.vip' on 'racnode1' succeeded
CRS-2672: Attempting to start 'ora.racnode1.vip' on 'racnode2'
CRS-2677: Stop of 'ora.registry.acfs' on 'racnode1' succeeded
CRS-2676: Start of 'ora.racnode1.vip' on 'racnode2' succeeded
<-- Notice racnode1 VIP moved to racnode2
CRS-2676: Start of 'ora.scan1.vip' on 'racnode2' succeeded
<-- Notice SCAN moved to racnode2
CRS-2672: Attempting to start 'ora.LISTENER_SCAN1.lsnr' on 'racnode2'
CRS-2676: Start of 'ora.LISTENER_SCAN1.lsnr' on 'racnode2' succeeded
<-- Notice LISTENER_SCAN1 moved to racnode2
CRS-2677: Stop of 'ora.CRS.dg' on 'racnode1' succeeded
CRS-2677: Stop of 'ora.racdb.db' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.FRA.dg' on 'racnode1'
CRS-2673: Attempting to stop 'ora.RACDB_DATA.dg' on 'racnode1'
CRS-2677: Stop of 'ora.RACDB_DATA.dg' on 'racnode1' succeeded
CRS-2677: Stop of 'ora.FRA.dg' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'racnode1'
CRS-2677: Stop of 'ora.asm' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.ons' on 'racnode1'
CRS-2673: Attempting to stop 'ora.eons' on 'racnode1'
CRS-2677: Stop of 'ora.ons' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.net1.network' on 'racnode1'
CRS-2677: Stop of 'ora.net1.network' on 'racnode1' succeeded
CRS-2677: Stop of 'ora.eons' on 'racnode1' succeeded
CRS-2792: Shutdown of Cluster Ready Services-managed resources on 'racnode1' has
completed
CRS-2677: Stop of 'ora.crsd' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.cssdmonitor' on 'racnode1'
CRS-2673: Attempting to stop 'ora.ctssd' on 'racnode1'
CRS-2673: Attempting to stop 'ora.evmd' on 'racnode1'
CRS-2673: Attempting to stop 'ora.asm' on 'racnode1'
CRS-2677: Stop of 'ora.cssdmonitor' on 'racnode1' succeeded
CRS-2677: Stop of 'ora.evmd' on 'racnode1' succeeded
CRS-2677: Stop of 'ora.ctssd' on 'racnode1' succeeded
CRS-2677: Stop of 'ora.asm' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'racnode1'
CRS-2677: Stop of 'ora.cssd' on 'racnode1' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'racnode1'
CRS-2677: Stop of 'ora.diskmon' on 'racnode1' succeeded
注:在运行“ crsctl stop cluster”命令之后,如果 Oracle Clusterware 管理的资源中有任何一个还在运行,则整个命令失败。使用 -f
-all 选项在集群中所有服务器上停止 Oracle Clusterware 系统。以下命令将在racnode1 和 racnode2
[root@racnode1 ~]# /u01/app/11.2.0/grid/bin/crsctl stop cluster -all
在本地服务器上启动 Oracle Clusterware 系统
racnode1 节点上使用 crsctl start cluster
[root@racnode1 ~]# /u01/app/11.2.0/grid/bin/crsctl start cluster
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'racnode1'
CRS-2676: Start of 'ora.cssdmonitor' on 'racnode1' succeeded
CRS-2672: Attempting to start 'ora.cssd' on 'racnode1'
CRS-2672: Attempting to start 'ora.diskmon' on 'racnode1'
CRS-2676: Start of 'ora.diskmon' on 'racnode1' succeeded
CRS-2676: Start of 'ora.cssd' on 'racnode1' succeeded
CRS-2672: Attempting to start 'ora.ctssd' on 'racnode1'
CRS-2676: Start of 'ora.ctssd' on 'racnode1' succeeded
CRS-2672: Attempting to start 'ora.evmd' on 'racnode1'
CRS-2672: Attempting to start 'ora.asm' on 'racnode1'
CRS-2676: Start of 'ora.evmd' on 'racnode1' succeeded
CRS-2676: Start of 'ora.asm' on 'racnode1' succeeded
CRS-2672: Attempting to start 'ora.crsd' on 'racnode1'
CRS-2676: Start of 'ora.crsd' on 'racnode1' succeeded
注:可通过指定 -all
[root@racnode1 ~]# /u01/app/11.2.0/grid/bin/crsctl start cluster -all
还可以通过列出服务器(各服务器之间以空格分隔)在集群中一个或多个指定的服务器上启动 Oracle Clusterware 系统:
[root@racnode1 ~]# /u01/app/11.2.0/grid/bin/crsctl start cluster -n
racnode1 racnode2
使用 SRVCTL 启动/停止所有实例
最后,可使用以下命令来启动/停止所有实例及相关服务:
[oracle@racnode1 ~]$ srvctl stop database -d racdb
[oracle@racnode1 ~]$ srvctl start database -d racdb
31. 故障排除
确保 RAC 节点名没有出现在环回地址中
/etc/hosts 文件的环回地址中不包含节点名(racnode1 或 racnode2)。如果计算名出现在环回地址条目中,如下所示:
127.0.0.1 racnode1 localhost.localdomain localhost 需要按如下所示将其删除: 127.0.0.1 localhost.localdomain localhost
如果 RAC 节点名出现在环回地址中,在 RAC 安装过程中会收到以下错误消息:
ORA-00603: ORACLE server session terminated by fatal error 或者 ORA-29702: error occurred in Cluster Group Service operation
Openfiler — 逻辑卷在引导时未激活
/var/log/messages—(也可通过 dmesg
iSCSI Enterprise Target Software - version 0.4.14
iotype_init(91) register fileio
iotype_init(91) register blockio
iotype_init(91) register nullio
open_path(120) Can't open /dev/rac1/crs -2
fileio_attach(268) -2
open_path(120) Can't open /dev/rac1/asm1 -2
fileio_attach(268) -2
open_path(120) Can't open /dev/rac1/asm2 -2
fileio_attach(268) -2
open_path(120) Can't open /dev/rac1/asm3 -2
fileio_attach(268) -2
open_path(120) Can't open /dev/rac1/asm4 -2
fileio_attach(268) -2请注意,我不是说只有与 Openfiler 服务器连接的 USB 驱动器才会出现该问题。其他类型的驱动器也可能会出现该问题,但是,我只看到了 USB 驱动器出现了该问题!
lvscan
# lvscan
inactive '/dev/rac1/crs' [2.00 GB] inherit
inactive '/dev/rac1/asm1' [115.94 GB] inherit
inactive '/dev/rac1/asm2' [115.94 GB] inherit
inactive '/dev/rac1/asm3' [115.94 GB] inherit
inactive '/dev/rac1/asm4' [115.94 GB] inheritinactive —(工作系统上每个逻辑卷的状态应设置为 ACTIVE)。
目前,我知道有两种方法可以让 Openfiler 在重新引导时自动加载逻辑卷,下面将说明这两种方法。
方法 1
racnode1 和 racnode2。然后,在 Openfiler 服 务器中,针对每个后续的重新引导,手动将每个逻辑卷设置为 ACTIVE:
# lvchange -a y /dev/rac1/crs
# lvchange -a y /dev/rac1/asm1
# lvchange -a y /dev/rac1/asm2
# lvchange -a y /dev/rac1/asm3
# lvchange -a y /dev/rac1/asm4也可以使用卷组更改命令将所有逻辑卷的状态设置为 active,如下所示:
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "rac1" using metadata type lvm2
# vgchange -ay
5 logical volume(s) in volume group "rac1" now activelvscan
# lvscan
ACTIVE '/dev/rac1/crs' [2.00 GB] inherit
ACTIVE '/dev/rac1/asm1' [115.94 GB] inherit
ACTIVE '/dev/rac1/asm2' [115.94 GB] inherit
ACTIVE '/dev/rac1/asm3' [115.94 GB] inherit
ACTIVE '/dev/rac1/asm4' [115.94 GB] inherit作为最后的测试,重新引导 Openfiler 服务器以确保引导过程之后每个逻辑卷会设置为 ACTIVE。验证在引导时会激活每个逻辑卷之后,检查 iSCSI 目标服务是否正在运行:
# service iscsi-target status
ietd (pid 2668) is running...racnode1 和 racnode2)。
方法 2
该方法由 Martin Jones 友情提供。他的变通方法包括修改 /etc/rc.sysinit 脚本,主要是等待 USB 磁盘(在本例中为 /dev/sda)得到检测。对 /etc/rc.sysinit
/etc/rc.sysinit 脚本的一小部分,其中包含 Martin 建议的更改(用 蓝色高亮显示):
..............................................................
# LVM2 initialization, take 2
if [ -c /dev/mapper/control ]; then
if [ -x /sbin/multipath.static ]; then
modprobe dm-multipath >/dev/null 2>&1
/sbin/multipath.static -v 0
if [ -x /sbin/kpartx ]; then
/sbin/dmsetup ls --target multipath --exec
"/sbin/kpartx -a"
fi
fi
if [ -x /sbin/dmraid ]; then
modprobe dm-mirror > /dev/null 2>&1
/sbin/dmraid -i -a y
fi
#-----
#----- MJONES - Customisation Start
#-----
# Check if /dev/sda is ready
while [ ! -e /dev/sda ]
do
echo "Device /dev/sda for first USB Drive is not yet ready."
echo "Waiting..."
sleep 5
done
echo "INFO - Device /dev/sda for first USB Drive is ready."
#-----
#----- MJONES - Customisation END
#-----
if [ -x /sbin/lvm.static ]; then
if /sbin/lvm.static vgscan > /dev/null 2>&1 ; then
action $"Setting up Logical Volume
Management:" /sbin/lvm.static vgscan --mknodes --ignorelockingfailure &&
/sbin/lvm.static vgchange -a y --ignorelockingfailure
fi
fi
fi
# Clean up SELinux labels
if [ -n "$SELINUX" ]; then
for file in /etc/mtab /etc/ld.so.cache ; do
[ -r $file ] && restorecon $file >/dev/null 2>&1
done
fi
..............................................................racnode1 和 racnode2)。
32. 总结
g RAC 允许 DBA 配置一个拥有优越的容错和负载平衡功能的数据库解决方案。然而,对于那些希望深入了解 Oracle11g
g 第 2 版 RAC 集群。本文介绍的 RAC 解决方案总共需要大约 2,700 美元,可以为 DBA 提供一个功能完善的 Oracle 11g
33. 致谢
像这样篇幅和复杂程度的文章通常并非出自一人之手。尽管本人能够记述构成此配置的组件并成功演示这些组件的有效性,但我要感谢其他几个帮助我成功编写本文的人。
首先,我要感谢来自 Oracle 的 Server BDE 团队的 Bane Radulovic。Bane 不仅向我介绍了 Openfiler,还与我共享了他对于该产品以及如何针对 Oracle RAC 充分利用该产品的经验和知识。他的研究和辛苦工作使得配置 Openfiler 的任务得以圆满完成。Bane 还参与了硬件建议和测试工作。
特别感谢 K Gopalakrishnan 的帮助,他提供了本文的 Oracle RAC 11g一节。本节中有关 Oracle RAC 历史的很多内容可以在他的畅销书《Oracle Database 10g》中找到。此书受到希望成功实施 Oracle RAC 以及完全理解缓存融合 和全局资源目录
最后,我想表达对以下供应商的感谢,他们慷慨地为本文提供了硬件:Seagate、Avocent Corporation和 Intel。
Jeffrey M. Hunter [www.idevelopment.info] 是一位 Oracle 认证专家、Java 开发认证专家、作者和Oracle ACE。Jeff 当前作为高级数据库管理员就职于宾夕法尼亚州匹兹堡市的 The DBA Zone, Inc.。
Jeff 的工作包括高级性能调优、Java 和 PL/SQL 编程、容量规划、数据库安全性以及 UNIX、Linux 和 Windows 服务器环境中的物理/逻辑数据库设计。Jeff 的其他兴趣还包括数学加密理论、Java 和 C 的编程语言处理器(编译器和解释器)、LDAP、编写基于 Web 的数据库管理工具,当然还有 Linux。
Jeff 作为高级数据库管理员和软件工程师拥有 16 年以上的工作经验,他的个人网站是:http://www.iDevelopment.info。Jeff 毕业于位于特洛克的加利福尼亚州立大学的 Stanislaus 分校,获得了计算机科学学士学位。




















