RAC数据库与单实例的差异主要表现在多个实例通过集群件来统一管理共享的资源。因此原有的单实例的管理方式,如数据库、监听器等的关闭启动等可以使用原有的方式进行,也可以通过集群管理工具,命令行来集中管理,这也是推荐的管理方式。由于集群件crs位于数据库之上,即RAC数据库依赖于集群件,因此数据库的启动与关闭应该结合集群来考虑,下面以10g RAC来描述数据库启动与关闭过程,不涉及集群层的启动与关闭。
一、RAC 数据库启动与关闭顺序
1、关闭顺序
关闭OEM,关闭监听,关闭 Oracle 实例,关闭 ASM 实例,关闭节点应用程序
2、启动顺序
启动节点应用程序,启动ASM实例,启动oracle实例,启动监听,启动OEM<可选>
如果未使用ASM,则启动与关闭过程的有关ASM的操作可忽略
3、主要工具
srvctl,OEM,sqlplus。本文主要描述的是使用srvctl命令来完成
二、演示环境
- 1、环境
- 主机名 库名 实例名 asm实例
- -------- ------ ------- --------
- bo2dbp GOBO4 GOBO4A +ASM1
- bo2dbs GOBO4 GOBO4B +ASM2
- 2、数据库状态
- oracle@bo2dbp:~> ./crs_stat.sh
- Resource name Target State
- -------------- ------ -----
- ora.GOBO4.GOBO4A.inst ONLINE ONLINE on bo2dbp
- ora.GOBO4.GOBO4B.inst ONLINE ONLINE on bo2dbs
- ora.GOBO4.db ONLINE ONLINE on bo2dbp
- ora.bo2dbp.ASM1.asm ONLINE ONLINE on bo2dbp
- ora.bo2dbp.LISTENER_BO2DBP.lsnr ONLINE ONLINE on bo2dbp
- ora.bo2dbp.LISTENER_ORA10G_BO2DBP.lsnr ONLINE ONLINE on bo2dbp
- ora.bo2dbp.gsd ONLINE ONLINE on bo2dbp
- ora.bo2dbp.ons ONLINE ONLINE on bo2dbp
- ora.bo2dbp.vip ONLINE ONLINE on bo2dbp
- ora.bo2dbs.ASM2.asm ONLINE ONLINE on bo2dbs
- ora.bo2dbs.LISTENER_BO2DBS.lsnr ONLINE ONLINE on bo2dbs
- ora.bo2dbs.LISTENER_ORA10G_BO2DBS.lsnr ONLINE ONLINE on bo2dbs
- ora.bo2dbs.gsd ONLINE ONLINE on bo2dbs
- ora.bo2dbs.ons ONLINE ONLINE on bo2dbs
- ora.bo2dbs.vip ONLINE ONLINE on bo2dbs
- ora.ora10g.db ONLINE ONLINE on bo2dbs
- ora.ora10g.hr_ora10g.cs ONLINE ONLINE on bo2dbp
- ora.ora10g.hr_ora10g.ora10g1.srv ONLINE ONLINE on bo2dbp
- ora.ora10g.ora10g1.inst ONLINE ONLINE on bo2dbp
- ora.ora10g.ora10g2.inst ONLINE ONLINE on bo2dbs
- 上面的查询结果表明,当前集群中存在2个RAC数据库,一个是GOBO4,一个是ora10g
- 每个节点上配置了两个监听器,一个是缺省的1521端口监听器,一个是非缺省的监听器(LISTENER_ORA10G_BO2DBP)
- 数据库ora10g上创建了service为hr_ora10g
- 3、srvctl 命令
- srvctl是管理RAC数据库使用最频繁的命令,是service control的缩写,基本的用法是srvctl <command> <object> [<options>]。
- 直接在命令行下输入srvctl 则出现该命令的用法说明
- 该命令方式可以操作下列资源
- database,instance,asm,service,listener,node application(GSD,ONS,VIP)
三、关闭数据库
- 1、关闭oem服务(如果启动了oem,则应首先关闭oem服务,否则跳过)
- export ORACLE_SID=GOBO4A
- emctl stop dbconsole
- 2、关闭Oracle实例
- srvctl stop instance -d GOBO4 -i GOBO4A
- 3、关闭ASM实例
- srvctl stop asm -n bo2dbp
- 4、关闭节点服务(此操作将关闭指定节点的所有监听以及GSD,ONS,VIP)
- srvctl stop nodeapps -n bo2dbp
- 节点bo2dbp关闭后的结果
- oracle@bo2dbp:~> ./crs_stat.sh
- Resource name Target State
- -------------- ------ -----
- ora.GOBO4.GOBO4A.inst OFFLINE OFFLINE
- ora.GOBO4.GOBO4B.inst ONLINE ONLINE on bo2dbs
- ora.GOBO4.db ONLINE ONLINE on bo2dbs
- ora.bo2dbp.ASM1.asm OFFLINE OFFLINE
- ora.bo2dbp.LISTENER_BO2DBP.lsnr OFFLINE OFFLINE
- ora.bo2dbp.LISTENER_ORA10G_BO2DBP.lsnr OFFLINE OFFLINE
- ora.bo2dbp.gsd OFFLINE OFFLINE
- ora.bo2dbp.ons OFFLINE OFFLINE
- ora.bo2dbp.vip OFFLINE OFFLINE
- ora.bo2dbs.ASM2.asm ONLINE ONLINE on bo2dbs
- ora.bo2dbs.LISTENER_BO2DBS.lsnr ONLINE ONLINE on bo2dbs
- ora.bo2dbs.LISTENER_ORA10G_BO2DBS.lsnr ONLINE ONLINE on bo2dbs
- ora.bo2dbs.gsd ONLINE ONLINE on bo2dbs
- ora.bo2dbs.ons ONLINE ONLINE on bo2dbs
- ora.bo2dbs.vip ONLINE ONLINE on bo2dbs
- ora.ora10g.db ONLINE ONLINE on bo2dbs
- ora.ora10g.hr_ora10g.cs ONLINE ONLINE on bo2dbs
- ora.ora10g.hr_ora10g.ora10g1.srv ONLINE ONLINE on bo2dbs
- ora.ora10g.ora10g1.inst OFFLINE OFFLINE #注,由于bo2dbp上的ASM被关闭,所以实例ora10g1也被关闭
- ora.ora10g.ora10g2.inst ONLINE ONLINE on bo2dbs
- 如果是关闭整个数据库,则使用如下命令
- srvctl stop database -d <db_name>
- 上述命令使用后则,所有该数据库上的实例都将被关闭以及对应的.db的服务也会被关闭,如下
- oracle@bo2dbp:~> ./crs_stat.sh
- Resource name Target State
- -------------- ------ -----
- ora.GOBO4.GOBO4A.inst OFFLINE OFFLINE
- ora.GOBO4.GOBO4B.inst OFFLINE OFFLINE
- ora.GOBO4.db OFFLINE OFFLINE
- 对于监听器也可以使用srvctl来完成
- srvctl stop listener -n bo2dbp #关闭节点上缺省端口的监听器
- srvctl stop listener -n bo2dbp -l LISTENER_ORA10G_BO2DBP #此监听器为非缺省的,因此指定-l 加监听器的名字
四、启动数据库
1、启动节点服务
srvctl start nodeapps -n bo2dbp
2、启动ASM实例
srvctl start asm -n bo2dbp
3、启动Oracle实例
srvctl start instance -d GOBO4 -i GOBO4A
4、启动OEM
export ORACLE_SID=GOBO4A
emctl start dbconsole
如果是启动整个数据库,则使用如下命令
srvctl start database -d <db_name>
五、小结
1、RAC数据库的启动需要考虑各个层次之间的依赖关系。集群数据库依赖于集群件上的服务,因此必须先启动集群上的相关服务(ONS,GSD,VIP)
2、接下来在集群件服务之下的为ASM,ASM为共享存储提供统一管理,因此需要于实例先启动
3、启动实例,将数据库切换到open 模式
4、RAC数据库的关闭则正好与之相反,同样是按逐层递进的关系来进行
转:http://blog.csdn.net/leshami/article/details/8129506