• 如何正确启动关闭 Oracle RAC hello


    如果要关闭Oracle集群数据库系统,简单粗暴的方式是,操作系统执行OS命令:shutdown -h now;

    这种方式比较暴力,可以将数据库系统关闭,但是这样操作,Oracle的某些服务可能没有正常关闭,再次启动OS之后会出现好多服务处于UNKNOW的状态。

    那么如何正确的根据Oracle工作机制来关闭和启动RAC?

    RAC关闭的合理顺序:(注意事项:退出所有的客户端连接,比如SQLplus ...)

    停止各节点的监听服务-->>关闭数据库(实例)-->>关闭ASM实例-->>关闭节点集群服务-->>关闭服务器

    1.停止各节点的监听服务

    检查监听状态:

    srvctl status listener -n node1

    关闭监听:

    [oracle@node1 ~]$ srvctl stop listener -n node1
    [oracle@node2 ~]$ srvctl stop listener -n node2

    可以用上述命令在两个节点上分别停止对应的监听,也可以用以下命令在一个节点上执行,停止所有的监听。

    [oracle@node1 ~]$ srvctl stop listener

    再次检查监听状态:


    2.关闭数据库实例

    (1)查看数据库实例名:select instance_name from v$instance;

    例如查到的数据库实例名是:DEVDB

    (2)使用srvctl (service control)命令依次关闭集群服务 (注意:退出上边的sqlplus客户端,否则数据库无法正常关闭)

    A.检查数据库实例状态 (oracle用户下执行)

    srvctl status database -d DEVDB (数据库实例名根据实际填写,并且区分大小写)


    b 关闭数据库实例:

    srvctl stop database -d DEVDB

    以上命令仅在一个节点上执行就可以,也可以分别在两个节点上分开执行以下命令,实现相同的功能。

    srvctl stop instance -d DEVDB -i devdb1  (填写自实际的INSTANCE_NAME)
    srvctl stop instance -d DEVDB -i devdb2

    C 查看关闭状态:srvctl status database -d DEVDB

    3.关闭ASM实例

    查看ASM运行状态:srvctl status asm -n node1


    停止ASM实例:

    srvctl stop asm -n node1

    4.关闭RAC(CRS)集群服务

    (1)使用crs_stat 命令查询RAC节点的服务状态是否正常 (root或者grid用户)

    crs_stat -t -v

    (2)停止CRS集群服务

    停止两个节点的服务:

    srvctl stop nodeapps -n node1
    srvctl stop nodeapps -n node2

    ****
     
    (3)停止CRS集群软件
    [root@node1 ~]# find / -name crsctl 
    
    [root@node1 ~]# /u01/grid/11.2.0.4/bin/crsctl stop crs   (分别在两个节点的root用户下执行)
    
    CRS-2791: 正在启动用于关闭 'rac1' 上 Oracle High Availability Services 管理的资源的操作
    CRS-2673: 尝试停止 'ora.crsd' (在 'rac1' 上)
    CRS-2790: 正在启动关闭 'rac1' 上集群就绪服务管理的资源的操作
    CRS-2673: 尝试停止 'ora.asm' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.asm' (在 'rac1' 上)
    CRS-2792: 关闭 'rac1' 上集群就绪服务管理的资源的操作已完成
    CRS-2677: 成功停止 'ora.crsd' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.cssdmonitor' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.ctssd' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.evmd' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.asm' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.mdnsd' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.cssdmonitor' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.evmd' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.mdnsd' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.ctssd' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.asm' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.cssd' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.cssd' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.gpnpd' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.diskmon' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.gpnpd' (在 'rac1' 上)
    CRS-2673: 尝试停止 'ora.gipcd' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.gipcd' (在 'rac1' 上)
    CRS-2677: 成功停止 'ora.diskmon' (在 'rac1' 上)
    CRS-2793: 关闭 'rac1' 上 Oracle High Availability Services 管理的资源的操作已完成
    CRS-4133: Oracle High Availability Services has been stopped.

    注意:停止数据库集群软件,在一个节点执行即可,在节点2就不用执行了。

    (4)再次查看两个节点的CRS服务状态:

    [grid@node1 ~]$ crs_stat -t -v 
    CRS-0184: Cannot communicate with the CRS daemon. (服务已经关闭)
    [grid@node2 ~]$ crs_stat -t -v
    CRS-0184: Cannot communicate with the CRS daemon. (服务已经关闭) 

    当上述操作都执行完成,并且正常关闭后,就可以将服务器的关闭了。

    ================

    启动的顺序和关闭相反

    启动服务器-->>启动服务-->>启动ASM-->>启动实例-->>启动监听

    这里我们需要注意;Oracle RAC集群软件有一个属性可以设置,就是当服务器操作系统重启后,集群服务是否会随着操作系统一块启动;上边启动的顺序步骤是在:当禁用该自启动属性的情况下的操作顺序;关于该属性的查看与设置,详见下一篇稳文章:关于集群自启动的查看

    (1)首先启动服务器

    (2)启动CRS软件:
    [root@node1 ~]# find / -name crsctl 
    [root@node1 ~]# /u01/grid/11.2.0.4/bin/crsctl start crs
    查看服务:
    srvctl status nodeapps -n node1
    srvctl status nodeapps -n node2
    crsctl status res – -t

    (3)启动ASM

    查看ASM状态

    srvctl status asm -n node1

    启动ASM

    srvctl start asm -n node1
    srvctl start asm -n node2

    (4)启动实例

    srvctl status database -d node1
    srvctl start database -d node2

    (5)启动监听

    srvctl status listener   (RAC环境)
    srvctl start listener  
    或者 lsnrctl start

    ===============================

    重启=关闭+启动

    从上述各步可以看出,关闭和开启都是分步执行的,这样操作还有一个好处,可以帮助我们发现定位问题。

  • 相关阅读:
    SQL Server中生成指定长度的流水号
    属性与字段的区别
    Tomcat启动时的异常~!!!
    全面认识验证身份的数字证书
    MyEclipse 5.5 开发 Spring + Struts + Hibernate 的详解视频(长1.5小时)
    resin是什么?是Application Server吗?是WebLogic,Websphere他们的竞争对手吗?
    发现一个HTML得秘密
    用 MyEclipse 开发的最简单的 Spring 例子
    什么是WebSphere?WebSphere是干什么用的?中间件是什么意思?
    简单jsp+servlet实例
  • 原文地址:https://www.cnblogs.com/hellojesson/p/4501112.html
Copyright © 2020-2023  润新知