RAC集群启停的总结

方法一:srvctl操作rac集群启停的用法

 

一、RAC集群的分步关闭

rac集群的关闭顺序:

关闭数据库实例>关闭asm实例>关闭集群服务

 

1.关闭数据库实例

#su - grid

$cd /u01/app/11.2.0/grid/bin

$srvctl status database -d 数据库名(database_name)

$srvctl stop database -d 数据库名(database_name)[-o start_options] [-c connect_string]

或依次关闭每个实例

$srvctl stop instance -d database_name -i instance_name [,instance_name --list] [-o start_options] [-c connect_string]

2.关闭各节点的asm

#su - grid

$srvctl stop asm -n 节点实例名 (⚠️在一个节点上分别执行要停止的节点)

3.关闭各节点的集群服务(包括:listener 、gsd 、ons 、 VIP )

#su - gird

$srvctl stop nodeapps -n 节点实例名

 

另:

关闭监听

#su - grid

#srvctl stop listener -n  节点主机名 [-l  listener_name] 

⚠️如果使用srvctl关闭监听后,在用lsnrctl start开启监听后,用srvclt关闭操作无效,因为srvctl只记录自己操作后的状态,而不去检查listener真正的状态。

 

二、RAC集群的分步开启

rac集群开启顺序:

 

开启集群服务>开启asm实例>开启数据库实例

1.开启集群服务

#su - grid

$srvctl start nodeapps -n 节点实例名    (⚠️在一个节点上更换要开启的节点主机名即可)

2.开启asm

#su - grid

$srvctl start asm -n 节点实例名   (⚠️在一个节点上更换要开启的节点主机名即可)

3.开启节点实例

$srvctl start instance -d database_name -i instance_name [,instance_name --list] [-o start_options] [-c connect_string]

 

 

参数说明:

-o:在sql*plus直接传递的startup命令选项,可以接包括pfile,nomount\mount\open\immediate等有关启停参数

-c:使用sql*plus连接数据库实例的连接字符串

例:关闭某一节点

#su - grid

$srvctl stop instance -d database_name -i 节点实例名 -o immediate

$srvctl stop asm -n 节点实例名

$srvclt stop nodeapps  -n 节点实例名

 

方法二:rac启停

一、关闭集群操作步骤 ( ⚠️登录要停的每个节点执行 )

1.关闭数据库实例

#su - oracle

$sqlplus / as sysdba

$shutdown immediate                  

2.关闭HAS服务 ( ⚠️必须以root用户执行 )

#su - root  

#cd $GRID_HOME/bin

#./crsctl stop has -f

3.关闭集群服务 ( ⚠️必须以root用户执行 )

#su - root

#cd $GRID_HOME/bin

#./crsctl stop cluster                          --停止当前执行节点的

或  #./crsctl stop cluster  -all               --停止所有节点的

或  #./crsctl stop cluster -n 节点实例名1,节点实例名2,节点实例名n

 

二、开启集群操作步骤

11g R2的RAC默认服务器开机自启动模式,但如需手动启动时,按照启动:cluster>has>database的顺序启动即可

1.启动集群服务

#su - root

$./crsctl start cluster -all       --所有节点同时启动

或控制节点启动 $./crsctl start cluster -n 实例1 实例2 实例n

2.启动HAS(high availability services)

#su - root   (⚠️必须以root用户在每个节点执行)

$./crsctl start has 

3.启动数据库

#su - grid

$srvctl start database -d 数据库名

或以oracle身份登录每个实例节点执行startup

 

⚠️在没有启动crs之前,你是没有办法启动数据库的。

crsctl start crs,就会拉起所有的资源,包括数据库实例,通常无需再去额外执行启动数据库的操作。

另外,在停集群的时候,应该开启另外一个窗口,始终tail -f数据库实例的alert日志,一直等到明确看到database shutdown completely,然后ps -ef确认所有的ora进程确实已经停止。再重启服务器。如果是小型机,长时间没有重启过,一定要做好心理准备,可能重启过程会有些艰难

 

你可能感兴趣的:(RAC集群启停的总结)