oracle 11gR2 RAC 停库和启库

grid设置环境变量后可以在任意目录下执行,如root没设置的话需要带绝对路径
export ORACLE_HOME=/u01/app/11.2.0/grid
export PATH=$ORACLE_HOME/bin:$PATH
--/u01/app/11.2.0/grid/bin/crsctl或srvctl

查看集群的状态
[grid@testdb1 ~]$ crs_stat -t -v
[grid@testdb1 ~]$ srvctl status database -d TESTDB
[grid@testdb1 ~]$ srvctl status diskgroup -g DATA -n testdb2,testdb1
[grid@testdb1 ~]$ srvctl status asm
[grid@testdb1 ~]$ srvctl status asm -n testdb1

1、停监听
[grid@testdb1 ~]$ crsctl status res -t
[grid@testdb1 ~]$ srvctl stop scan_listener
[grid@testdb1 ~]$ srvctl stop listener

2、杀会话/两个节点
select 'alter system disconnect session ''' ||sid||','||serial#||''' immediate;' from v$session where type='USER';

3、做检查点操作/两个节点
alter system switch logfile;
alter system checkpoint;

4、关闭数据库和CRS
关库/任一节点即可 -o immediate 立即停止
[grid@testdb1 ~]$ srvctl stop database -d TESTDB -o immediate
或者每个节点登录数据库后执行SQL>shutdown immediate

关CRS/两个节点都执行下
【root用户】
[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/crsctl stop crs
[root@testdb2 ~]# /u01/app/11.2.0/grid/bin/crsctl stop crs

5、停ASM/两个节点
如果要停ASM,【root用户】
[root@testdb1 ~]# /etc/init.d/oracleasm stop
Dropping Oracle ASMLib disks: [ OK ]
Shutting down the Oracle ASMLib driver: [ OK ]
[root@testdb2 ~]# /etc/init.d/oracleasm stop
Dropping Oracle ASMLib disks: [ OK ]
Shutting down the Oracle ASMLib driver: [ OK ]

6、启库
与停库顺序相反

11gR2的RAC,如果是用shutdown immediate而不是用srvctl stop database -d xxx -o immediate停库,那么在启CRS后也需要手动把库启起来
如果手动把实例启起来后,在crsctl status res -t显示某个实例还是Instance Shutdown的话,但实际上实例是已经启起来了,可用命令 srvctl start instance -d xxx -n xxx解决。

/*
启动
每个节点执行
[root@testdb1 ~]# /etc/init.d/oracleasm start
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]

[root@testdb2 ~]# /etc/init.d/oracleasm start

--关闭/启动CRS,只需要在其中一个节点执行
[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/crsctl stop/start crs
[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/crsctl start cluster

任一个节点执行
[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/srvctl start database -d TESTDB
*/
grid用户下执行的部分命令
[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/crsctl status/start/stop res -t
[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/srvctl stop scan_listener
[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/srvctl stop listener

[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/srvctl stop database -d TESTDB -o immediate

[root@testdb1 ~]# /u01/app/11.2.0/grid/bin/srvctl start database -d MYDB

////////////////////////////////////////////////////////////////////////////

【关闭顺序】
关DB
srvctl stop database -d TESTDB -o immediate

停HAS (用root)
/u01/app/11.2.0/grid/bin/crsctl stop has -f

停集群 (用root)
--停所有节点
/u01/app/11.2.0/grid/bin/crsctl stop cluster -all
--停止本地节点
/u01/app/11.2.0/grid/bin/crsctl stop cluster
--控制相关节点
/u01/app/11.2.0/grid/bin/crsctl cluster -n rac1 rac2

【启动顺序】
11g R2默认开机自启动,手动启动cluster/HAS/database
启集群
--所有节点
/u01/app/11.2.0/grid/bin/crsctl start cluster -all
--指定某节点/2节点同时启动
/u01/app/11.2.0/grid/bin/crsctl start cluster -n rac1 rac2

启HAS (用root)分别在每个节点执行
/u01/app/11.2.0/grid/bin/crsctl start has

启database
--所有节点启动
/u01/app/11.2.0/grid/bin/srvctl start database -d testdb
或每个节点SQL>STARTUP;
或者/u01/app/11.2.0/grid/bin/srvctl start instance -d testdb -i testdb1

验证
/u01/app/11.2.0/grid/bin/crs_stat -t -v
或/u01/app/11.2.0/grid/bin/crsctl resource -t
crsctl check cluster
检查本节点集群状态
crsctl check crs

/*
禁止CRS自启动
./crsctl disable crs
检查是否自启动
./crsctl config crs
设置自启动/每个节点执行
crs enables crs

grid ocr/votedisk检查
crsctl query css votedisk;
ocrcheck
*/

crsctl 命令是一个集群级别命令,可以对所有集群资源进行统一启动、停止等管理操作
srvctl 命令是一个服务级别命令,可以对单一服务资源进行统一启动、停止等管理操作
其中
-d,即database name,表示数据库名称
-n,即node name,表示节点名称
-i,即instance name,表示实例名称

Oracle 11g RAC的体系结构与启动顺序
https://blog.csdn.net/xianjuke008/article/details/84283458

RAC 管理(crs_stat、crsctl、srvctl)
http://www.voidcn.com/article/p-okvacbgg-cr.html

posted @ 2019-08-28 18:19 ritchy 阅读(...) 评论(...) 编辑 收藏