RAC重启

发布时间 2023-12-28 09:46:35作者: ritchy

关闭DB - 关闭CRS
1、关闭DB
oracle用户
srvctl stop database -d dbname [-o immediate]
一次性关闭dbname所有实例
eg.
su - oracle
export ORACLE_UNQNAME=orcl
emctl stop dbconsole
srvctl stop database -d orcl --停止所有节点的实例
查看状态
srvctl status database -d orcl

2、停止HAS
root用户
crsctl stop cluster [[-all]|[-n[...]]] [-f]
crsctl start cluster [[-all]|[-n[...]]]
可以同时操控所有的节点。如果不指定参数,那么只对当前节点有效

[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac1 bin]# ./crsctl stop has -f ----停止rac1节点has服务
[root@rac1 bin]# ./crsctl stop crs -f ----停止rac1节点crs服务

[root@rac2 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac2 bin]# ./crsctl stop has -f ----停止rac2节点has服务
[root@rac2 bin]# ./crsctl stop crs -f ----停止rac2节点crs服务

对于crsctl stop has只有一个可选的参数就是-f,该命令只能停执行该命令服务器上的HAS而不能停所有节点上的。所以要把RAC全部停掉,需要在所有节点执行该命令。

3、停止节点集群服务,必须以root用户
[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin

停止所有节点服务
[root@rac1 bin]# ./crsctl stop cluster -all

控制所停节点 ?
[root@rac1 bin]# ./crsctl stop cluster -n rac1 rac2

停止单节点集群服务:
[root@rac1 bin]# ./crsctl stop cluster ----停止rac1节点集群服务
[root@rac2 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac2 bin]# ./crsctl stop cluster ----停止rac2节点集群服务
Oracle 11g R2的RAC默认开机会自启动,当然如果需要手工启动:也就是按照Cluster、HAS、Database的顺序启动即可。

4、检查集群进程状态
[root@rac1 bin]# crsctl check cluster
详细输出
[root@rac1 bin]# crs_stat -t -v
只检查本节点的集群状态
[root@rac1 bin]# crsctl check crs

 

启动过程(启动CRS集群->启动数据库)
5.启动集群CRS
所有节点启动
[root@rac1 bin]# ./crsctl start cluster -n rac1 rac2
CRS-4123: Oracle High Availability Services has been started.
[root@rac1 bin]# ./crsctl start cluster -all

单个节点启动
[root@rac1 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac1 bin]# ./crsctl start cluster ----启动rac1节点集群服务
[root@rac2 oracle]# cd /u01/grid/11.2.0/grid/bin
[root@rac2 bin]# ./crsctl start cluster ----启动rac2节点集群服务
[root@rac2 ~]# ./crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
此命令会在后台启动所有RAC CRS相关进程
[root@rac2 ~]# ./crs_stat -t -v
CRS-0184: Cannot communicate with the CRS daemon.
因为start has启动的crs进程比较多因此会启动的比较慢,我的机器等待了5分钟,在没有完全启动成功之前会报上述错误,需要耐心等待一段时间后执行下面命令即可查看到所有CRS相关进程服务已经启动。

[root@rac2 ~]# ./crs_stat -t -v
其中
ora.gsd是集群服务中用于与9i数据库进行通信的一个进程,在当前版本中为了向后兼容才保存下来,状态为OFFLINE不影响CRS的正常运行与性能,我们忽略即可
ora.oc4j是在11.2.0.2以上版本中有效的服务进程,用于DBWLM的资源管理,因此在11.2.0.1以下版本并没有使用


6.启动HAS
单一节点启动
[root@rac1 ~]# cd /u01/grid/11.2.0/grid/bin
[root@rac1 ~]# ./crsctl start has -f
[root@rac1 ~]# ./crsctl start crs -f
[root@rac1 ~]# ./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
对于crsctl start has只有一个可选的参数就是-f,该命令只能启动执行该命令服务器上的HAS而不能启动所有节点上的。所以要把RAC全部启动,需要在所有节点执行该命令。
[root@rac2 ~]# cd /u01/grid/11.2.0/grid/bin
[root@rac2 ~]# ./crsctl start has -f
[root@rac2 ~]# ./crsctl start crs -f
[root@rac2 ~]# ./crsctl check crs -f
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

7.启动数据库:
Oracl用户执行srvctl命令:
语法:srvctl start|stop|status database -d dbname [-o immediate]
作用:可以一次性启动dbname的所有实例

以oracl用户执行srvctl命令:
[oracle@rac1 ~]\$ srvctl start database -d orcl ----启动所有节点上的实例
然后查看状态:
[oracle@rac1 ~]\$ srvctl status database -d orcl
Instance rac1 is not running on node rac1
Instance rac2 is not running on node rac2
启动EM
[oracle@oeltan1 ~]\$ emctl start dbconsole


8.详细输出资源全名称并检查状态
crsctl status resource -t
crsctl status resource

9.常用srvctl命令 --
指定dbname上某个实例
srvctl start|stop|status instance -d -i

10.显示RAC下所有实例配置与状态 --
srvctl status|config database -d

11.显示所有节点的应用服务(VIP,GSD,listener,ONS) --
srvctl start|stop|status nodeapps -n

12.ASM进程服务管理
srvctl start|stop|status|config asm -n [-i ] [-o]
srvctl config asm -a
srvctl status asm -a

13.可以获取所有的环境信息:
srvctl getenv database -d [-i]

14.设置全局环境和变量:
srvctl setenv database -d -t LANG=en

15.在OCR中删除已有的数据库信息
srvctl remove database -d

16.向OCR中添加一个数据库的实例:
srvctl add instance -d -i -n
srvctl add instance -d -i -n

17.检查监听的状态
srvctl status listener
srvctl config listener -a
SCAN配置信息
srvctl config scan
SCAN listener状态信息
srvctl status scan

crsctl命令是一个集群级别命令,可以对所有集群资源进行统一启动、停止等管理操作
srvctl命令是一个服务级别命令,可以对单一服务资源进行统一启动、停止等管理操作

在Oracle 10g中CRS Resource 包括GSD(Global Serveice Daemon),ONS(Oracle Notification Service),VIP, Database, Instance 和 Service。在11.2中,对CRSD资源进行了重新分类:Local Resources和Cluster Resources。OHASD指的就是Cluster Resource.

//
--关闭顺序
1. su - grid --进入用户

2. lsnrctl stop --停用监听
srvctl stop listener -n rac02
srvctl stop listener -n rac01

srvctl start listener -n rac01
srvctl start listener -n rac02

3. 停用数据库 ?
可以先查下 srvctl status database -d vbsrun
srvctl stop database -d vbsrun [-o immediate] --停止所有节点上的实例
或者登陆每个节点数据库执行 shutdown immediate

4. crs_stat -t --查看RAC当前状态(目前正常)

5. 停用RAC(请在rac01和rac02分别执行)root用户 crsctl目录下
停HAS( High Availability Services )root用户
cd /u01/app/11.2.0/grid/bin
./crsctl stop has -f --需在每个节点分别执行

停CRS
cd /u01/app/11.2.0/grid/bin/
./crsctl stop cluster -all --停止所有节点服务,只需在一个节点执行
./crsctl stop cluster --停止本节点集群服务,每个节点分别执行
./crsctl stop cluster -n rac01 rac02 --也可以如下控制所有节点

6. 等待rac状态都是offline之后重启主机
reboot

--启动顺序
RAC默认开机会自动启动,若手工,则按照 cluster ,HAS,database顺序启动
7. 重启主机正常之后 请在rac01上执行开启集群节点 必须root用户
启动HAS,必须root用户
./crsctl start has --需在每个节点分别执行

启动CRS,必须root用户
/u01/app/11.2.0/grid/bin/crsctl start cluster -all --所有节点同时启动
也可以只启动指定节点
/u01/app/11.2.0/grid/bin/crsctl start cluster -n rac01 rac02 --两个节点同时启动


8. 分别重启数据
或oracle用户下 srvctl start database -d rac --启动所有节点实例
或srvctl start instance -d rac -i rac01,rac02 --控制启动所有节点实例
或su - oracle 后 SQL> startup --则每个节点登陆执行

9. 状态检测
[root@rac02 ~]# /u01/app/11.2.0/grid/bin/crs_stat -t -v
srvctl status nodeapps
srvctl status database -d rac
srvctl status asm

10. 开启监听,同时检查相关状态和日志

--其他
root用户下
禁止CRS系统重启而自动启动

[root@node1 bin]# ./crsctl disable crs
CRS-4621: Oracle High Availability Services autostart is disabled.

检查crs配置为是否自动启动

[root@node1 bin]#./crsctl config crs
CRS-4621: Oracle High Availability Services autostart is disabled.

启用CRS系统重启而自动启动(每个节点分别执行)

[root@node1 bin]#./crsctl enable crs
CRS-4622: Oracle High Availability Services autostart is enabled.

[root@node1 bin]#./crsctl config crs
CRS-4622: Oracle High Availability Services autostart is enabled.

ocr和votedisk检查(grid用户)
需要在grid用户下执行这些命令,crsctl query css votedisk 和ocrcheck
[grid@node1 ~]\$ crsctl query css votedisk

[grid@node1 ~]\$ ocrcheck

参考 http://blog.itpub.net/9034054/viewspace-1973246/