深入剖析Oracle启动过程内部初始化
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,1 Oracle启动选项;Oracle数据库在startup启动时,Oracle将在默认位置$ORACLE_HOME/dbs中查找初始化参数文件;Oracle以下面的顺序在其中寻找合适的初始化文件:S
千家信息网最后更新 2025年11月07日深入剖析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 nomountORACLE instance started.Total System Global Area 1603411968 bytesFixed Size 2253664 bytesVariable Size 1375734944 bytesDatabase Buffers 218103808 bytesRedo 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 bytesFixed Size 2253664 bytesVariable Size 1375734944 bytesDatabase Buffers 218103808 bytesRedo Buffers 7319552 bytesSQL> oradebug setmypidStatement processed.SQL> oradebug tracefile_name/oracle/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_3682.trcSQL> 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文件
[oracle@rhel6 ~]$ 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.trcOracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing optionsORACLE_HOME = /oracle/app/oracle/product/11.2.0System name: LinuxNode name: rhel6Release: 2.6.32-431.el6.x86_64Version: #1 SMP Sun Nov 10 22:19:54 EST 2013Machine: x86_64VM name: VMWare Version: 6Instance name: orcl
Oracle数据库mount启动读取控制文件,写日志文件
...WAIT #140528657591192: nam='control file sequential read' ela= 8 file#=0 block#=1 blocks=1 obj#=-1 tim=1502627703012561WAIT #140528657591192: nam='control file sequential read' ela= 2 file#=1 block#=1 blocks=1 obj#=-1 tim=1502627703012583WAIT #140528657591192: nam='control file sequential read' ela= 47 file#=0 block#=3 blocks=8 obj#=-1 tim=1502627703012650WAIT #140528657591192: nam='control file sequential read' ela= 13 file#=1 block#=3 blocks=8 obj#=-1 tim=1502627703012674...WAIT #140528657591192: nam='ADR block file read' ela= 847 =0 =0 =0 obj#=-1 tim=1502627707123048WAIT #140528657591192: nam='ADR block file read' ela= 576 =0 =0 =0 obj#=-1 tim=1502627707124068WAIT #140528657591192: nam='ADR block file read' ela= 562 =0 =0 =0 obj#=-1 tim=1502627707125013WAIT #140528657591192: nam='ADR block file read' ela= 473 =0 =0 =0 obj#=-1 tim=1502627707125891...
Oracle数据库open过程读取控制文件信息,与读取磁盘数据文件头部进行对比
alter database openEND OF STMTPARSE #140528657591192:c=0,e=274,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,plh=0,tim=1502627713479605WAIT #140528657591192: nam='control file sequential read' ela= 8 file#=0 block#=1 blocks=1 obj#=-1 tim=1502627713479904WAIT #140528657591192: nam='control file sequential read' ela= 4 file#=1 block#=1 blocks=1 obj#=-1 tim=1502627713479922WAIT #140528657591192: nam='control file sequential read' ela= 2 file#=0 block#=15 blocks=1 obj#=-1 tim=1502627713479931...WAIT #140528657591192: nam='Disk file operations I/O' ela= 11 FileOperation=2 fileno=1 filetype=2 obj#=-1 tim=1502627713481300WAIT #140528657591192: nam='Disk file operations I/O' ela= 6 FileOperation=2 fileno=2 filetype=2 obj#=-1 tim=1502627713481317WAIT #140528657591192: nam='Disk file operations I/O' ela= 4 FileOperation=2 fileno=3 filetype=2 obj#=-1 tim=1502627713481327WAIT #140528657591192: nam='Disk file operations I/O' ela= 4 FileOperation=2 fileno=4 filetype=2 obj#=-1 tim=1502627713481338WAIT #140528657591192: nam='Disk file operations I/O' ela= 5 FileOperation=2 fileno=201 filetype=2 obj#=-1 tim=1502627713481351
数据
文件
数据库
装载
日志
控制
过程
位置
参数
方式
状态
不同
合适
事件
信息
名称
后台
头部
实例
磁盘
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
下面数据库产品中
笔记本网络安全密钥在哪
网络安全法ppt 百度
数据库备份失败是什么意思
奉化一站式软件开发教程
数据库年龄排序
襄阳农村房屋登记数据库
数据库技术支持工程师发展
启用数据库
怀远软件开发文档在线咨询
奉贤区专业性网络技术推荐咨询
宜兴智能软件开发价格
企业软件开发诚信合作
青海双路机架服务器什么价位
数据库软件sql完整绿色版
网络安全手报剪纸
软件开发风险分析及管理
苹果联通无法验证服务器
fm1314数据库
传奇4ui是那个服务器
售楼软件开发
燃烧的远征退役服务器能用吗
java版无规则服务器
网络安全设计的股票
网络安全构架师工资高吗
数据库技术基础
赛博网络安全创新研究院
青岛泰捷网络技术有限公司
数据库 多对多
云服务器桌面管理软件