了解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成功 |
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 ——打开数据库成功 |