Chinaunix首页 | 论坛 | 博客
  • 博客访问: 544912
  • 博文数量: 13
  • 博客积分: 1941
  • 博客等级: 上尉
  • 技术积分: 376
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-05 11:21
个人简介

Where there is a will there is a way

文章分类

全部博文(13)

文章存档

2013年(4)

2012年(9)

分类: Oracle

2012-03-27 23:27:38

可以分为以下4种: 
节点层:osnodes 
网络层:oifcfg 
集群层:crsctl, ocrcheck,ocrdump,ocrconfig 
应用层:srvctl,onsctl,crs_stat 
下面分别来介绍这些命令。

1、节点层
olsnodes,这个命令用来显示集群点列表,可用的参数如下:

$olsnodes -h

用法: olsnodes [-n] [-p][-i] [ | -l] [-g] [-v] 
-n打印节点编号和节点名 
-p打印专用互联名和节点名 
-i打印虚拟IP名和节点名 
打印指定节点的信息 
-l打印本地节点的信息 
-g启用事件记录 
-v在详细模式下运行

这些参数可以混合使用。 
[root@rac1 bin]#$olsnodes

racnode1

racnode2 
[root@rac1 bin]#olsnodes-n

racnode11

racnode22

注:若命令不能运行,添加path,或直接进入命令所在目录运行。本例位于:

/u01/crs/oracle/product/11.1.0/crs/bin

2、网络层
网络层由各个节点的网络组件组成,包括2个物理网卡和3个IP地址。也只有一个命令:oifcfg。

Oifcfg命令的格式如下:

用法: oifcfg iflist [-p [-n]] 
oifcfg setif {-node | -global} {/:}… 
oifcfg getif [-node | -global] [ -if [/] [-type ] ] 
oifcfg delif [-node | -global] [[/]] 
oifcfg [-help]

-为通信网络所知的主机名 
-系统中配置的接口的名称 
-接口的子网地址 
-接口类型{ cluster_interconnect | public | storage } 
Oifctg命令用来定义和修改Oracle集群需要的网卡属性,这些属性包括网卡的网段地址,子网掩码,接口类型等。要想正确的使用这个命令,必须先知道Oracle是如何定义网络接口的,Oracle的每个网络接口包括名称,网段地址,接口类型3个属性:interface_name/subnet:interface_type。

这些属性中没有IP地址,但接口类型有两种,public和private,前者说明接口用于外部通信,用于Oracle Net和VIP地址,而后者说明接口用于Interconnect。

接口的配置方式分为两类:

global和node-specific。前者说明集群所有节点的配置信息相同,也就是说所有节点的配置是对称的;而后者意味着这个节点的配置和其他节点配置不同,是非对称的。 
Iflist:显示网口列表 
Getif:获得单个网口信息 
Setif:配置单个网口 
Delif:删除网口 
[root@rac1 bin]# ./oifcfg -help

[root@rac1 bin]# ./oifcfg iflist 
[root@rac1 bin]# ./oifcfg getif 
–查看public类型的网卡 
[root@rac1 bin]# ./oifcfg getif -type public 
–删除接口配置 
[root@rac1 bin]# ./oifcfg delif–global 
–添加接口配置 
[root@rac1 bin]# ./oifcfg setif -global eth0/192.168.1.119:public 
[root@rac1 bin]# ./oifcfg setif -globaleth1/10.85.10.119:cluster_interconnect

3、集群层
集群层是指由Clusterware组成的核心集群, 这一层负责维护集群内的共享设备,并为应用集群提供完整的集群状态视图,应用集群依据这个视图进行调整。这一层共有4个命令:crsctl, ocrcheck,ocrdump,ocrconfig.后三个是针对OCR磁盘的。

3.1 Crsctl
Crsctl命令可以用来检查CRS进程栈,每个crs进程状态,管理Votedisk,跟踪CRS进程功能。 
[root@rac1 bin]# ./crsctl

3.1.1 检查crs状态
[root@rac1 bin]# ./crsctl check crs 
Cluster Synchronization Services appears healthy

