深入剖析Oracle启动过程内部初始化

1 Oracle启动选项;

Oracle数据库在startup启动时,Oracle将在默认位置$ORACLE_HOME/dbs中查找初始化参数文件;Oracle以下面的顺序在其中寻找合适的初始化文件:

Spfile$ORACLE_SID.ora

Spfile.ora

Init$ORACLE_SID.ora

可以用几种方式启动oracle数据库,不同方式启动将影响启动数据库的程度,启动状态由nomount(数据库未装载)——>mount(数据库完成装载)——>open(数据库打开)

1.1 STARTUP NOMOUNT;

SQL> startup nomount
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size		    2253664 bytes
Variable Size		 1375734944 bytes
Database Buffers	  218103808 bytes
Redo Buffers		    7319552 bytes

Oracle读参数文件,打开实例,启动Oracle后台进程,给Oracle分配SGA。此时数据库状态为未装载。

1.2 ALTER DATABASE MOUNT;

SQL> alter database mount;

Database altered.

Oracle 打开并读取控制文件,获取数据文件和重做日志文件的名称和位置。此时数据库完成装载。

1.3 ALTER DATABASE OPEN;

SQL> alter database open;

Database altered.

Oracle打开数据文件和重做日志文件,至此Oracle可以对外提供服务。

2 通过10046事件查看内部启动过程

SQL> startup nomount;

Total System Global Area 1603411968 bytes
Fixed Size		    2253664 bytes
Variable Size		 1375734944 bytes
Database Buffers	  218103808 bytes
Redo Buffers		    7319552 bytes
SQL> oradebug setmypid
Statement processed.
SQL> oradebug tracefile_name
/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_3682.trc
SQL> alter session set events‘10046 trace name context forever,level 12‘;

Session altered.
SQL> alter database mount;

Database altered.

SQL> alter database open;

Database altered.

查看udump文件

[[email protected] ~]$ more /oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_3682.trc
Trace file /oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_3682.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /oracle/app/oracle/product/11.2.0
System name:    Linux
Node name:      rhel6
Release:        2.6.32-431.el6.x86_64
Version:        #1 SMP Sun Nov 10 22:19:54 EST 2013
Machine:        x86_64
VM name:        VMWare Version: 6
Instance name: orcl

Oracle数据库mount启动读取控制文件,写日志文件

...
WAIT #140528657591192: nam=‘control file sequential read‘ ela= 8 file#=0 block#=1 blocks
=1 obj#=-1 tim=1502627703012561
WAIT #140528657591192: nam=‘control file sequential read‘ ela= 2 file#=1 block#=1 blocks
=1 obj#=-1 tim=1502627703012583
WAIT #140528657591192: nam=‘control file sequential read‘ ela= 47 file#=0 block#=3 block
s=8 obj#=-1 tim=1502627703012650
WAIT #140528657591192: nam=‘control file sequential read‘ ela= 13 file#=1 block#=3 block
s=8 obj#=-1 tim=1502627703012674
...
WAIT #140528657591192: nam=‘ADR block file read‘ ela= 847  =0  =0  =0 obj#=-1 tim=150262
7707123048
WAIT #140528657591192: nam=‘ADR block file read‘ ela= 576  =0  =0  =0 obj#=-1 tim=150262
7707124068
WAIT #140528657591192: nam=‘ADR block file read‘ ela= 562  =0  =0  =0 obj#=-1 tim=150262
7707125013
WAIT #140528657591192: nam=‘ADR block file read‘ ela= 473  =0  =0  =0 obj#=-1 tim=150262
7707125891
...

Oracle数据库open过程读取控制文件信息,与读取磁盘数据文件头部进行对比

alter database open
END OF STMT
PARSE #140528657591192:c=0,e=274,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1502627713
479605
WAIT #140528657591192: nam=‘control file sequential read‘ ela= 8 file#=0 block#=1 blocks
=1 obj#=-1 tim=1502627713479904
WAIT #140528657591192: nam=‘control file sequential read‘ ela= 4 file#=1 block#=1 blocks
=1 obj#=-1 tim=1502627713479922
WAIT #140528657591192: nam=‘control file sequential read‘ ela= 2 file#=0 block#=15 block
s=1 obj#=-1 tim=1502627713479931
...
WAIT #140528657591192: nam=‘Disk file operations I/O‘ ela= 11 FileOperation=2 fileno=1 f
iletype=2 obj#=-1 tim=1502627713481300
WAIT #140528657591192: nam=‘Disk file operations I/O‘ ela= 6 FileOperation=2 fileno=2 fi
letype=2 obj#=-1 tim=1502627713481317
WAIT #140528657591192: nam=‘Disk file operations I/O‘ ela= 4 FileOperation=2 fileno=3 fi
letype=2 obj#=-1 tim=1502627713481327
WAIT #140528657591192: nam=‘Disk file operations I/O‘ ela= 4 FileOperation=2 fileno=4 fi
letype=2 obj#=-1 tim=1502627713481338
WAIT #140528657591192: nam=‘Disk file operations I/O‘ ela= 5 FileOperation=2 fileno=201 
filetype=2 obj#=-1 tim=1502627713481351
时间: 2024-10-09 21:30:26

