本文转载自:

https://blog.csdn.net/tianlesoftware/article/details/5358573

Oracle RAC日常基本维护命令

好文转载,

Oracle 的管理可以通过OEM或者命令行接口。 Oracle Clusterware的命令集可以分为以下4种:
节点层:osnodes
网络层:oifcfg
集群层:crsctl, ocrcheck,ocrdump,ocrconfig
应用层:srvctl,onsctl,crs_stat

一. 节点层

只有一个命令: osnodes, 这个命令用来显示集群点列表,可用的参数如下,这些参数可以混合使用。
[root@rac1 ~]# cd /u01/app/11.2.0/grid/bin/
[root@rac1 bin]# ./olsnodes --help
Usage: olsnodes [ [-n] [-i] [-s] [-t] [<node> | -l [-p]] | [-c] ] [-g] [-v]
where
-n print node number with the node name
-p print private interconnect address for the local node
-i print virtual IP address with the node name
<node> print information for the specified node
-l print information for the local node
-s print node status - active or inactive
-t print node type - pinned or unpinned
-g turn on logging
-v Run in debug mode; use at direction of Oracle Support only.
-c print clusterware name
[root@rac1 bin]# ./olsnodes -n -i -s -t
rac1 1 rac1vip Active Unpinned
rac2 2 rac2vip Active Unpinned

二. 网络层

网络层由各个节点的网络组件组成,包括2个物理网卡和3个IP 地址。 也只有一个命令:oifcfg.
Oifctg 命令用来定义和修改Oracle 集群需要的网卡属性,这些属性包括网卡的网段地址,子网掩码,接口类型等。
要想正确的使用这个命令, 必须先知道Oracle 是如何定义网络接口的,Oracle的每个网络接口包括名称,网段地址,接口类型3个属性
Oifcfg 命令的格式如下: interface_name/subnet:interface_type
这些属性中没有IP地址,但接口类型有两种,public和private,前者说明接口用于外部通信,用于Oracle Net和VIP 地址,而后者说明接口用于Interconnect
接口的配置方式分为两类: global 和node-specific。 前者说明集群所有节点的配置信息相同,也就是说所有节点的配置是对称的;
而后者意味着这个节点的配置和其他节点配置不同,是非对称的。
Iflist:显示网口列表
Getif: 获得单个网口信息
Setif:配置单个网口
Delif:删除网口
[root@rac1 bin]# ./oifcfg --help
PRIF-9: incorrect usage

Name:
oifcfg - Oracle Interface Configuration Tool.

Usage: oifcfg iflist [-p [-n]]
oifcfg setif {-node <nodename> | -global} {<if_name>/<subnet>:<if_type>}...
oifcfg getif [-node <nodename> | -global] [ -if <if_name>[/<subnet>] [-type <if_type>] ]
oifcfg delif {{-node <nodename> | -global} [<if_name>[/<subnet>]] [-force] | -force}
oifcfg [-help]

<nodename> - name of the host, as known to a communications network
<if_name> - name by which the interface is configured in the system
<subnet> - subnet address of the interface
<if_type> - type of the interface { cluster_interconnect | public }
[root@raw1 bin]# ./oifcfg iflist
eth0  10.85.10.0
eth1  192.168.1.0
[root@raw1 bin]# ./oifcfg getif
eth0  10.85.10.119  global  public
eth0  10.85.10.121  global  public
eth0  10.85.10.0  global  public
eth1  192.168.1.119  global  cluster_interconnect
eth1  192.168.1.121  global  cluster_interconnect
eth1  192.168.1.0  global  cluster_interconnect
-- 查看public 类型的网卡
[root@raw1 bin]# ./oifcfg getif -type public
eth0  10.85.10.119  global  public
eth0  10.85.10.121  global  public
eth0  10.85.10.0  global  public
-- 删除接口配置
[root@raw1 bin]# ./oifcfg delif -global
-- 添加接口配置
[root@raw1 bin]# ./oifcfg setif -global eth0/192.168.1.119:public
[root@raw1 bin]# ./oifcfg setif -global eth1/10.85.10.119:cluster_interconnect

三. 集群层

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

3.1 CRSCTL

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

3.1.1 检查CRS 状态