Cluster Ready Services appears healthy

Event Manager appears healthy 
–检查单个状态 
[root@rac1 bin]# ./crsctl check cssd 
CSS appears healthy 
[root@rac1 bin]# ./crsctl check crsd 
CRS appears healthy 
[root@rac1 bin]# ./crsctl check evmd 
EVM appears healthy

3.1.2 配置crs栈是否自启动
CRS进程栈默认随着操作系统的启动而自启动,有时出于维护目的需要关闭这个特性,可以用root用户执行下面命令。 
[root@rac1 bin]# ./crsctl disable crs 
[root@rac1 bin]# ./crsctl enable crs 
这个命令实际是修改了/etc/oracle/scls_scr/raw/root/crsstart这个文件里的内容。

3.1.3 启动,停止crs栈
Oracle在10.1时,必须通过重新启动系统重启Clusterware,但是从Oracle 10.2开始,可以通过命令来启动和停止CRS。 
–启动CRS: 
[root@rac1 bin]# ./crsctl start crs

Attempting to start CRS stack 
The CRS stack will be started shortly 
–关闭CRS: 
[root@rac1 bin]# ./crsctl stop crs 
Stopping resources. 
Successfully stopped CRS resources 
Stopping CSSD. 
Shutting down CSS daemon. 
Shutdown request successfully issued.

3.1.4 查看votedisk磁盘位置
[root@rac1 bin]# ./crsctl query css votedisk

3.1.5 查看和修改crs参数
–查看参数:用get 
[root@rac1 bin]# ./crsctl get css misscount 
60 
–修改参数: 用set,但是这个功能要慎用 
[root@rac1 bin]# ./crsctl set css miscount 60

3.1.6 跟踪crs模块,提供辅助功能
CRS由CRS,CSS,EVM三个服务组成,每个服务又是由一系列module组成,crsctl允许对每个module进行跟踪,并把跟踪内容记录到日志中。 
[root@rac1 bin]# ./crsctl lsmodules css 
[root@rac1 bin]# ./crsctl lsmodules evm 
–跟踪CSSD模块,需要root用户执行: 
[root@rac1 bin]# ./crsctl debug log css "CSSD:1" 
Configuration parameter trace is now set to 1. 
Set CRSD Debug Module: CSSD Level: 1 
–查看跟踪日志 
[root@rac1 cssd]# pwd 
/u01/app/oracle/product/crs/log/rac1/cssd 
[root@rac1 cssd]# more ocssd.log 

3.1.7 维护votedisk
以图形方式安装Clusterware的过程中,在配置Votedisk时,如果选择External Redundancy策略,则只能填写一个Votedisk。但是即使使用External Redundancy作为冗余策略,也可以添加多个Vodedisk,只是必须通过crsctl命令来添加,添加多个Votedisk后,这些Votedisk互为镜像,可以防止Votedisk的单点故障。 
需要注意的是,Votedisk使用的是一种“多数可用算法”,如果有多个Votedisk,,则必须一半以上的Votedisk同时使用,Clusterware才能正常使用。 比如配置了4个Votedisk,坏一个Votedisk,集群可以正常工作,如果坏了2个,则不能满足半数以上,集群会立即宕掉,所有节点立即重启,所以如果添加Votedisk,尽量不要只添加一个,而应该添加2个。这点和OCR不一样。OCR只需配置一个。 
添加和删除Votedisk的操作比较危险,必须停止数据库,停止ASM,停止CRS Stack后操作,并且操作时必须使用-force参数。 
1) 查看当前配置 
[root@rac1 bin]# ./crsctl query css votedisk 
2) 停止所有节点的CRS: 
[root@rac1 bin]# ./crsctl stop crs 
3) 添加Votedisk 
[root@rac1 bin]# ./crsctl add css votedisk /dev/raw/rac1 -force 
注意:即使在CRS关闭后,也必须通过-force参数来添加和删除Votedisk,并且-force参数只有在CRS关闭的场合下使用才安全,否则会报:Cluter is not a ready state for online disk addition. 
4) 确认添加后的情况: 
[root@rac1 bin]# ./crsctl query css votedisk 
5) 启动CRS 
[root@rac1 bin]# ./crsctl start crs

