• Oracle的启动与关闭


    启动数据库的前提条件:

    • 环境变量定义好($ORACLE_HOME,$ORACLE_SID,$PATH
    • 能密码文件认证或OS认证(确保能登入sys)
    • 有正确的参数文件(启动数据库需要查找参数文件,默认找spfile实例名.ora,如果没有再找spfile.ora,如果没有再找initSID.ora
    • 有足够内存
    • 参数文件中路径要存在,且有操作权限
    • 产品安装正确

     

    告警日志的存储位置由background_dump_dest这个参数决定.

    SQL> show parameter back             

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    background_core_dump                 string      partial

    background_dump_dest                 string      /u01/app/oracle/diag/rdbms/gaga01/gaga01/trace

     

    数据库启动或关闭的时间

    所有非缺省初始化参数的列表

    后台进程的启动

    例程使用的线程

    正在向其中写入信息的日志序列号LGWR

    有关日志切换的信息

    表空间的创建和回滚段的创建

    已发出的警报声明

    有关ORA-600等错误消息和区错误的信息

     

    Oracle 启动关闭命令(启动与关闭数据库通用方式:sqlplus命令或dbstart/dbshut

    一、使用sqlplus指令

    启动

    关闭

    Startup

    Shutdow

    Startup nomount

    Shutsown transactional

    Alter database mount

    Shutdown immediate

    Alter database open

    Shutdown abort

    二:dbstar/dbshut

    [oracle@WHOST Desktop]$ which dbstart

    /u01/app/oracle/product/11.2.4/dbhome_1/bin/dbstart

    [oracle@WHOST Desktop]$ which dbshut

    /u01/app/oracle/product/11.2.4/dbhome_1/bin/dbshut

    需要配置/etc/oratab文件,Y为能被启动,N为不能被启动

    [oracle@WHOST Desktop]$ vi /etc/oratab

    gaga01:/u01/oracle/11g:Y

    ORACLE启动时是否要把监听自动启动?

    需要修改ORACLE_HOME_LISTENER=$ORACLE_HOME$1修改为$ORACLE_HOME

    [oracle@WHOST Desktop]$ vi /u01/app/oracle/product/11.2.4/dbhome_1/bin/dbstart

     

     

    启动数据库 分三个阶段:

    • 阶段一:启动实例:nomount阶段
    • 阶段二:装载数据库:mount阶段
    • 阶段三:打开数据库:open阶段

    启动实例

    nomount阶段

     

    Startup nomount

     

     

        • 实例启动
        • 读取参数文件并判断定义是否有错误

    参数文件查找原则:spfilesid.ora spfile.ora initsif.ora

        • 内存分配:根据参数定义分配相关内存
        • 打开alert文件,跟踪文件并记录信息
        • 启动相关的后台进程

    tail -f /u01/oracle/admin/wendy/bdump/alter_wendy.log

     

    本阶段用的文件是参数文件,instance启动完毕,处理nomount阶段

     

    查看参数文件位置:

    Show parameter spfile

    Select name,value from v$parameter where name='spfile';

     

    启动数据库与参数文件:

    Startup nomount

    Ho rm /u01/oracle/11g/dbs/spfilewendy.ora

    Startup pfile='/u01/oracle/initwendy.ora' nomount

    Create spfile from pfile='/u01/oracle/initwendy.ora';

     

    此时,不可对数据做操作,可以

    修改参数create pfile/spfile,

    alter system set

    alter session

    装载数据库

    mount阶段

     

    Alter database mount

    使数据库与以前启动的实例关联

    定位并打开参数文件中执行的控制文件

    读取控制文件获取数据文件和重做日志文件的名称和状态

    读取控制文件,控制文件在参数文件中定义

    Show parameter control_file

     

    但此时不进行数据文件和联机重做日志文件是否存在的检查

    可以对日志文件和数据文件进行删除,创建,但不能对日志文件,数据文件进行打开操作.

    不能获取逻辑结构(表,表空间),只能对数据问及那进行添加,删除的物理操作.

     

    本阶段用的文件是控制文件,数据库处于mount阶段

    在mount阶段,你可以对数据库的物理结构进行操

    Alter database指令

    • 命名数据文件
    • 启用和禁用重做日志归档选项
    • 闪回功能打开与关闭
    • 执行完全数据库恢复
    • Create database指令
    • Drop database指令

    打开数据库

    open阶段

     

    Alter database open

    打开联机数据文件

    打开联机重做日志文件

     

    这个阶段会去检查数据文件和重做日志文件是否正常.

    首先判断文件是否存在

    然后验证所有数据文件和联机重做日志文件是否可以打开,并检查数据库的一致性.

    如果需要,系统监视器后台进程SMON启动实例恢复

    前滚以恢复尚未记录在数据文件中但已记录在联机重做日志中的数据

    打开数据库而不是等待回退全部事务后才使数据库可用

    未恢复事务锁定的数据处于open阶段,数据库启动完毕,数据库的逻辑结构与物理结构可以正常工作了.

    这个时候不能进行复制备份.因为当前数据文件和日志文件处于活动状态了.

    查看数据库当前状态

    desc v$database

    OPEN_MODE

     

    SQL> select OPEN_MODE FROM V$DATABASE;

    OPEN_MODE

    --------------------

    READ WRITE-----OPEN阶段

     

    1、如果得到错误ORACLE not available

    Oracle没有启动

    2、如果得到错误DATABASE not mounted

    ORACLE处于nomount阶段

    3、如果得到结果是MOUNTED

    ORACLE处于mount阶段

    4、如果得到结果是READ WRITE

    ORACLE处于OPEN阶段

     

    ORACLE启动的指令

     

    Startup[FORCE][RESTRICT][PFILE=finename][OPEN][RECOVER][database][MOUNT][NOMOUNT]

     

    OPEN:

    使用户得以访问数据库

    MOUNT

    为某些DBA活动装载数据库但不允许用户访问数据库

    NOMOUNT

    创建SGA并启动后台进程但不允许访问数据库

    PFILE=parfile

    允许使用非缺省参数文件配置实例

    FORCE

    在执行正常启动之前终止运行的实例

    这个指令是强制将数据库关闭后再启动.最好不好使用.

    RESTRICT

    只允许具有RESTRICTED SESSION权限的用户访问数据库

    修改字符集时可以使用这方式启动.

    RECOVER

    在启动数据库时开始介质恢复

     

    几种启动方式:

    启动方式

     

     

    1、startup nomount

    非安装启动

    重建控制文件、重建数据库

    启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件

    2、startup mount dbname

    安装启动

    数据库日志归档、数据库恢复、重新命名一些数据库文件

    如:系统表空间或日志文件

    执行“nomount”,然后打开控制文件

    3、startup open dbname

     

    先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,

    这种方式下可访问数据库中的数据。

    4、startup

     

    等于以下三个命令

    startup nomount

    alter database mount

    alter database open

    5、startup restrict

    约束方式启动

    这种方式能够启动数据库,但只允许具有一定特权的用户访问

    非特权用户访问时,会出现以下提示:

    ERROR:

    ORA-01035: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用

    6、startup force

    强制启动方式

    强制启动方式

    当不能关闭数据库时,可以用startup force来完成数据库的关闭

    先关闭数据库,再执行正常启动数据库命令

    7、startup pfile=参数文件名

    带初始化参数文件的启动方式

    先读取参数文件,再按参数文件中的设置启动数据库

    例:startup pfile=E:/Oracle/admin/oradb/pfile/init.ora

    8、startup EXCLUSIVE

     

     

    Alter database mount

     

    nomount启动到mount

    Alter database open

     

    由mount启动到open

     

    Oracle 启动过程


     

     

    关闭数据库

    将缓冲区高速缓存中的更改及重做日志缓冲区高速缓存中的条目写入数据文件和联机重做日志文件

    关闭所有联机数据文件和联机重做日志文件

    卸装数据库

    关闭其控制文件

    关闭实例

    ALTER文件和跟踪文件将关闭

    SGA被回收并且后台进程被终止

     

    SHUTDOWN[NORMAL][TRANSACTIONAL][IMMEDIATE][ABORT]

     

    关闭模式:

    A=ABORT

    I=IMMEDIATE

    T=TRANSACTIONAL

    N=NORMAL0

    关闭模式

    A

    I

    T

    N

    允许建立新连接

    等待到当前会话结束

    等待到当前事务处理结束

    强制执行检查点操作并关闭文件

     

    I T N这三种模式关闭数据库,在数据库关闭前,都会将buffer cache中的脏数据刷新到磁盘文件,这个操作被成为完全检查.因为所有的脏数据都被写进磁盘,因此不会丢失用户所做的修改.下次启动时也不需要利用日志进行恢复.我们称这种方式关闭的数据库是一致的数据库,也叫干净的数据库.

     

    A这种模式关闭数据库,ORACLE会立即退出,并不刷新脏数据的磁盘.

     

    sql>shutdown 其参数 :shutdown有四个参数,四个参数的含义如下:

    Normal 需要等待所有的用户断开连接

    normal需要在所有连接用户断开后才执行关闭数据库任务,所以有的时候看起来好象命令没有运行一样!在执行这个命令后不允许新的连接

    正常关闭数据库,normal关闭数据库时,除了不允许建立新连接外,允许当前正在进行的会话继续进行,当前正在进行的事务,也可以正常运行知道终止.

    Immediate 等待用户完成当前的语句

    immediate在用户执行完正在执行的语句后就断开用户连接,并不允许新用户连接。

    oracle会自动回退没有提交的事务,断开所有连接,关闭所有没有结束的会话,立即关闭数据库

    Transactional 等待用户完成当前的事务

    transactional 在拥护执行完当前事物后断开连接,并不允许新的用户连接数据库。

    会等待所有事务结束后,就关闭数据库,无论会话是否退出.

    在transactional完成关闭操作期间,不允许有的事务,更不允许连接,但可以使用select查询

    Abort 不做任何等待,直接关闭数据库

    abort 执行强行断开连接并直接关闭数据库。

     

    Oracle 关闭过程

     


     

    几种关闭方式:

    关闭方式

     

     

    1、shutdown normal

    正常方式关闭数据库

     

    2、shutdown immediate

    立即方式关闭数据库

    在SVRMGRL中执行shutdown immediate,数据库并不立即关闭,

    而是在Oracle执行某些清除工作后才关闭(终止会话、释放会话资源),

    当使用shutdown不能关闭数据库时,shutdown immediate可以完成数据库关闭的操作。

     

    3、shutdown abort

    直接关闭数据库,正在访问数据库的会话会被突然终止

    如果数据库中有大量操作正在执行,这时执行shutdown abort后,重新启动数据库需要很长时间

  • 相关阅读:
    关于 Uboot 中有趣的 0xdeadbeef 填充
    举例分析 Makefile 中的 filter 与 filter-out 函数
    java时间"yyyy-mm-dd HH:mm:ss"转成Date
    mysql 5.8 查询最新一条数据
    mybatis 打印SQL
    mybatis动态sql中的trim标签的使用
    Mybatis 动态 SQL
    Linux mysql启动与关闭
    maven 添加自己下载的jar包到本地仓库
    centos 安装java1.8
  • 原文地址:https://www.cnblogs.com/thescentedpath/p/startupadndshutdown.html
Copyright © 2020-2023  润新知