[root@rac1 bin]# ./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
检查单个状态
[root@rac1 bin]# ./crsctl check cssd
CRS-272: This command remains for backward compatibility only
Cluster Synchronization Services is online
[root@rac1 bin]# ./crsctl check crsd
CRS-272: This command remains for backward compatibility only
Cluster Ready Services is online
[root@rac1 bin]# ./crsctl check evmd
CRS-272: This command remains for backward compatibility only
Event Manager is online

3.1.2 配置CRS 栈是否自启动

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

3.1.3 启动,停止CRS 栈

Oracle 在10.1时,必须通过重新启动系统重启Clusterware,但是从Oracle 10.2 开始,可以通过命令来启动和停止CRS
-- 启动CRS
# ./crsctl start crs
-- 关闭CRS
# ./crsctl stop crs

3.1.4 查看Votedisk 磁盘位置

[root@rac1 bin]# ./crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 62cb5cc42bdc4ff8bfd1069706eeed4b (/dev/asm-diskb) [OCR]
Located 1 voting disk(s).

3.1.5 查看和修改CRS 参数

-- 查看参数:用get
[root@rac1 bin]# ./crsctl get css misscount
CRS-4678: Successful get misscount 30 for Cluster Synchronization Services.
-- 修改参数: 用set, 但是这个功能要慎用
# ./crsctl set css miscount 60

3.1.6 跟踪CRS 模块,提供辅助功能

CRS由CRS,CSS,EVM 三个服务组成,每个服务又是由一系列module组成,crsctl 允许对每个module进行跟踪,并把跟踪内容记录到日志中
# ./crsctl lsmodules css
# ./crsctl lsmodules crs
# ./crsctl lsmodules evm
--跟踪CSSD模块,需要root 用户执行:
# ./crsctl debug log css "CSSD:1"
-- 查看跟踪日志
# pwd
/u01/app/oracle/product/crs/log/raw1/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@raw1 bin]# ./crsctl query css votedisk
2)  停止所有节点的CRS:
[root@raw1 bin]# ./crsctl stop crs
3) 添加Votedisk
[root@raw1 bin]# ./crsctl add css votedisk /dev/raw/raw1 -force
注意:即使在CRS 关闭后,也必须通过-force 参数来添加和删除Votedisk,并且-force 参数只有在CRS关闭的场合下使用才安全。
 否则会报:Cluter is not a ready state for online disk addition.