3.2 ocr命令系列
Oracle Clusterware把整个集群的配置信息放在共享存储上,这个存储就是OCR Disk.在整个集群中,只有一个节点能对OCR Disk进行读写操作,这个节点叫作Master Node,所有节点都会在内存中保留一份OCR的拷贝,同时哟一个OCR Process从这个内存中读取内容。OCR内容发生改变时,由Master Node的OCR Process负责同步到其他节点的OCR Process。 
因为OCR的内容如此重要,Oracle每4个小时对其做一次备份,并且保留最后的3个备份,以及前一天,前一周的最后一个备份。这个备份由Master Node CRSD进程完成,备份的默认位置是$CRS_HOME\crs\cdata\目录下。每次备份后,备份文件名自动更改,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,DBA还应该在其他存储设备上保留一份,以防止意外的存储故障。

3.2.1 ocrdump
该命令能以ASCII的方式打印出OCR的内容,但是这个命令不能用作OCR的备份恢复,也就是说产生的文件只能用作阅读,而不能用于恢复。 
命令格式:ocrdump [-stdout] [filename] [-keyname name] [-xml] 
参数说明: 
-stdout:把内容打印输出到屏幕上 
Filename:内容输出到文件中 
-keyname:只打印某个键及其子健内容 
-xml:以xml格式打印输出

示例:把system.css键的内容以.xml格式打印输出到屏幕 
[root@rac1 bin]#./ocrdump -stdout -keyname system.css -xml|more 
…… 
这个命令在执行过程中,会在$CRS_HOME\log\\client目录下产生日志文件,文件名ocrdump_.log,如果命令执行出现问题,可以从这个日志查看问题原因。

3.2.2 ocrcheck
Ocrcheck命令用于检查OCR内容的一致性,命令执行过程会在$CRS_HOME\log\nodename\client目录下产生ocrcheck_pid.log日志文件。 这个命令不需要参数。 
[root@rac1 bin]#./ocrcheck

3.2.3 ocrconfig
该命令用于维护OCR磁盘,安装clusterware过程中,如果选择External Redundancy冗余方式,则只能输入一个OCR磁盘位置。但是Oracle允许配置两个OCR磁盘互为镜像,以防止OCR磁盘的单点故障。OCR磁盘和Votedisk磁盘不一样,OCR磁盘最多只能有两个,一个Primary OCR和一个Mirror OCR。 
[root@rac1 bin]# ./ocrconfig –help

–查看自助备份 
[root@rac1 bin]#./ocrconfig -showbackup 
在缺省情况下,OCR自动备份在$CRS_HOME\CRS\CDATA\cluster_name目录下,可以通过ocrconfig -backuploc 命令修改到新的目录

3.2.4 使用导出,导入进行备份和恢复
Oracle推荐在对集群做调整时,比如增加,删除节点之前,应该对OCR做一个备份,可以使用export备份到指定文件,如果做了replace或者restore等操作,Oracle建议使用cluvfy comp ocr -n all命令来做一次全面的检查。该命令在clusterware的安装软件里。 
1) 首先关闭所有节点的CRS 
[root@rac1 bin]#./crsctl stop crs 
2) 用root用户导出OCR内容

[root@rac1 bin]# ./ocrconfig -export /u01/ocr.exp

3) 重启CRS 
[root@rac1 bin]# ./crsctl start crs

4) 检查CRS状态 
[root@rac1 bin]# ./crsctl check crs 
CSS appears healthy 
CRS appears healthy 
EVM appears healthy

5)破坏OCR内容 
[root@rac1 bin]# dd if=/dev/zero f=/dev/raw/rac1 bs=1024 count=102400 
102400+0 records in 
102400+0 records out 
6) 检查OCR一致性 
[root@rac1 bin]# ./ocrcheck 
PROT-601: Failed to initialize ocrcheck

