本文介绍数据库实例关闭和启动过程的差异。承接上面《如何快速关闭数据库》,主要面向新接触oracle的dba
一: 启动数据库的几个阶段介绍
启动 Oracle 数据库有三个阶段:
· Start the instance
· Mount the database
· Open the database
可以通过在启动时发出不同的选项来控制哪个阶段命令。
STARTUP NOMOUNT
这只会启动 Oracle 实例。 甲骨文读取初始化参数文件 (pfile Or spfile) 用于确定控制文件所在的位置,在内存中创建系统全局区域 (SGA) 的大小以及背景
要创建的进程。 当实例启动时,将收到通知和SGA内存结构和大小的列表:
ORACLE instance started.
Total System Global Area 56011696 bytes
Fixed Size 52144 bytes
Variable Size 51785728 bytes
Database Buffers 4096000 bytes
Redo Buffers 77824 bytes
STARTUP MOUNT
此命令启动实例并装入数据库而不打开它。
Oracle 读取控制文件以获取有关数据文件和重做日志的信息,但不打开文件。 这是执行维护时必需的步骤,比如重命名数据文件、更改重做日志或启用等操作归档。
除了看到SGA列表外,还将看到“数据库”
STARTUP
此命令启动实例,然后挂载并打开数据库。 这数据库打开在线数据文件和在线重做日志,通常会获取
一个或多个回滚段。 当数据库打开时,将看到“数据库打开”已准备好进行正常的数据库操作。
如果使用“启动无挂载”或“启动挂载”,则必须使用 ALTERDATABASE 命令以继续打开数据库。
例如,从NOMOUNT 位置(即实例已启动,但数据库未加载或者打开),
需要使用两个命令:
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
STARTUP RESTRICT
受限模式打开数据库,但仅打开特权用户(具有 DBA 的用户)授予的角色)可以使用数据库。
STARTUP FORCE
此命令执行关机中止和启动的组合。 在关闭或启动数据库时遇到问题时才会有到此命令。
二:关闭数据库的接个阶段介绍
SHUTDOWN NORMAL
这是关闭命令的默认选项;因此,可以发出关闭,数据库将正常关闭。
发出语句后不允许新连接。 在数据库已关闭,Oracle 等待所有当前连接的用户
断开与数据库的连接。 数据库的下一次启动不会需要任何实例恢复。
SHUTDOWN IMMEDIATE
当您想要快速关闭但仍允许数据库干净地关闭。
Oracle 正在处理的当前 SQL 语句将立即终止。任何未提交的事务都将回滚。 (如果长期未承诺
事务存在,关闭可能不会很快完成。 甲骨文确实如此不等待用户断开连接;它隐式回滚活动事务
并断开所有连接的用户的连接。
SHUTDOWN TRANSACTIONAL
此选项仅在版本 8.1.X 中可用。 在需要时使用此选项以执行计划内关闭,同时允许活动事务完成。
任何新的连接或交易都将被拒绝。 毕竟是活跃的事务完成,数据库将关闭,就好像立即选项
被使用了。
SHUTDOWN ABORT
此选项只能作为最后的手段使用。 在以下情况下使用:
· 数据库运行不正常,您无法关闭正常或立即关闭。
· 需要立即关闭数据库。
· 启动数据库实例时遇到问题。
所有当前正在处理的客户机 SQL 语句将立即终止。任何未提交的事务都不会回滚。 数据库不会等待
对于当前连接到数据库的用户断开连接,断开所有连接的用户。
数据库实例的下一次启动将需要实例恢复;因此下一次启动可能需要比平时更长的时间
数据库启动和关闭过程的差异对比