情况1:需要关闭DB(所有实例),OS及Server

停RAC的顺序是:

1)数据库 -〉 2)ASM   -〉 3)CRS

a.首先停止Oracle10g环境

$ lsnrctl stop (每个节点上停止监听,也可以用srvctl来操作) 或者 $ srvctl stop listener -n erprac01(在节点1上停止监听)

$ emctl stop dbconsole (每个节点停止dbconsole)

$ srvctl stop database -d orcl (停止数据库所有实例)

$ srvctl stop nodeapps –n erprac01 (停节点1服务)

$ srvctl stop nodeapps -n erprac01 (停节点2服务)

# /etc/init.d/init.crs stop (root停cluster软件)

停机顺序为,先停监听->实例->服务->cluster 软件

或者用$ crs_stop -all

b.然后# init 0关闭服务器,或者如果重新启动#init 6

c.关闭电源。

d.开启Server ,开始开启Oracle10g数据库及服务等(如果OS重新启动,那么下面的所有服务是自动打开的【除了dbconsole】,不用手工执行了)。

$ srvctl start nodeapps -n erprac01 (停节点1服务)

$ srvctl start nodeapps -n erprac01 (停节点2服务)

# /etc/init.d/init.crs start (root停cluster软件)

或者用$ crs_start –all

$ srvctl start database -d tpc (停止数据库所有实例)

$ lsnrctl start (每个节点上停止监听,也可以用srvctl来操作)

$ emctl start dbconsole (每个节点停止dbconsole)

注:srvctl也可以用来关闭某个实例:srvctl stop instance -d orcl -i orcl2

srvctl开启关闭监听器:

  srvctl stop listener -n orcl2

  srvctl start listener -n orcl2

最简单的停机方法:

  $crs_stop -all  $crs_stat -t

查看是否全是OFFLINE root用户执行:# crsctl stop crs   init 0或 init  6

启动方法:

  #crsctl start crs $ crs_start –all $ crs_stat -t

情况2:调整数据库参数的时候,只关闭所有节点实例,不重新启动OS及Server

a.首先停止Oracle10g环境

$ lsnrctl stop (在所有节点上停止监听,也可以用srvctl)

$ srvctl stop database -d orcl (停止数据库所有实例)

b.然后开启所有实例及监听器。

$ srvctl start database -d orcl (开启数据库所有实例)

$ lsnrctl start (开启所有节点上监听,也可以用srvctl开启监听)

情况3:不关闭操作系统的情况下,由于问题点或调整某些服务而需要关闭然后开启某些服务程序等。

  关闭某些服务的时候,由于涉及到RAC运行,所以也需要先关闭数据库实例,类似于第一种情况。

crs命令用法

1:对于crsctl start crs和crsctl stop crs必须是root用户来执行。

CRS及相关服务的常用命令的演示

1、查看状态的命令

# su–oracle  --先切换到oracle用户

$ crs_stat -t --查看crs及所有的service的状态

$ crs_stat --此命令可以查看各个资源的完整服务名称

$ crsctl check crs --用crsctl命令,检查crs相关服务的状态

$ srvctl status nodeapps -n erprac01 (erprac02) --使用srvctl查看所有节点上的服务是否正常

$ srvctl status database -d db --使用srvctl查看数据库状态

启动和关闭相关服务的命令

#crsctl start crs   打开集群CRS命令程序

#crsctl stop crs    关闭

oracle用户

命令的路径:$ORA_CRS_HOME/bin/

# su – oracle

$ crs_start -all --启动所有的crs服务

$ crs_stop -all --停止所有的crs服务

$ crsctl start crs --启动crs服务

$ crsctl stop crs --停止crs服务

$ srvctl start nodeapps -n erprac01 (erprac02) --启动某节点上所有的应用

$ srvctl stop nodeapps -n erprac01 (erprac02) --停止某节点上所有的应用

$ srvctl start listener -n erprac01 (erprac02) --启动某个节点的listener

$ srvctl stop listener -n erprac01(erprac02) --停止某个节点的listener