7)使用cluvfy工具检查一致性 
[root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all 
Verifying OCR integrity 
Unable to retrieve nodelist from Oracle clusterware. 
Verification cannot proceed. 
8) 使用Import恢复OCR内容 
[root@rac1 bin]# ./ocrconfig -import /u01/ocr.exp 
9)再次检查OCR 
[root@rac1 bin]# ./ocrcheck 
10) 使用cluvfy工具检查 
[root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all

3.2.5 移动ocr文件位置
实例演示将OCR从/dev/raw/rac1移动到/dev/raw/raw3上。 
1) 查看是否有OCR备份 
[root@rac1 bin]#./ocrconfig -showbackup 
如果没有备份,可以立即执行一次导出作为备份: 
[root@rac1 bin]#./ocrconfig -export /u01/ocrbackup -s online 
2) 查看当前OCR配置 
[root@rac1 bin]# ./ocrcheck 
3)添加一个Mirror OCR 
[root@rac1 bin]#./ocrconfig -replace ocrmirror /dev/raw/raw4 
4)确认添加成功 
[root@rac1 bin]#./ocrcheck

5)改变primary OCR位置 
[root@rac1 bin]#./ocrconfig -replace ocr /dev/raw/raw3 
确认修改成功: 
[root@rac1 bin]#./ocrcheck

6)使用ocrconfig命令修改后,所有RAC节点上的/etc/oracle/ocr.loc文件内容也会自动同步了,如果没有自动同步,可以手工的改成以下内容。 
[root@rac1 bin]#more /etc/oracle/ocr.loc 
ocrconfig_loc=/dev/raw/rac1 
Ocrmirrorconfig_loc=/dev/raw/raw3 
local_only=FALSE

4、应用层
应用层就是指RAC数据库了,这一层有若干资源组成,每个资源都是一个进程或者一组进程组成的完整服务,这一层的管理和维护都是围绕这些资源进行的。有如下命令:srvctl, onsctl, crs_stat三个命令。

4.1.1 crs_stat
Crs_stat这个命令用于查看CRS维护的所有资源的运行状态,如果不带任何参数时,显示所有资源的概要信息。每个资源显示是各个属性:资源名称,类型,目录,资源运行状态等。 
[root@rac1 bin]#./crs_stat 
…… 
也可以指定资源名,查看指定资源的状态,并可以使用-V和-P选项,以查看详细信息,其中-p参数显示的内容比-V更详细。 
1) 查看制定资源状态 
[root@rac1 bin]#./crs_stat ora.rac2.vip 
2) 使用-v选项,查看详细内容,这时输出多出4项内容,分别是允许重启次数,已执行重启次数,失败阀值,失败次数。 
[root@rac1 bin]#./crs_stat -v ora.rac2.vip 
3) 使用-p选项查看更详细内容 
[root@rac1 bin]#./crs_stat -p ora.rac2.vip

这些字段是所有资源共有的,但是根据资源类型不同,某些字段可以空值。 
4) 使用-ls选项,可以查看每个资源的权限定义,权限定义格式和Linux一样。 
[root@rac1 bin]#./crs_stat -ls

4.1.2 onsctl
这个命令用于管理配置ONS(Oracle Notification Service). ONS是Oracle Clusterware实现FAN Event Push模型的基础。在传统模型中,客户端需要定期检查服务器来判断服务端状态,本质上是一个pull模型,Oracle 10g引入了一个全新的PUSH机制–FAN(Fast Application Notification),当服务端发生某些事件时,服务器会主动的通知客户端这种变化,这样客户端就能尽早得知服务端的变化。而引入这种机制就是依赖ONS实现, 在使用onsctl命令之前,需要先配置ONS服务。

