Oracle 数据库启动过程的三阶段
Oracle 数据库的启动过程分为三个阶段:
1. NOMOUNT
在此阶段,Oracle 实例启动但实例还没有加载数据库,因此此时无法连接到数据库。此阶段的主要任务包括:
- 检查数据库参数文件 (SPFILE 或 PFILE)。
- 初始化 SGA (System Global Area)。
- 创建 Oracle 数据库。
2. MOUNT
在此阶段,Oracle 实例已经在内存中成功启动,但是数据库还没有打开。此阶段的主要任务包括:
- 加载控制文件 (Control File),其中包含着数据库的结构信息和元数据。
- 打开归档文件 (Archive Log)。
- 验证数据库文件和归档文件是否可以正常访问。
3. OPEN
在此阶段,Oracle 数据库已经打开并处于可用状态。此时,用户可以连接到 Oracle 实例并访问数据库。此阶段的主要任务包括:
- 验证打开的数据库的状态并配置日志归档。
- 加载所有数据文件和临时文件。
停库四种模式详解
Oracle 数据库的停止过程可以采用四种不同的模式,分别是:
1. IMMEDIATE
IMMEDIATE 模式是 Oracle 数据库的一种正常关闭方式,它会等到所有用户连接终止之后,然后自动关闭数据库。如果 IMMEDIATE 模式无法正常关闭数据库,Oracle 数据库会尝试使用 TRANSACTIONAL 模式关闭数据库。
$ sqlplus / as sysdba
SQL> shutdown immediate;
2. TRANSACTIONAL
TRANSACTIONAL 模式会等待所有尚未提交的事务提交完成后再关闭数据库。如果数据库拒绝关闭,它会尝试使用 FORCE 模式。
$ sqlplus / as sysdba
SQL> shutdown transactional;
3. ABORT
ABORT 模式是 Oracle 数据库非正常关闭的一种方式,它会立即关闭数据库,并回滚任何未完成的事务。因为它是非正常关闭的一种方式,所以不能保证数据库的一致性和稳定性。一般情况下,应该尽量避免使用 ABORT 模式关闭数据库。
$ sqlplus / as sysdba
SQL> shutdown abort;
4. IMMEDIATE FORCE
IMMEDIATE FORCE 模式会立即关闭数据库,而不管是否有用户连接或未提交的事务。这种方式下的关闭是不属于 Oracle 数据库正常关闭的一种,应该尽可能避免使用。如果 IMMEDIATE FORCE 模式无法关闭数据库,则可以使用 OS 模式进行强制关闭。
$ sqlplus / as sysdba
SQL> shutdown immediate force;
示例说明
- 停止数据库并等待正在运行的事务完成后立即关闭数据库:
$ sqlplus / as sysdba
SQL> shutdown transactional;
- 立即强制关闭数据库:
$ sqlplus / as sysdba
SQL> shutdown immediate force;
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Oracle 数据库启动过程的三阶段、停库四种模式详解 - Python技术站