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 ...
随机推荐
- ubuntu14.04 为Firefox安装flash插件
Ubuntu系统装好后,发现火狐浏览器播放不了视频,一直提示安装flash,但按照火狐浏览器上的提示Flash插件安装总是失败,那就只能手动安装了. (1) 去flash官网:http://get.a ...
- JavaScript中依赖注入详细解析
计算机编程的世界其实就是一个将简单的部分不断抽象,并将这些抽象组织起来的过程.JavaScript也不例外,在我们使用JavaScript编写应用时,我们是不是都会使用到别人编写的代码,例如一些著名的 ...
- yum源的配置
什么是repo文件?repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的 ...
- 转:理解Java泛型
JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进.但是,对于初次使用泛型类型的用户来说,泛型的某些方面看起来可能不容易明白,甚至非常奇怪.在本月的“Java 理论和实践”中 ...
- Sublime Text3 配置markdown插件
sublime是一个亮骚的文本编辑器,而且是跨三大平台,而markdown是一门标记语法,对于记录真是神器,具体语法百度很多,下面教你在sublime上配置markdown. 这两个神器结合起来简直好 ...
- object- c 字符串操作
Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重 ...
- 了解SVG
页的节点类型,我们将说明怎样通过Illustrator高速的把SVG文档加入到网页中.我们还会讲讲D3.js,一个强大的.SVG控制的JavaScript库. "SVG并不仅仅用于像素处理. ...
- adb 获取手机值
获取手机RAM值 adb shell cat /proc/meminfo 获取手机内存值 adb shell df /data
- [Angular 2] ngrx/store
@ngrx/store builds on the concepts made popular by Redux and supercharges it with the backing of RxJ ...
- Java基础知识强化24:Java中异常
1.什么是异常 ? Java程序运行中,常常会遇到非正常的现象,这种情况称为运行错误.根据性质可以分为错误和异常.Java程序中(无论谁写的代码),所有抛出(throw)的异常都必须从Th ...