4)  确认添加后的情况:
[root@raw1 bin]# ./crsctl query css votedisk
5) 启动CRS
[root@raw1 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/<cluster_name>目录下。 每次备份后,备份文件名自动更改,以反应备份时间顺序,
最近一次的备份叫作backup00.ocr。这些备份文件除了保存在本地,DBA还应该在其他存储设备上保留一份,以防止意外的存储故障。
3.2.1 ocrdump
该命令能以ASCII的方式打印出OCR的内容,但是这个命令不能用作OCR的备份恢复,也就是说产生的文件只能用作阅读,而不能用于恢复
命令格式: ocrdump [-stdout] [filename] [-keyname name] [-xml]
-stdout: 把内容打印输出到屏幕上
Filename:内容输出到文件中
-keyname:只打印某个键及其子健内容
-xml:以xml格式打印输出
示例:把system.css键的内容以.xml格式打印输出到屏幕
# ./ocrdump -stdout -keyname system.css -xml|more
这个命令在执行过程中,会在$CRS_HOME/log/<node_name>/client 目录下产生日志文件,文件名ocrdump_<pid>.log,如果命令执行出现问题,可以从这个日志查看问题原因。
3.2.2 ocrcheck
Ocrcheck 命令用于检查OCR内容的一致性,命令执行过程会在$CRS_HOME/log/nodename/client 目录下产生ocrcheck_pid.log 日志文件。 这个命令不需要参数。
# ./ocrcheck
3.2.3 ocrconfig
该命令用于维护OCR 磁盘,安装clusterware过程中,如果选择External Redundancy冗余方式,则只能输入一个OCR磁盘位置。
但是Oracle允许配置两个OCR 磁盘互为镜像,以防止OCR 磁盘的单点故障。 OCR 磁盘和Votedisk磁盘不一样,OCR磁盘最多只能有两个,
一个Primary OCR 和一个Mirror OCR。
[root@raw1 bin]# ./ocrconfig --help
-- 查看自助备份
# ./ocrconfig -showbackup
在缺省情况下,OCR自动备份在$CRS_HOME/CRS/CDATA/cluster_name 目录下,可以通过ocrconfig -backuploc <directory_name> 命令修改到新的目录
3.2.4 使用导出,导入进行备份和恢复
Oracle 推荐在对集群做调整时,比如增加,删除节点之前,应该对OCR做一个备份,可以使用export 备份到指定文件,
如果做了replace或者restore 等操作,Oracle 建议使用 cluvfy comp ocr -n all 命令来做一次全面的检查。该命令在clusterware 的安装软件里。
1) 首先关闭所有节点的CRS
# ./crsctl stop crs
2) 用root 用户导出OCR内容
# ./ocrconfig -export /u01/ocr.exp
3) 重启CRS
# ./crsctl start crs
4) 检查CRS 状态
# ./crsctl check crs
5)破坏OCR内容
# dd if=/dev/zero of=/dev/raw/raw1 bs=1024 count=102400
6) 检查OCR一致性
# ./ocrcheck
PROT-601: Failed to initialize ocrcheck
7)使用cluvfy 工具检查一致性
# ./runcluvfy.sh comp ocr -n all
8) 使用Import 恢复OCR 内容
# ./ocrconfig -import /u01/ocr.exp
9)再次检查OCR
# ./ocrcheck
10) 使用cluvfy工具检查
# ./runcluvfy.sh comp ocr -n all
3.2.5 移动OCR 文件位置
实例演示将OCR从/dev/raw/raw1 移动到/dev/raw/raw3上。
1) 查看是否有OCR备份
[root@raw1 bin]# ./ocrconfig -showbackup
如果没有备份,可以立即执行一次导出作为备份:
[root@raw1 bin]# ./ocrconfig -export /u01/ocrbackup -s online
2) 查看当前OCR配置
# ./ocrcheck
Device/File Name : /dev/raw/raw1
输出显示当前只有一个Primary OCR,在/dev/raw/raw1。 没有Mirror OCR。 因为现在只有一个OCR文件
,所以不能直接改变这个OCR的位置,必须先添加镜像后在修改,否则会报:Failed to initialize ocrconfig.
3) 添加一个Mirror OCR
[root@raw1 bin]# ./ocrconfig -replace ocrmirror /dev/raw/raw4
4) 确认添加成功
[root@raw1 bin]# ./ocrcheck
5)改变primary OCR 位置
[root@raw1 bin]# ./ocrconfig -replace ocr /dev/raw/raw3
确认修改成功:
[root@raw1 bin]# ./ocrcheck
6)使用ocrconfig命令修改后,所有RAC节点上的/etc/oracle/ocr.loc 文件内容也会自动同步了,如果没有自动同步,可以手工的改成以下内容。
[root@raw1 bin]# more /etc/oracle/ocr.loc
ocrconfig_loc=/dev/raw/raw1
Ocrmirrorconfig_loc=/dev/raw/raw3
local_only=FALSE

四. 应用层

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

4.1 crs_stat