4.1.2.1 ons配置内容
在RAC环境中,需要使用$CRS_HOME下的ONS,而不是$ORACLE_HOME下面的ONS, 这点需要注意。 配置文件在$CRS_HOME\opmn\conf\ons.config. 
[root@rac1 conf]#pwd 
/u01/app/oracle/product/crs/opmn/conf 
[root@rac1 conf]# more ons.config 
参数说明: 
Localport:这个参数代表本地监听端口,这里本地特指:127.0.0.1这个回环地址,用来和运行在本地的客户端进行通信 
Remoteport:这个参数代表的是远程监听端口,也就是除了127.0.0.1以外的所有本地IP地址,用来和远程的客户端进行通信。 
Loglevel:Oracle允许跟踪ONS进程的运行,并把日志记录到本地文件中,这个参数用来定义ONS进程要记录的日志级别,从1-9,缺省值是3. 
Logfile:这个参数和loglevel参数一起使用,用于定义ONS进程日志文件的位置,缺省值是$CRS_HOME\opmn\logs\opmn.log 
nodes和useocr:这两个参数共同决定饿了本地的ONS daemon要和哪些远程节点上的ONS daemon进行通信。 
Nodes参数值格式如下:Hostname/IP:port[hostname/ip:port] 
如:useoce=off 
Nodes=rac1:6200,rac2:6200 
而useocr参数值为on/off,如果useocr是ON, 说明信息保存在OCR中,如果是OFF,说明信息取nodes中的配置。对于单实例而言,要把useocr设置为off。

4.1.2.2 配置ons
可以直接编译ONS的配置文件来修改配置,如果使用了OCR,则可以通过racgons命令进行配置,但必须以root用户来执行,如果用oracle用户来执行,不会提示任何错误,但也不会更改任何配置。 
若要添加配置,可以使用下面命令: 
Racgons add_config rac1:6200 rac2:6200 
若要删除配置,可以用下面命令: 
Racgons remove_config rac1:6200 rac2:6200

4.1.2.3 onsctl命令
使用onsctl命令可以启动,停止,调试ONS,并重新载入配置文件,其命令格式如下: 
[root@rac1 bin]#./onsctl 
ONS进程运行,并不一定代表ONS正常工作,需要使用ping命令来确认。 
1) 在OS级别查看进程状态。 
[root@rac1 bin]#ps -aef|grep ons 
2) 确认ONS服务的状态 
[root@rac1 bin]#./onsctl ping 
3) 启动ONS服务 
[root@rac1 bin]#./onsctl start

4)使用debug选项,可以查看详细信息,其中最有意义的就是能显示所有连接。 
[root@rac1 bin]#./onsctl debug 
[root@rac1 bin]#

4.1.3 srvctl
该命令是RAC维护中最常用的命令,也是最复杂的命令。 这个工具可以操作下面的几种资源:Database,Instance,ASM,Service,Listener和Node Application,其中Node application又包括GSD,ONS,VIP。 这些资源除了使用srvctl工具统一管理外,某些资源还有自己独立的管理工具,比如ONS可以使用onsctl命令进行管理;Listener可以通过lsnrctl管理。 
[root@rac1 bin]#./srvctl –help

4.1.3.1 使用config查看配置
1)查看数据库配置 
–不带任何参数时,显示OCR中注册的所有数据库 
[root@rac1 bin]#./srvctl config database 
–使用-d选项,查看某个数据库配置 
[root@rac1 bin]#./srvctl config database -d raw 
注: 该输出结果显示数据库raw由2个节点组成,各自实例名交rac1和rac2.两个实例的$ORACLE_HOME是/u01/app/oracle/product/10.2.0/db_1 
–使用-a选项查看配置的详细信息 
[root@rac1 bin]#./srvctl config database -d raw -a 
2)查看Node Application的配置 
–不带任何参数,返回节点名,实例名和$ORACLE_HOME 
[root@rac1 bin]#./srvctl config nodeapps -n rac1

–使用-a选项,查看VIP配置 
[root@rac1 bin]#./srvctl config nodeapps -n rac1 -a

