技术活动
CUUG学员就业信息
学员感言、就业资讯
报名热线
文档
当前您的位置:首页 > 技术活动 > 技术中心 > 文档
RAC 数据库的启动与关闭-CUUG

  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 []。


  直接在命令行下输入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的服务也会被关闭,如下

  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

  五、小结

  1、RAC数据库的启动需要考虑各个层次之间的依赖关系。集群数据库依赖于集群件上的服务,因此必须先启动集群上的相关服务(ONS,GSD,VIP)

  2、接下来在集群件服务之下的为ASM,ASM为共享存储提供统一管理,因此需要于实例先启动

  3、启动实例,将数据库切换到open 模式

  4、RAC数据库的关闭则正好与之相反,同样是按逐层递进的关系来进行