1 简述
本文为使读者了解Oracle9i数据库启动过程,从alert.log文件入手,详细分析了database从close到nomount、到mount、最后到open的过程。
2 环境描述
硬件环境:IBM XSERIES 3650
操作系统:Windows2003标准版+Sp02
数据库版本:Oracle9.2.0.1
3 Alert文件详解
3.1 数据库启动到nomount状态下(实例启动,startup nomount)
首先Oracle先查找参数文件(静态或动态参数文件),搜索顺序为spfile.ora->spfile.ora->init.ora。如还是无法找到参数文件,则无法启动数据库。
其次根据参数文件内容,进行实例创建、内存分配。
最后启动后台进程。
Sat Sep 13 18:09:06 2008
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
SCN scheme 2
Using log_archive_dest parameter default value
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 9.2.0.1.0.
System parameters with non-default values: ——此处打印出参数文件内容
processes = 150
timed_statistics = TRUE
shared_pool_size = 50331648
large_pool_size = 8388608
java_pool_size = 33554432
control_files = D:\oracle\oradata\oratest\control01.ctl, D:\oracle\oradata\oratest\control02.ctl, D:\oracle\oradata\oratest\control03.ctl
db_block_size = 8192
db_cache_size = 25165824
compatible = 9.2.0.0.0
db_file_multiblock_read_count= 16
fast_start_mttr_target = 300
undo_management = AUTO
undo_tablespace = UNDOTBS1
……(此处省略部分参数)
star_transformation_enabled= FALSE
query_rewrite_enabled = FALSE
pga_aggregate_target = 25165824
aq_tm_processes = 1
PMON started with pid=2 ——此处启动后台进程
DBW0 started with pid=3
LGWR started with pid=4
……(此处省略部分参数)
CJQ0 started with pid=8
QMN0 started with pid=9
Sat Sep 13 18:09:09 2008
starting up 1 shared server(s) ...
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
3.2 启动数据库到mount状态(控制文件打开,alter database mount)
从刚才的参数文件中获取控制文件位置,并打开。
Sat Sep 13 18:09:29 2008
alter database mount
Sat Sep 13 18:09:33 2008
Successful mount of redo thread 1, with mount id 467611545. ——记录mount id
Sat Sep 13 18:09:33 2008
Database mounted in Exclusive Mode.
Completed: alter database mount ——mount成功
3.3 启动数据库到open状态(实例中控制文件描述的所有文件打开,alter database open)
打开控制文件中记录的数据文件、日志文件等,并进行检查点和完整性检查。如一切OK,即对外提供数据库服务。
Sat Sep 13 18:09:40 2008
alter database open
Sat Sep 13 18:09:40 2008
Thread 1 opened at log sequence 61
Current log# 1 seq# 61 mem# 0: D:\ORACLE\ORADATA\ORATEST\REDO01.LOG
Successful open of redo thread 1.
Sat Sep 13 18:09:40 2008
SMON: enabling cache recovery
Sat Sep 13 18:09:40 2008
Undo Segment 1 Onlined
Undo Segment 2 Onlined
……(此处省略部分参数)
Successfully onlined Undo Tablespace 1. ——在线undo表空间
Sat Sep 13 18:09:40 2008
SMON: enabling tx recovery
Sat Sep 13 18:09:41 2008
Database Characterset is ZHS16GBK ——打印出此数据库字符集
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: alter database open ——打开数据库成功