oracle 数据库启动阶段分析数据库启动阶段分析
Oracle Server主要由两部分组成:Instance 和Database 。Instance 是指一组后台进程/线程和一块共享内存区域,而
Database是指存储在磁盘上的一组物理文件。本文由数据库 如何启动入手。
数据库的启动数据库的启动
首先来分析一下数据库的启动过程,Oracle 数据库的启动主要包含 3 个步骤:
((1)启动数据库到)启动数据库到 nomount 状态;状态;
((2)启动数据库到)启动数据库到 mount 状态;状态;
((3)启动数据库到)启动数据库到 open 状态。状态。
下面逐个来看看各个步骤的具体过程以其含义。
1. 启动数据库到启动数据库到nomount 状态状态
在启动的第一步骤,Oracle 首先寻找参数文件(参数文件(pfile/spfile ),),然后根据参数文件中 的设置,创建实例,分配内存,启动后
台进程。
在这里可以看到,只要拥有了一个参数文件,就可以凭之启动实例(Instance), 这一步 骤并不需要任何控制文件或数据文
件的参与。
在创建数据库时,如果在这一步骤就出现问题,那么通常可能是系统配置(内核参数等)存在问题,用户需要检查是否分配了
足够的系统资源等。 来看一下启动到 nomount 状态的过程:
[oracle@dbtest dbs]$ cd $ORACLE_HOME/dbs
[oracle@dbtest dbs]$ ls
hc_orcl.dat init.ora initorcl.ora lkORCL orapworcl spfileorcl.ora
[oracle@dbtest dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Wed May 4 10:36:45 2016
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 1152450560 bytes
Fixed Size 2212696 bytes
Variable Size 922750120 bytes
Database Buffers 218103808 bytes
Redo Buffers 9383936 bytes
SQL>
注意这里,Oracle 根据参数文件的内容,创建了 instance ,分配了相应的内存区域,启 动了相应的后台进程。 此时观察警报
日志文件(alert_<sid>.log ; show parameter dump查看路径),可以看到这一阶段的启动过程,读取参数 文件,应用参数启
动实例,所有在参数文件中定义的非缺省参数都会记录在警报日志文件中:
Starting up:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options.
Using parameter settings in server-side spfile /u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora
System parameters with non-default values:
processes = 150
sga_target = 176M
memory_target = 1104M
memory_max_target = 1104M
control_files = "/u01/app/oracle/oradata/orcl/control01.ctl"
control_files = "/u01/app/oracle/flash_recovery_area/orcl/control02.ctl"
db_block_size = 8192
compatible = "11.2.0.0.0"
db_recovery_file_dest = "/u01/app/oracle/flash_recovery_area"
db_recovery_file_dest_size= 3882M
undo_tablespace = "UNDOTBS1"
remote_login_passwordfile= "EXCLUSIVE"
db_domain = "oracle.com"
global_names = FALSE
dispatchers = "(PROTOCOL=TCP) (SERVICE=orclXDB)"
shared_servers = 5
audit_file_dest = "/u01/app/oracle/admin/orcl/adump"
audit_trail = "DB"
db_name = "orcl"
open_cursors = 300
diagnostic_dest = "/u01/app/oracle"
评论0
最新资源