• 10.数据库的启动和关闭06


    1.前言

      数据库的启动,通过只需要一个startup就完成了,实际上在后台Oracle是通过nomount、mount、open这3个步骤来完成的,将这个过程逆向过来,那么实际上当通过shutdown来关闭数据库时,实际上数据库也就经历了close、dismount、shutdown三个步骤。

    2.数据库关闭的步骤

      以下是Oracle 10g中数据库关闭的分步操作  

    SQL> alter database close;
    alter database close
    *
    ERROR at line 1:
    ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected

      注意Close数据库仅允许连接的情况下进行,否则可以就会出现如下的报错。

      第一步: 

    SQL> alter database close;
    
    Database altered.

       日志信息:

    Sat Sep 25 23:22:56 2021
    alter database close
    Warning: ALTER DATABASE CLOSE is not a publicly supported command.
    Sat Sep 25 23:22:56 2021
    SMON: disabling tx recovery
    All dispatchers and shared servers shutdown
    CLOSE: killing server sessions.
    CLOSE: all sessions shutdown successfully.
    Stopping background process SMCO
    SMON: disabling cache recovery
    Sat Sep 25 23:22:57 2021
    Shutting down archive processes
    Archiving is disabled
    Archive process shutdown avoided: 0 active
    Thread 1 closed at log sequence 12
    Successful close of redo thread 1
    Completed: alter database close
    Sat Sep 25 23:23:16 2021
    alter database dismount
    Sat Sep 25 23:23:16 2021
    idle dispatcher 'D000' terminated, pid = (20, 6)
    Completed: alter database dismount

      第二步  

    SQL> alter database dismount;
    
    Database altered.

      日志信息 

    Sat Sep 25 23:23:16 2021
    alter database dismount
    Sat Sep 25 23:23:16 2021
    idle dispatcher 'D000' terminated, pid = (20, 6)
    Completed: alter database dismount

      第三步

    SQL> shutdown
    ORA-01507: database not mounted
    
    
    ORACLE instance shut down.
    SQL> 

      日志信息

    Sat Sep 25 23:23:27 2021
    Shutting down instance (normal)
    Shutting down instance: further logons disabled
    Stopping background process MMNL
    Stopping background process MMON
    License high water mark = 4
    All dispatchers and shared servers shutdown
    ALTER DATABASE CLOSE NORMAL
    ORA-1507 signalled during: ALTER DATABASE CLOSE NORMAL...
    ARCH: Archival disabled due to shutdown: 1090
    Shutting down archive processes
    Archiving is disabled
    Archive process shutdown avoided: 0 active
    ARCH: Archival disabled due to shutdown: 1090
    Shutting down archive processes
    Archiving is disabled
    Archive process shutdown avoided: 0 active
    Sat Sep 25 23:23:31 2021
    Stopping background process VKTM:
    Sat Sep 25 23:23:33 2021
    Instance shutdown complete

     在使用shutdown命令关闭数据库时,还有几个可选参数,这几个参数分别是normal、immediate、transactional、abort

    3.几种关闭方式的对比

      3.1 shutdown normal

        shutdown normal是数据库关闭shutdown命令的缺省选项,当我们执行shutdown时,Oracle即以正常方式关闭数据库,发出该命令后,任何新的连接都不再允许连接到数据库,但是在数据库关闭之前,oracle需要等待当前连接的所有用户都从数据库退出。

        采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复,但是由于Normal方式要等到所有用户断开连接后才能关闭数据库,所以等待时间可能超长,,在生产环境中,这种方式几乎无法关闭有大量用户连接的数据库,所以很少被采用。

      3.2 shutdown immediate

         shutdown immediate是最为常用的一种关闭数据库的方式,使用这个命令时,当前正在被oracle处理的事务立即中断,未提交的事务将全部回滚,系统不等待连接到数据库的用户退出,强制断开所有的连接用户,然后执行检查点,将变更数据全部写回数据文件,关闭数据,使用这种方式关闭数据库,在下次启动数据库时不需要进行实例恢复,是一种安全的数据库关闭方式。

        但是注意,如果数据库系统繁忙,当前有大量事务执行(甚至是大事务正在处理),那么使用此选项关闭数据库也可能需要大量时间。

      3.3 shutdown transactional

        shutdown transactional 仅在Oracle 8i后可用,使用该命令时,数据库不再允许建立新的连接,禁止新事务的进行,但是允许当前活动事务执行完毕。

        在所有活动的事务完成后,数据库将与shutdown immediate同样的方式关闭数据库。

      3.4 shutdown abort  

        shutdown abort 是最不推荐采用的关闭数据库的方法,使用该选项,数据库会立即终止所有用户连接,中断所有事务,立即关闭数据库,使用这种方式关闭数据库,未完成的事务不会回滚,数据库也不会执行检查点,所以在下次启动时,数据库必须执行实例恢复,实例恢复可能会需要大量的时间,数据库的启动因此可能需要等待很长时间。

        abort的方式关闭数据库,就类似于数据库服务突然断电,可能会导致不一致的情况出现,所以不到万不得已,轻易不要使用这种方式关闭数据库,那么什么时候使用shutdown abort方式关闭数据库呢?以下是一些常见的场景:

    • 数据库或应用异常,其他方式无法关闭数据库
    • 因为马上到来的断电或者其它维护情况,需要快速关闭数据库
    • 启动异常后需要重新尝试启动
    • 当使用shutdown  immediate无法关闭时;
    • 需要快速重新启动数据库
    • shutdown 超时或异常    

              

      

  • 相关阅读:
    文件限额
    Shell命令
    HDFS基本概念
    hadoop学习
    CentOS 5.6怎么安装MongoDB数据库?
    RHEL/CentOS 6.x使用EPEL6与remi的yum源安装MySQL 5.5.x
    centos6.x yum 安装 mysql5.6 mysql5.7
    Centos6.4环境下DNS服务器的搭建
    CentOS系统中使用iptables设置端口转发
    通过WEB网管登录
  • 原文地址:https://www.cnblogs.com/zmc60/p/15336159.html
Copyright © 2020-2023  润新知