Oracle database启动过程分析
实例跟数据库的区别
实例(instance)是内存中的一块区域和一组后台进程的集合。它的作用是维护数据库文件的。而数据库(database)则是指存放数据的数据库文件。它是一系列格式化的数据的集合。它只有挂载到实例上,才能被访问,维护。
Oracle启动过程
要启动一个oracle数据库,首先需要启动一个实例,然后把数据库文件挂载到这个实例,最后把数据库设置成打开模式。这样就完成了一个数据库的启动过程。
首先,oracle根据环境变量中的ORACLE_SID确定要启动哪一个数据库,然后在$ORACLE_HOME/database/目录下找到初始化参数文件。根据初始化参数文件中的内容,分配系统内存,创建后台进程。这样实例就启动完成了。
然后根据参数文件中指定的控制文件路径,找到要挂载的数据库的控制文件,控制文件是个二进制文件,不可进行直接读写。实例根据控制文件内容,检查加载数据库文件,重做日志文件,这样,数据库就挂载到实例上了。最后将数据库至于打开状态。
从上面的过程可以看出,两个文件是非常重要的,他就是
初始化参数文件跟控制文件。初始化参数文件
原本oracle使用的pfile文件,是个文本文件。可直接用文件编辑器进行修改。后来,oracle在启动参数文件这部分引入了spfile文件,这是个二进制文件,不可以直接修改。但同时oracle也支持以文本格式的pfile文件为参数进行启动。启动之后可以根据现有的pfile文件对spfile文件进行重建。
以pfile参数文件启动的命令为
Startup nomount pfile=’/u01/initoracle.ora’
即使用pfile=‘’参数对启动参数文件进行指定。
启动实例后,可用
Create spfile from pfile=‘/u01/initoracle.ora’
对spfile文件进行重建。
当数据库的启动参数文件丢失的时候,可以直接把其他数据库的启动参数文件拷贝过来,然后以文本打开,对其中的参数进行调整,就可以直接使用了。
参数文件主要是用来启动实例的。它里面的主要参数主要设置了实例内存区各区域的大小。参数文件中另一个比较重要的参数就是控制文件位置。
当oracle实例启动后,若要挂载数据库,可使用命令
Alter database mount
命令对数据库文件进行挂载。这个命令主要是根据参数文件中的控制文件路径找到控制文件,然后根据控制文件的内容,把数据库文件,重做日志文件挂载到实例上。
控制文件
是个二进制文件,它里面主要记录了数据库文件的路径以及重做日志文件的路径,以及scn号等信息。因为这个文件很重要,一般数据库中留有这个文件的2-3个备份,并且数据库管理员应该物理的将这个文件备份至不同磁盘,甚至不同主机上。
一般参数文件中的控制文件路径会不止一个,当挂载数据库的时候,实例会检查所有路径下的参数文件的有效性并核对各个参数文件内容是否一致,若内容有差别或者某个路径下的参数文件失效,则实例会报错,并无法挂载数据库。
若只是数据库控制文件众多备份中的一个损坏了,那直接从备份的控制文件拷贝过来,并更改好文件名就可以直接使用了。
对于控制文件的备份还有一种方式,就是登陆数据库,使用命令
Alter database backup controlfile to trace;
这条命令就经控制文件中的内容备份到了trace文件中,可通过查看相应的trc文件来进行控制文件的恢复。当然,alert_log中会记录此备份语句的执行,并记录控制文件备份的trc文件的名字。
此命令对应的trace文件完整的告诉了你如何利用此文件中的信息进行控制文件恢复。首先包括两种方式,resetlog和noresetlog。Resetlog就是重置日志,当重做日志部分不可用或全部不可用的时候使用此方法。Nosetlog就是不重置日志,当日志文件全部可用的时候使用此选项托福答案 www.tfjy386.com
当然,如果控制文件完全丢失也没有备份,那么只有利用其它数据库中的trace文件中的信息,做一定的修改,然后重建控制文件。
Oracle database启动过程分析的更多相关文章
- Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)
ORACLE集群概念和原理(二) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之缓存融合技术和主要后台进程(四)
缓存融合技术和主要后台进程(四) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- Oracle Database 11g Express Editon介绍及安装
一.Oracle Database 11g Express版本介绍 公司项目开发中,使用的数据库是Oracle 10g和MySQL 5.5,最新因为开发需要,需要从后台读取一些数据.使用的客户端是PL ...
- Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)解决
环境:Windows 2008 R2 + Oracle 10.2.0.3 应用最新bundle patch后,扫描依然报出漏洞 Oracle Database Server 'TNS Listener ...
- Oracle Database 11g Release 2(11.2.0.3.0) RAC On Redhat Linux 5.8 Using Vmware Workstation 9.0
一,简介 二,配置虚拟机 1,创建虚拟机 (1)添加三块儿网卡: 主节点 二节点 eth0: 公网 192.168.1.20/24 NAT eth0: 公网 192.168.1 ...
- 【转】Oracle Database PSU/CPU
转自: http://www.cnblogs.com/ebs-blog/archive/2011/07/28/2167232.html 1. 什么是PSU/CPU?CPU: Critical Patc ...
- Linux环境下Oracle数据库启动停止命令
切换root至oracle数据库账号 su – oracle 查看数据库服务状态: ps -ef |grep oracle netstat –an|grep 1521 查看数据库监听状态: [orac ...
- Oracle Database 11g Express Edition学习笔记
修改字符集 使用用户system,通过sqlplus程序连接到Oracle数据库,输入以下命令,查看字符集: SQL> select userenv('language') from dual; ...
- Oracle Database 11g Express Edition 使用小结(windows)
如何启动oraclewindows系统服务中有一个服务叫:[OracleService[SID]]SID是你安装oracle xe时候的实例名,如果你没有改默认的是[XE], OracleServic ...
随机推荐
- 【HDOJ】1716 排列2
STL. /* 1716 */ #include <iostream> #include <algorithm> #include <cstdio> #includ ...
- 【动态规划】XMU 1032 装配线问题
题目链接: http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1032 题目大意: 一个物品在2条生产线上加工,每条线上n(n<=1000)个节点 ...
- Linux项目一
Linux项目一 引言: 这是我去年做的东西,一直没有时间整理,今天又要做一个基于这个项目的客户端与服务器版本. 以前我写的库文件中的函数耦合度很大,在一个函数中调用另一个函数,导致一无法拆开使用! ...
- Hat’s Words hdu-1247
就是查找这个单词能不能有两个单词组成,简单的字典树题目 ////////////////////////////////////////////////////////////// #include& ...
- Linux搭建SVN 服务器(转)
转自:http://my.oschina.net/lionel45/blog/298305 Linux搭建SVN 服务器 作者: 沈小然 日期:2014年 8月 5日 1 安装 ...
- CAD INSTALL PROBLEMS
Windows8操作系统,没有重装系统前安装Autodesk软件是完全没有问题的 把电脑还原系统后再安装Autodesk软件提示缺少LiteHtml.dll文件了 兼容性改为XP3,然后点管理员身份运 ...
- c# 根据自定义Attribute排序
add a class: public class ExportAttribute : Attribute { public int FieldOrder { get; set; } ...
- LOAD DATA INFILE Syntax--官方
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_n ...
- [转] IPC之管道、FIFO、socketpair
管道和FIFO作为最初的UNIX IPC形式,现在已用得较少.SocketPair可作为全双工版本的管道,较为常用,这里简单做个笔记 管道 * 只用于有亲缘关系的进程间通信 * 单向,即半双工 (双向 ...
- 《UNIX网络编程》之多客户连接服务端,可重用套接字对
该网络编程之客户端与服务端程序模板支持: 1. 多客户端同时连接服务端,即服务程序可以同时为多个客户端服务: 2. 服务端支持套接字对重用,即即使处于TIME_WAIT状态,仍可支持服务端重启: 3. ...