欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle 11gR2 RAC 停库和启库

程序员文章站 2022-04-15 15:49:25
grid设置环境变量后可以在任意目录下执行,如root没设置的话需要带绝对路径export ORACLE_HOME=/u01/app/11.2.0/gridexport PATH=$ORACLE_HOME/bin:$PATH--/u01/app/11.2.0/grid/bin/crsctl或srvc ......

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