oracle入门(3)

oracle归档模式和非归档模式切换
oracle启动顺序简述

上一篇说到oracle的日志文件有联机重做日志和归档重做日志,只有在归档模式下,系统才会去写归档重做日志。

使用archive log list查看是否在归档模式下:

SQL> archive log list
Database log mode	       No Archive Mode
Automatic archival	       Disabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     176
Current log sequence	       177


一、非归档模式改为归档模式
1、命令:

shutdown;
startup mount;
alter database archivelog;
alter database open;
archive log list;

2、执行过程:

SQL> shutdown;  
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size		    2231096 bytes
Variable Size		  624952520 bytes
Database Buffers	  205520896 bytes
Redo Buffers		    2400256 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     176
Next log sequence to archive   177
Current log sequence	       177


二、归档模式改为非归档模式
1、命令:

shutdown;
startup mount;
alter database noarchivelog;
alter database open;
archive log list;

2、执行过程:

SQL> shutdown;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size		    2231096 bytes
Variable Size		  624952520 bytes
Database Buffers	  205520896 bytes
Redo Buffers		    2400256 bytes
Database mounted.
SQL> alter database noarchivelog; 

Database altered.

SQL> alter database open;

Database altered.

SQL> archive log list;
Database log mode	       No Archive Mode
Automatic archival	       Disabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     176
Current log sequence	       177


三、oracle启动顺序
我们会发现平时启动oracle用startup命令,而在设置归档模式时使用的是startup mount命令,所以oracle启动肯定是分为几个阶段的,在mount这个阶段才能修改归档模式。

可以看到启动时状态由 nomount -> mount -> open
1、nomount状态
nomount的过程就是启动oracle数据库实例的过程。在这个阶段oracle首先会寻找参数文件(pfile或者spfile),然后根据参数文件中的设置,创建数据库实例(分配内存,创建后台进程)。

2、mount状态
启动到mount状态后,oracle就可以从spfile或pfile中获取了control file的位置信息,找到控制文件,并读取控制文件。
在这个状态下可以对数据文件和日志文件做管理类操作。

3、open状态
在这个阶段,首先会对每个数据文件做一检查,检查数据文件头中的检查点计数(Checkpoint CNT)是否和控制文件中的检查点计数一致,然后再打开数据库,锁定数据文件。

4、startup命令等于以下三个命令组合

startup nomount;
alter database mount;
alter database open;

参考资料:
http://www.cnblogs.com/linjiqin/archive/2012/06/22/2558780.html
http://blog.csdn.net/pan_tian/article/details/7815266