Crs_stat 这个命令用于查看CRS维护的所有资源的运行状态,如果不带任何参数时,显示所有资源的概要信息。
每个资源显示是各个属性:资源名称,类型,目录,资源运行状态等。
[root@rac1 bin]# ./crs_stat
也可以指定资源名,查看指定资源的状态,并可以使用-V 和-P 选项,以查看详细信息,其中-p 参数显示的内容比-V 更详细。
1) 查看制定资源状态
[root@rac1 bin]# ./crs_stat ora.rac2.vip
NAME=ora.rac2.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on rac2
2) 使用-v 选项,查看详细内容,这时输出多出4项内容,分别是允许重启次数,已执行重启次数,失败阀值,失败次数。
# ./crs_stat -v ora.rac2.vip
3) 使用-p 选项查看更详细内容
# ./crs_stat -p ora.rac2.vip
4) 使用-ls 选项,可以查看每个资源的权限定义,权限定义格式和Linux 一样。
[root@rac1 bin]# ./crs_stat -ls
Name Owner Primary PrivGrp Permission
-----------------------------------------------------------------
ora.DATA.dg grid oinstall rwxrwxr--
ora.FRA.dg grid oinstall rwxrwxr--
ora....ER.lsnr grid oinstall rwxrwxr--
ora....N1.lsnr grid oinstall rwxr-xr--
ora.OCR.dg grid oinstall rwxrwxr--
ora.asm grid oinstall rwxrwxr--
ora.bol.db oracle oinstall rwxr--r--
ora.cvu grid oinstall rwxrwxr--
ora.gsd grid oinstall rwxr-xr--
ora....network root root rwxr-xr--
ora.oc4j grid oinstall rwxrwxr--
ora.ons grid oinstall rwxr-xr--
ora....SM1.asm grid oinstall rwxrwxr--
ora....C1.lsnr grid oinstall rwxrwxr--
ora.rac1.gsd grid oinstall rwxr-xr--
ora.rac1.ons grid oinstall rwxr-xr--
ora.rac1.vip root root rwxr-xr--
ora....SM2.asm grid oinstall rwxrwxr--
ora....C2.lsnr grid oinstall rwxrwxr--
ora.rac2.gsd grid oinstall rwxr-xr--
ora.rac2.ons grid oinstall rwxr-xr--
ora.rac2.vip root root rwxr-xr--
ora.scan1.vip root root rwxr-xr--

4.2 onsctl

这个命令用于管理配置ONS(Oracle Notification Service). ONS 是Oracle Clusterware 实现FAN Event Push模型的基础。
在传统模型中,客户端需要定期检查服务器来判断服务端状态,本质上是一个pull模型,Oracle 10g 引入了一个全新的PUSH 机制--
FAN(Fast Application Notification),当服务端发生某些事件时,服务器会主动的通知客户端这种变化,这样客户端就能尽早得知服务端的变化。 而引入这
种机制就是依赖ONS实现, 在使用onsctl命令之前,需要先配置ONS服务。
4.2.1 ONS 配置内容
在RAC 环境中,需要使用$CRS_HOME下的ONS,而不是$ORACLE_HOME下面的ONS, 这点需要注意。 配置文件在
$CRS_HOME/opmn/conf/ons.config.
[root@raw1 conf]# pwd
/u01/app/oracle/product/crs/opmn/conf
[root@raw1 conf]# more ons.config
4.2.2 配置ONS
可以直接编译ONS的配置文件来修改配置,如果使用了OCR,则可以通过racgons命令进行配置,但必须以root用户来执行,如果用oracle 用户来执行,不会提示任何错误,但也不会更改任何配置。
若要添加配置,可以使用下面命令:
Racgons add_config rac1:6200 rac2:6200
若要删除配置,可以用下面命令:
Racgons remove_config rac1:6200 rac2:6200
4.2.3 onsctl 命令
使用onsctl命令可以启动,停止,调试ONS,并重新载入配置文件,其命令格式如下
# ./onsctl
ONS 进程运行,并不一定代表ONS 正常工作,需要使用ping命令来确认
1) 在OS级别查看进程状态
[root@rac1 bin]# ps -aef|grep ons
root 1830 1 0 01:29 ? 00:00:00 /usr/sbin/console-kit-daemon --no-daemon
root 4447 31908 0 09:47 pts/2 00:00:00 grep ons
grid 20765 1 0 03:16 ? 00:00:00 /u01/app/11.2.0/grid/opmn/bin/ons -d
grid 20766 20765 0 03:16 ? 00:00:00 /u01/app/11.2.0/grid/opmn/bin/ons -d
2) 确认ONS服务的状态
[root@rac1 bin]# ./onsctl ping
ons is running ...
3) 启动ONS服务
# ./onsctl start
4) 使用debug 选项,可以查看详细信息,其中最有意义的就是能显示所有连接
# ./onsctl debug

4.3 srvctl