–使用-g选项, 查看GSD: 
[root@rac1 bin]#./srvctl config nodeapps -n rac1 -g 
–使用-s选项,查看ONS: 
[root@rac1 bin]#./srvctl config nodeapps -n rac1 -s 
–使用-l选项,查看Listener: 
[root@rac1 bin]# ./srvctl config nodeapps -n rac1 -l 
Listener exists. 
3)查看Listener. 
[root@rac1 bin]#./srvctl config listener -n rac1 
[root@rac1 bin]#./srvctl config listener -n rac2 
4)查看ASM 
[root@rac1 bin]#./srvctl config asm -n rac1 
[root@rac1 bin]#./srvctl config asm -n rac2 
5) 查看Service 
–查看数据库所有service配置 
[root@rac1 bin]#./srvctl config service -d raw -a 
–查看某个Service配置 
[root@rac1 bin]#./srvctl config service -d raw -s dmm 
–使用-a选项,查看TAF策略 
[root@rac1 bin]#./srvctl config service -d raw -s dmm -a

4.1.3.2 使用add添加对象
一般情况下,应用层资源都是在图形界面的帮助下注册到OCR中的,比如VIP,ONS实在安装最后阶段创建的,而数据库,ASM是执行DBCA的过程中自动注册到OCR中的,Listener是通过netca工具。 但是有些时候需要手工把资源注册到OCR中。 这时候就需要add命令了。 
1) 添加数据库 
[root@rac1 bin]#./srvctl add database -d dmm -o $ORACLE_HOME 
2) 添加实例 
[root@rac1 bin]#./srvctl add instance -d dmm -n rac1 -i dmm1 
[root@rac1 bin]#./srvctl add instance -d dmm -n rac2 -i dmm2 
3)添加服务,需要使用4个参数 
-s :服务名 
-r:首选实例名 
-a:备选实例名 
-P:TAF策略,可选值为None(缺省值),Basic,preconnect。 
[root@rac1 bin]# ./srvctl add service -d dmm -s dmmservice -r rac1 -a rac2 -P BASIC 
4)确认添加成功 
[root@rac1 bin]# ./srvctl config service -d dmm -s dmmservice -a

4.1.3.3 使用enable/disable启动,禁用对象
缺省情况下数据库,实例,服务,ASM都是随着CRS的启动而自启动的,有时候由于维护的需要,可以先关闭这个特性。 
1)配置数据库随CRS的启动而自动启动 
–启用数据库的自启动: 
[root@rac1 bin]#./srvctl enable database -d raw 
–查看配置 
[root@rac1 bin]# ./srvctl config database -d raw -a 
–禁止数据库在CRS启动后自启动,这时需要手动启动 
[root@rac1 bin]# ./srvctl disable database -d raw 
2) 关闭某个实例的自动启动 
[root@rac1 bin]# ./srvctl disable instance -d raw -i rac1 
[root@rac1 bin]# ./srvctl enable instance -d raw -i rac1 
–查看信息 
[root@rac1 bin]# ./srvctl config database -d raw -a 
3)禁止某个服务在实例上运行 
[root@rac1 bin]# ./srvctl enable service -d raw -s rawservice -i rac1 
[root@rac1 bin]# ./srvctl disable service -d raw -s rawservice -i rac1 
–查看 
[root@rac1 bin]# ./srvctl config service -d raw -a 
dmm PREF: rac2 AVAIL: rac1 TAF: basic

4.1.3.4 使用remove删除对象
使用remove命令删除的是对象在OCR中的定义信息,对象本省比如数据库的数据文件等不会被删除,以后随时可以使用add命令重新添加到OCR中。 
1)删除Service,在删除之前,命令会给出确定提示 
[root@rac1 bin]# ./srvctl remove service -d raw -s rawservice 
2)删除实例,删除之前同样会给出提示 
[root@rac1 bin]# ./srvctl remove instance -d raw -i rac1 
3)删除数据库 
[root@rac1 bin]# ./srvctl remove database -d raw