深入剖析Oracle启动过程内部初始化的相关文章

flex启动过程和初始化

如果不了解Flex发布的swf结构和初始化流程,会在工作中遇到困难,Flex发布的swf结构和Flex对显示层级的划分是Flex架构中的一部分. Flex发布的swf结构 Flex生成的swf是个2帧的MovieClip,文档类继承SystemManager,主时间轴上没有任何内容,帧上也没有代码,2帧结构是为创建加载应用程序的默认加载器,这种早期就开始使用的加载方式在如今仍然具有优势,默认的加载器如图: 加载器的外观是通过代码绘制的,SystemManager使用工厂模式来创建应用程序,这使得

转载:oracle 启动过程--oracle深入研究

Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是一组线程)和一块共享内存区域:Database是指存储在磁盘上的一组物理文件.通过Instance与Database协同,Oracle数据库才能形成一个动态的可访问关系型数据库系统.本章将由数据库如何启动与关闭入手,开始和大家一起进入Oracle数据库的国度.1.1 数据库的启动从表象来看,数据库的

ORACLE 启动过程

1 STARTUP NOMOUNT 1.读取环境变量下dbs目录下的参数文件(spfile/pfile) 查找参数文件的顺序如上面列表的,读取优先级: spfilechongshi.ora > spfile.ora>initchongshi.ora 如果三个文件都找不到的话,那么将启动失败. 2.启动算法,分配内存 3.启动后台进程 4.开放alertSID.log文件和跟踪文件 2 MOUNT 1.把一个数据库和启动的实例关联起来 2. 在参数文件(spfile/pfile)中找到控制文件进

oracle启动过程

1.nomount状态(启动到此状态依赖于参数文件) startup nomount:分配实例,写审计文件和警报日志 查看当前启动状态:select status from v$instance;--STARTED nomount状态下: 可以修改参数: 可以查看内存和后台进程的信息:--内存:select * from v$sgainfo; 进程:select name from v$bgprocess where paddr<>'00'; 可以创建数据库: 可以重建控制文件: 2. 原文地

详解linux系统的启动过程及系统初始化

一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(bootloader)-->主引导设置加载其 BootLoader-->Kernel初始化-->initrd—>/etc/init进程加载/etc/inittab,其进程流 程图如下: 二.剖析详细启动过程 ⑴. POST开机自检:电脑主机打开电源的时候,随后会听到滴的一声,系统启动开始了开机

Oracle 数据库启动过程

Oracle启动过程涉及几种模式,这些模式涉及不同的文件,每个状态下数据库做不同的事情,同时这些模式适用于不同的维护需求,主要的模式有三种:NOMOUNT.MOUNT.OPEN. 1 NOMOUNT:启动数据库实例, 此时读取参数文件,但是不加载数据库: 2 MOUNT:启动数据库实例,加载数据库,但是数据库处于关闭状态: 3 OPEN: 启动数据库实例,加载并打开数据库: 4 FORCE: 终止实例并重启数据库,这种模式在数据库关闭或者启动遇到问题时使用,这种方式不到万不得已时不要使用,会有数

storm源码剖析(3):topology启动过程

storm的topology启动过程是执行strom jar topology1.jar MAINCLASS ARG1 ARG2 鉴于前面已经分析了脚本的解析过程,现在重点分析topology1.jar的执行. 以storm-starter中的ExclamationTopology为例,来进行剖析: public class ExclamationTopology { public static class ExclamationBolt extends BaseRichBolt { Outpu

Oracle数据库体系结构、启动过程、关闭过程

一.Oracle数据库体系结构体系结构由下面组件组成:1.Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1)数据库实例(Instance) 数据库实例由一些内存区和后台进程组成. (a)内存区:共享池.数据库高速缓存.重做日志缓存.流池以及其他可选内存区 (b)后台进程:系统监控进程(SMON).进程监控(PMON).数据库写进程(DBWR).日志写进程(LGWR).检验点进程(CKPT).其他进程 (

redis(一)内部机制的介绍和启动过程

redis(一)内部机制的介绍和启动过程 redis的基本介绍 redis服务端 redis客户端 redis的持久化 redis中的文件事件和时间时间 redis的启动过程 redis的基本介绍 redis是一种非关系型数据库,采用=key,value的形式来存储数据.key是二进制数据,对于value的数据类型,redis支持string.hash.list.set.sorted set五种类型.对于单个redis实例,内部使用多线程通信,但是对外采用RESP单线程通信协议,在TCP层通过二