$ srvctl start instance -d db -i erprac01(erprac02) --启动某个instance

$ srvctl stop instance -d db -i erprac01(erprac02) --停止某个instance

$ srvctl start database -d db --启动数据库

$ srvctl stop database -d db --停止数据库

$crs_stop  资源名(ora.ORCL.ORATEST.cs) 停一个资源,此命令可停到资源状态为UNKNOWN的资源。

附Oracle10g RAC检查命令:

----------------------------------------------

Oracle10g RAC数据库的 nodeapps 有VIP, GSD, Listener, ONS .

$ srvctl status nodeapps –n erprac01 (检查VIP, GSD,ONS, Listener等(所有节点))

VIP is running on node: erprac01

GSD is not running on node: erprac01

Listener is not running on node: erprac01

ONS daemon is not running on node: erprac01

gnd-rac01$crsctl check crs (检查Oracle Cluster状态:CSS, CRS, EVM .)

CSS appears healthy

CRS appears healthy

EVM appears healthy

erprac01$ crs_stat -t (全面检查状态)

NameTypeTargetStateHost

┅┅┅┅┅┅┅┅┅

ora....01.lsnr application ONLINE ONLINE erprac01

ora....c01.gsd application ONLINE ONLINE erprac01

ora....c01.ons application ONLINE ONLINE erprac01

SRVCTL命令介绍

SRVCTL命令可以控制RAC数据库中的instance,listener以及services。

通常SRVCTL在ORACLE用户下执行。下面我们来介绍srvctl命令。

1、通过SRVCTL命令来start/stop/check所有的实例:

$ srvctl start|stop|status database -d <db_name>

2、start/stop指定的实例:

$ srvctl start|stop|status instance -d <db_name> -i <instance_name>

3、列出当前RAC下所有的

$ srvctl config database -d <db_name>

4、start/stop/check所有的nodeapps,比如:VIP, GSD, listener, ONS:

$ srvctl start|stop|status nodeapps -n <node_name>

5、如果你使用ASM,srvctl也可以start/stop ASM实例:

$ srvctl start|stop asm -n <node_name> [-i <asm_inst_name>] [-o<oracle_home>]

6、可以获取所有的环境信息:

$ srvctl getenv database -d <db_name> [-i <instance_name>]

7、设置全局环境和变量:

$ srvctl setenv database -d <db_name> -t

8、从OCR中删除已有的数据库:

$ srvctl remove database -d <db_name>

9、向OCR中添加一个数据库:

$ srvctl add database -d <db_name> -o <oracle_home>

[-m <domain_name>] [-p] [-A <name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s <start_options>]

10、向OCR中添加一个数据库的实例:

$ srvctl add instance -d <db_name> -i <instance_name> -n

$ srvctl add instance -d <db_name> -i <instance_name> -n

11、向OCR中添加一个ASM实例:

$ srvctl add asm -n <node_name> -i <asm_inst_name> -o <oracle_home>

12、添加一个service

$ srvctl add service -d <db_name>

$ORA_CRS_HOME/bin/crsctl check crs用于检查后台进程状态

$ORA_CRS_HOME/bin/crsctl start resources启动crs资源

$ORA_CRS_HOME/bin/crsctl start crs启动crs,需要超级用户操作。

$ORA_CRS_HOME/bin/crsctl stop crs关闭crs,需要超级用户操作。

$ORA_CRS_HOME/bin/crs_unregister取消注册crs

$ORA_CRS_HOME/bin/ocrcheck检查ocr设置信息用ocrcheck

$ORA_CRS_HOME/bin/crsctl query css votedisk检查磁盘表决情况

2:集群的日志:

$ORA_CRS_HOME/log/节点主机名(rachost01)/racg $ORA_CRS_HOME/log/节点主机名(rachost01)/crsd $ORA_CRS_HOME/crs/init $ORA_CRS_HOME/css/log $ORA_CRS_HOME/css/init $ORA_CRS_HOME/evm/log $ORA_CRS_HOME/evm/init $ORA_CRS_HOME/srvm/log

05-03 21:12