该命令是RAC维护中最常用的命令,也是最复杂的命令。 这个工具可以操作下面的几种资源:Database,Instance,ASM,
Service,Listener 和 Node Application,其中Node application又包括GSD,ONS,VIP。 这些资源除了使用srvctl工具统一管理外,某些资源还有自己独立的
管理工具,比如ONS可以使用onsctl命令进行管理;Listener 可以通过lsnrctl 管理。
# ./srvctl --help
4.3.1 使用config查看配置
1)查看数据库配置
不带任何参数时,显示OCR中注册的所有数据库
[root@rac1 bin]# ./srvctl config database
bol
使用-d 选项,查看某个数据库配置
[root@rac1 bin]# ./srvctl config database -d bol
Database unique name: bol
Database name: bol
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/bol/spfilebol.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: bol
Database instances: bol1,bol2
Disk Groups: DATA,FRA
Mount point paths:
Services:
Type: RAC
Database is administrator managed
注: 该输出结果显示数据库raw由2个节点组成,各自实例名交bol1和bol2. 两个实例的$ORACLE_HOME是/u01/app/oracle/product/11.2.0/db_1
使用-a 选项查看配置的详细信息
[root@rac1 bin]# ./srvctl config database -d bol -a
2)查看Node Application的配置
不带任何参数,返回节点名,实例名和$ORACLE_HOME
# ./srvctl config nodeapps -n rac1
使用-a 选项,查看VIP 配置
# ./srvctl config nodeapps -n rac1 -a
使用-g 选项, 查看GSD:
# ./srvctl config nodeapps -n rac1 -g
使用-s 选项,查看ONS:
# ./srvctl config nodeapps -n rac1 -s
使用-l 选项,查看Listener
# ./srvctl config nodeapps -n rac1 -l
3) 查看 Listener.
# ./srvctl config listener -n rac1
-n <node_name> option has been deprecated.
Network exists: 1/10.15.4.0/255.255.252.0/eth0, type static
VIP exists: /rac1vip/10.15.7.13/10.15.4.0/255.255.252.0/eth0, hosting node rac1
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016
[root@rac1 bin]# ./srvctl config listener -n rac1
Warning:-n option has been deprecated and will be ignored.
Name: LISTENER
Network: 1, Owner: grid
Home: <CRS home>
End points: TCP:1521
# ./srvctl config listener -n rac2
4) 查看ASM
# ./srvctl config asm -n rac1
5) 查看Service
查看数据库所有service配置
# ./srvctl config service -d bol -a
查看某个Service 配置
# ./srvctl config service -d bol -s bol1
4.3.2 使用add 添加对象
一般情况下,应用层资源都是在图形界面的帮助下注册到OCR中的,比如VIP,ONS实在安装最后阶段创建的,而数据库,ASM是执行
DBCA的过程中自动注册到OCR中的,Listener是通过netca工具。 但是有些时候需要手工把资源注册到OCR中。 这时候就需要add 命令了。
1) 添加数据库
# ./srvctl add database -d bol -o $ORACLE_HOME
2) 添加实例
[root@raw1 bin]# ./srvctl add instance -d bol -n rac1 -i bol1
[root@raw1 bin]# ./srvctl add instance -d bol -n rac2 -i bol2
3) 添加服务,需要使用4个参数
-s : 服务名
-r:首选实例名
-a:备选实例名
-P:TAF策略,可选值为None(缺省值),Basic,preconnect。
# ./srvctl add service -d bol -s bolservice -r rac1 -a rac2 -P BASIC
4) 确认添加成功
# ./srvctl config service -d bol -s bolervice -a
4.3.3 使用enable/disable 启动,禁用对象
缺省情况下数据库,实例,服务,ASM都是随着CRS的启动而自启动的,有时候由于维护的需要,可以先关闭这个特性
1) 配置数据库随CRS的启动而自动启动
-- 启用数据库的自启动:
# ./srvctl enable database -d bol
--查看配置
# ./srvctl config database -d bol -a
-- 禁止数据库在CRS启动后自启动,这时需要手动启动
# ./srvctl disable database -d bol
2) 关闭某个实例的自动启动
# ./srvctl disable instance -d bol -i bol1
# ./srvctl enable instance -d bol -i bol1
-- 查看信息
# ./srvctl config database -d bol -a
3) 禁止某个服务在实例上运行
# ./srvctl enable service -d bol -s bolservice -i bol1
# ./srvctl disable service -d bol -s bolservice -i bol1
4.3.4 使用remove 删除对象
使用remove命令删除的是对象在OCR中的定义信息,对象本省比如数据库的数据文件等不会被删除,以后随时可以使用add命令重新添加到OCR中。
1) 删除Service,在删除之前,命令会给出确定提示
# ./srvctl remove service -d bol -s bolservice
2)删除实例,删除之前同样会给出提示
# ./srvctl remove instance -d bol -i bol1
3)删除数据库
# ./srvctl remove database -d bol
4.3.5 启动,停止对象与查看对象
在RAC 环境下启动,关闭数据库虽然仍然可以使用SQL/PLUS方法,但是更推荐使用srvctl命令来做这些工作,这可以保证即使更新CRS中
运行信息,可以使用start/stop 命令启动,停止对象,然后使用status 命令查看对象状态
1) 启动数据库,默认启动到open状态
# ./srvctl start database -d bol
2) 指定启动状态
# ./srvctl start database -d bol -i bol1 -o mount
# ./srvctl start database -d bol -i bol1 -o nomount
3) 关闭对象,并指定关闭方式
# ./srvctl stop instance -d bol -i bol1 -o immediate
# ./srvctl stop instance -d bol -i bol1 -o abort
4) 在指定实例上启动服务:
# ./srvctl start service -d bol -s bolservice -i bol1
# ./srvctl status service -d bol -v
5) 关闭指定实例上的服务
# ./srvctl stop service -d bol -s bolservice -i bol1
# ./srvctl status service -d bol -v
4.3.6 跟踪srvctl
在Oracle 10g中要跟踪srvctl 非常简单,只要设置srvm_trace=true 这个OS环境变量即可,这个命令的所有函数调用都会输出到屏幕上,可以帮助用户进行诊断。
# export SRVM_TRACE=TRUE
# ./srvctl config database -d bol

