方法一: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进程确实已经停止。再重启服务器。如果是小型机,长时间没有重启过,一定要做好心理准备,可能重启过程会有些艰难