4.1.3.5 启动,停止对象与查看对象
在RAC环境下启动,关闭数据库虽然仍然可以使用SQL/PLUS方法,但是更推荐使用srvctl命令来做这些工作,这可以保证即使更新CRS中运行信息,可以使用start/stop命令启动,停止对象,然后使用status命令查看对象状态。 
1) 启动数据库,默认启动到open状态 
[root@rac1 bin]# ./srvctl start database -d raw 
2) 指定启动状态 
[root@rac1 bin]# ./srvctl start database -d raw -i rac1 -o mount 
[root@rac1 bin]# ./srvctl start database -d raw -i rac1 -o nomount 
3) 关闭对象,并指定关闭方式 
[root@rac1 bin]# ./srvctl stop instance -d raw -i rac1 -o immediate 
[root@rac1 bin]# ./srvctl stop instance -d raw -i rac1 -o abort 
4) 在指定实例上启动服务: 
[root@rac1 bin]# ./srvctl start service -d raw -s rawservice -i rac1 
–查看服务状态 
[root@rac1 bin]# ./srvctl status service -d raw -v 
5) 关闭指定实例上的服务 
[root@rac1 bin]# ./srvctl stop service -d raw -s rawservice -i rac1 
–查看服务状态 
[root@rac1 bin]# ./srvctl status service -d raw -v

4.1.3.6 跟踪srcctl
在Oracle 10g中要跟踪srvctl非常简单,只要设置srvm_trace=true这个OS环境变量即可,这个命令的所有函数调用都会输出到屏幕上,可以帮助用户进行诊断。 
[root@rac1 bin]# export SRVM_TRACE=TRUE 
[root@rac1 bin]# ./srvctl config database -d raw

4.1.4 恢复
设OCR磁盘和Votedisk磁盘全部破坏,并且都没有备份,该如何恢复,这时最简单的方法就是重新初始话OCR和Votedisk, 具体操作如下:

1) 停止所有节点的Clusterware Stack

Crsctl stop crs;

2) 分别在每个节点用root用户执行$CRS_HOME\install\rootdelete.sh脚本

3) 在任意一个节点上用root用户执行$CRS_HOME\install\rootinstall.sh脚本

4) 在和上一步同一个节点上用root执行$CRS_HOME\root.sh脚本

5) 在其他节点用root执行行$CRS_HOME\root.sh脚本

6) 用netca命令重新配置监听,确认注册到Clusterware中

#crs_stat -t -v 
到目前为止,只有Listener,ONS,GSD,VIP注册到OCR中,还需要把ASM, 数据库都注册到OCR中。

l 向OCR中添加ASM

#srvctl add asm -n rac1 -i +ASM1 -o /u01/app/product/database 
#srvctl add asm -n rac2 -i +ASM2 -o /u01/app/product/database

l 启动ASM

#srvctl start asm -n rac1 
#srvctl start asm -n rac2 
若在启动时报ORA-27550错误。是因为RAC无法确定使用哪个网卡作为Private Interconnect,解决方法:在两个ASM的pfile文件里添加如下参数: 
+ASM1.cluster_interconnects=’10.85.10.119′ 
+ASM2.cluster_interconnects=’10.85.10.121′

l 手工向OCR中添加Database对象

#srvctl add database -d raw -o /u01/app/product/database

l 添加2个实例对象

#srvctl add instance -d raw -i rac1 -n rac1 
#srvctl add instance -d raw -i rac2 -n rac2

l 修改实例和ASM实例的依赖关系

#srvctl modify instance -d raw -i rac1 -s +ASM1 
#srvctl modify instance -d raw -i rac2 -s +ASM2

l 启动数据库

#srvctl start database-d raw 
若也出现ORA-27550错误。也是因为RAC无法确定使用哪个网卡作为Private Interconnect,修改pfile参数在重启动即可解决。 
SQL>alter system set cluster_interconnects=’10.85.10.119′ scope=spfile sid=’rac1′; 
SQL>alter system set cluster_interconnects=’10.85.10.121′ scope=spfile sid=’rac2′;
阅读(4675) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

马夹GG2012-03-28 22:49:53

恩,参数混合使用不错~