4.4 恢复

假设OCR磁盘和Votedisk磁盘全部破坏,并且都没有备份,该如何恢复, 这时最简单的方法就是重新初始话OCR和Votedisk, 具体操作如下:
4.4.1 停止所有节点的Clusterware Stack
crsctl stop crs;
4.4.2 分别在每个节点用root用户执行$CRS_HOME/install/rootdelete.sh脚本
4.4.3 在任意一个节点上用root用户执行$CRS_HOME/install/rootinstall.sh 脚本
4.4.4 在和上一步同一个节点上用root执行$CRS_HOME/root.sh脚本
4.4.5 在其他节点用root执行行$CRS_HOME/root.sh脚本
4.4.6 用netca 命令重新配置监听,确认注册到Clusterware中
#crs_stat -t -v
到目前为止,只有Listener,ONS,GSD,VIP 注册到OCR中,还需要把ASM, 数据库都注册到OCR中。 
4.4.7  向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
4.4.8 启动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'
.4.9 手工向OCR中添加Database对象。
#srvctl add database -d raw -o /u01/app/product/database
4.4.10 添加2个实例对象
#srvctl add instance -d raw -i raw1 -n raw1
#srvctl add instance -d raw -i raw2 -n raw2
4.4.11 修改实例和ASM实例的依赖关系
#srvctl modify instance -d raw -i raw1 -s +ASM1
#srvctl modify instance -d raw -i raw2 -s +ASM2

4.4.12 启动数据库
#srvctl start database-d raw
若也出现ORA-27550错误。也是因为RAC无法确定使用哪个网卡作为Private Interconnect,修改pfile参数在重启动即可解决。
SQL>alter system set cluster_interconnects='10.85.10.119' scope=spfile sid='raw1';
SQL>alter system set cluster_interconnects='10.85.10.121' scope=spfile sid='raw2';

Srvctl 命令的用法还有很多,下面是在线文档的一个目录,感兴趣的可以自己研究下。 
 http://download-west.oracle.com/docs/cd/B19306_01/rac.102/b14197/toc.htm

