zoukankan      html  css  js  c++  java
  • [Oracle DBA学习笔记] STARTUP详解

    说明:参考数据库版本:10.0.2

    一、命令解析

    STARTUP options | upgrade_options

    options为:[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname] | [ OPEN [open_options] [dbname] ] | NOMOUNT ], NOMOUNT、MOUNT、OPEN为startup的三个阶段,不能在命令中同时存在。其中,open_options为:READ {ONLY | WRITE [RECOVER]} | RECOVER。

    upgrade_options为:[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET]

    1、FORCE解析:强制打开数据库,在open之前会先执行shutdown,相当于shutdown abort; startup open。在当前实例正在运行的情况下,如果不使用FORCE的话,startup时会报错。FORCE可以在调试环境或非生产环境中使用,需慎用。

    2、RESTRICT解析:以此模式打开的数据库只有拥有RESTRICTED SESSION系统权限的用户才能连接。打开后,可以使用ALTER SYSTEM命令将该状态设为disable,以关闭restricted将数据库正常打开。

    3、PFILE=filename解析:使用指定的文件中的参数打开实例。在未使用PFILE的情况下,startup以默认参数文件中的参数打开。在UNIX系统中,该文件默认为$ORACLE_HOME/dbs/init$ORACLE_SID.ora;在Windows系统中,该文件默认为%ORACLE_HOME%\database\initSID.ora。

    4、QUIET解析:使用该选项将致使实例在打开过程中不显示SGA的相关信息

    5、MOUNT dbname解析:以MOUNT方式打开实例,如果未指定dbname,则打开以参数文件中DB_NAME参数指定的数据库。

    6、OPEN解析:以OPEN方式打开实例

    7、NOMOUNT解析:以NOMOUNT方式打开实例

    8、RECOVER解析:该选项可以引导startup在打开实例之前进行完全恢复,与RECOVER DATABASE命令的功能相同。若要开启自动恢复,可将AUTORECOVERY参数值设为ON。如果redo日志文件未在指定位置,在根据提示指定备用的日志文件后,即使未开启自动恢复,recovery仍可继续进行。

    9、UPGRADE解析:以OPEN UPGRADE方式打开实例,并且设定特定参数值,使得能够运行upgrade脚本。只有在第一次打开一个新版本的数据库时才可使用UPGRADE选项。当使用该选项时,运行upgrade脚本可将当前安装的数据库版本升级为一个更新的版本。完成upgrade后,数据库需关闭和正常重启。

    10、DOWNGRADE解析:以OPEN DOWNGRADE方式打开实例,并且设定特定参数,似的能够运行downgrade脚本。当使用该选项时,运行downgrade脚本可将当前安装的数据库版本降为一个更旧的版本。完成downgrade后,数据库需关闭和正常重启。

    二、使用说明

      1、必须以SYSOPER或SYSDBA身份连接才有权限执行startup

      2、未带任何参数的startup相当于 STARTUP OPEN

      3、STARTUP OPEN RECOVER 即使在恢复失败的情况下,仍旧会加载并打开实例

    三、实例和数据库的开启

    STARTUP会分三步开启数据库,分别为:1、Start and instance(NOMOUNT);2、Mount the database(MOUNT);3、Open the database(OPEN)

    1、Start and instance

      在NOMOUNT状态下,ORACLE开启一个实例,它会读取SPFILE或者PFILE指定参数文件中已定义好的初始参数值。进而分配 SGA 共享内存区并创建后台进程。可以使用RESTRICT和FORCE选项开启实例。在RESTRICT模式下,只允许DBA做以下工作:

      执行结构维护,如重建索引;

      执行数据库文件的导入导出;

      执行数据库装载;

      临时阻止用户使用数据。

    2、Mount the database

      以MOUNT方式加载数据库,实例会根据初始化参数CONTROL_FILES指定的值找到并打开控制文件,从控制文件中获取数据文件和重做日志文件的信息。在此状态下,数据库仍旧处于关闭状态,只允许具有数据库管理权限的部分用户对数据库进行操作,例如:

      重命名数据文件;

      添加、撤销或重命名重做日志文件;

      启动和禁止重做日志归档;

      执行全部的数据库恢复。

      2.1 装载RAC

      可以设置初始化参数CLUSTER_DATABASE为true,以装载多个数据库。默认情况下该初始化参数值为false,即将以独占的方式装载数据库。在第一个实例以CLUSTER_DATABASE=TRUE装载数据库之后,后续的实例也以CLUSTER_DATABASE=TRUE装载数据库。

      2.2 装载副本数据库(standby database)

      副本数据库是主数据库的一个完全相同的副本,可以为灾难继续提供数据库的可用性。副本数据库永远都处于RECOVERY模式。只能使用ALTER DATABASE命令将数据库以standby模式装载,在standby模式下应用主数据库产生的归档重做日志。只能以READ ONLY打开(OPEN)副本数据库

      2.3 装载克隆数据库(clone database)

      克隆数据库是专门用于表空间时间点恢复(point-in-time recovery)的数据库副本。在执行时间点恢复时,装载克隆数据库并将数据库恢复到预期的时间,则将从克隆数据库导入元数据(metadata)到主数据库、复制表空间中的数据文件到主数据库

    3、Open the database

      以OPEN方式打开数据库,至此数据库才算完全打开。数据库在打开时打开在线(online)数据文件和重做日志文件。如果表空间在上一次数据库关闭时处于offline状态,则在重新打开数据库时该表空间依旧保持offline状态。如果有数据文件或者重做日志文件存在异常,则ORACLE将返回错误。在打开数据库时,实例会试图获取undo表空间。如果初始化参数UNDO_MANAGEMENT值为AUTO,则实例自动管理UNDO。初始化参数UNDO_MANAGEMENT默认值为MANUAL。如果使用表空间管理UNDO,则会自动管理UNDO,此为推荐模式;如果使用回滚段(rollback segment)管理UNDO空间,则使用MANUAL方式管理。如果数据库非正常关闭,并且存在分散的有疑议的事务,无论是已提交还是已回滚,当你重新打开数据库并完全恢复时,后台进程RECO能够自动地、立即地、永久地完成此工作。

    四、示例

    1、 STARTUP

      以默认参数文件(SPFILE)开启实例,装载默认的数据库,并打开数据库。

    2、 STARTUP OPEN dbname

      以默认参数文件(SPFILE) 开启实例,装载数据库dbname,并打开数据库。

    3、 STARTUP FORCE RESTRICT MOUNT

    4、 STARTUP PFILE=init_dbname.ora NOMOUNT

    5、 STARTUP FORCE RESTRICT PFILE=init_dbname.ora OPEN dbname

  • 相关阅读:
    发布全文检索类库外包
    给即将面试的人
    实验四 Web服务器2
    电子公文传输系统验收2功能测试
    整数范围与类型转换
    实验三电子公文传输系统1个人贡献
    socket测试
    电子公文传输系统验收4开发基础
    Web服务器1socket编程
    算法测试(课上测试)
  • 原文地址:https://www.cnblogs.com/mophee/p/2668283.html
Copyright © 2011-2022 走看看