转载:Oracle RAC日常基本维护命令的更多相关文章

  1. Oracle RAC管理及维护命令详解

    Oracle Clusterware的命令集可以分为以下4种: 节点层:osnodes 网络层:oifcfg 集群层:crsctl, ocrcheck,ocrdump,ocrconfig 应用层:sr ...

  2. (转)Oracle RAC日常管理命令

    转自:http://www.xuebuyuan.com/1206937.html 一.查看RAC环境 RAC架构,2节点信息 节点1 SQL> show parameter instance N ...

  3. oracle表空间查询维护命令大全之中的一个(数据表空间)史上最全

          表空间是数据库的逻辑划分,一个表空间仅仅能属于一个数据库. 全部的数据库对象都存放在建立指定的表空间中.但主要存放的是表, 所以称作表空间.在oracle 数据库中至少存在一个表空间.即S ...

  4. oracle表空间查询维护命令大全之二(undo表空间)

    --undo表空间汇总 --查看全部的表空间名字 select name from v$tablespace; --创建新的UNDO表空间,并设置自己主动扩展參数; create undo table ...

  5. oracle表空间查询维护命令大全之三(暂时表空间)史上最全

    --UNDO表空间汇总 --查看全部的表空间名字 SELECT NAME FROM V$TABLESPACE; --创建新的UNDO表空间,并设置自己主动扩展參数; CREATE UNDO TABLE ...

  6. oracle rac常用的命令

    oracle rac常用的命令 节点层:olsnodes 网络层: oifcfg 集群层:crsctl,ocrcheck,ocrdump,ocrconfig 应用层:srvctl,onsctl,crs ...

  7. Oracle RAC架构图和常用命令

    转至:https://www.cnblogs.com/yaoyangding/p/15596308.html Oracle RAC(实时应用集群)是Oracle数据库完全高可用体系解决方案中的一个关键 ...

  8. 73条日常Linux shell命令汇总,总有一条你需要!

    转载: 73条日常Linux shell命令汇总,总有一条你需要! 1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo &q ...

  9. 程序员必备:Oracle日常维护命令

        上一篇讲了Linux的日常维护命令,这篇讲讲Oracle的日常维护命令.工作中需要使用Oracle数据库的童鞋们,相信或多或少都需要对Oracle做一些基本的维护操作,例如导入导出总该有吧?( ...

随机推荐

  1. ssh登录CentOS服务器(Aliyun)

    ssh登录 (一).在本机使用命令生成ssh密钥:(-C代表注释,如果有多个密钥,加个注释就会很好区分) ssh-keygen -t rsa -C "mingwei" (二).将本 ...

  2. WPF中的平移缩放和矩阵变换(TranslateTransform、ScaleTransform、MatrixTransform)

    在WPF中的平移缩放都是通过RenderTransform这个类来实现这些效果的,在这个类中,除了平移和缩放还有旋转.扭曲变换.矩阵变换.这些都差不多的,都是坐标的变换. 这里我就先简单弄个平移和缩放 ...

  3. Java中使用Log的方法

    一.java自带log:java.util.logging.Logger使用三步曲 public class HelloLogWorld { private static String name = ...

  4. jquery attr与prop的区别与联系

    最近开发中发现用attr无法设置checkbox的选中事件,在网上找了下说要用prop,所以总结下两者的区别. 1.操作的对象不同 attr:操作的是HTML文档节点属性 prop:操作的是js对象属 ...

  5. java枚举和constant使用区别

    本文结合<Effective Java>第六章前半部分关于枚举的介绍和自己的理解及实践,讲解了Java枚举的知识点.文章发布于专栏Effective Java,欢迎读者订阅. 前言  你代 ...

  6. MySQL连接中出现大量的 init 状态问题

    最怕的就是睡一觉醒来,系统出了问题. 大早系统无法登陆,以前没有经验的同学code的代码,竟然 try catch 没有记录异常日志信息. 查的问题一点头绪都没有,一直锁定在公司公共网关接口出了问题. ...

  7. iptables(二)iptables实际操作之规则查询

    如果你是一个新手,在阅读如下文章时,请坚持读到最后,读的过程中可能会有障碍,但是在读完以后,你会发现你已经明白了. 在进行iptables实验时,请务必在测试机上进行. 之前在iptables的概念中 ...

  8. 剑指offer--37.和为S的两个数字

    链接:https://www.nowcoder.com/questionTerminal/390da4f7a00f44bea7c2f3d19491311b来源:牛客网@华科渣硕 不要被题目误导了!证明 ...

  9. L145

    实践是检验真理的唯一标准.Only social practice can be the criterion of truth.工会负责人谴责这一行动破坏了协议.Union officials den ...

  10. Android代码混淆及项目发布方法记录

     Android代码混淆及项目发布步骤记录 本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文. Android代码混淆及项目发布步骤记录 一.清理 ...