一、概念
控制文件的主要任务是管理数据库的状态以及描述数据库的物理结构

二、所含有的信息
1、数据库名
2、数据库标识符(DBID)
3、数据库创建时间戳
4、数据库字符集
5、数据文件信息
6、临时文件信息
7、在线重做日志信息
8、近期的归档日志信息
9、表空间信息
10、RMAN备份文件信息,即RMAN资料库
11、检查点信息
12、损坏的数据块注册表
13、还原点信息
14、重设日志SCN
15、脏数据块的数量

三、数据库启动【3个阶段】
1、NOMOUNT阶段:此阶段读取参数文件
2、MOUNT阶段:此阶段打开控制文件
3、OPEN阶段:此阶段读取控制文件,找到并打开所有的在线数据文件和在线日志文件
Oracle数据库启动时,通过读取参数文件中的control_files参数得知控制文件的路径,打开控制文件之后,可以得知数据文件和日志文件的路径,因此控制文件是实例启动过程中必不可少的一个因素。

只要数据库处于打开(open)状态,就会有多个进程出于各自的需要,对控制文件中的参数进行读写操作,比如:CKPT(读写)、LGWR(读写)、ARCn(读写)、DBWn(读)等后台进程,有时还包括服务进程,比如在启动实例或者在创建/删除表空间时,服务进程都会对控制文件有读/写操作。

CKPT进程:该进程对控制文件的访问非常频繁。它将增量检查点的位置以3秒一次的频率更新到控制文件中;此外,在发起完全检查点之后,CKPT除了更新数据文件头部的检查点位置,还会把所有数据文件头部的检查点位置也更新到控制文件中。

四、数据库标识符(DBID)
每个数据库都拥有一个编号(比如:1047875909),成为数据库标识符(DBID)。该编号在创建数据库时自动生成,并且Oracle不保证地球上两个同名数据库的DBID是唯一的。

DBID作用:散布于数据库的各个文件中:控制文件、数据文件和日志文件的头部。通过DBID编号进行区分各个文件隶属于哪个数据库,所以不同数据库的各个文件之间不能替换。

获得DBID编号:
1、查询v$database.dbid字段
2、查看控制文件自动备份的文件名

Oracle数据库 控制文件的更多相关文章

  1. Oracle数据库控制文件多路复用

    Oracle数据库控制文件多路复用多路复用控制文件,指的是在系统不同的位置上同时存放多个控制文件的副本,此时如果某个路径对应的磁盘发送物理损坏导致该控制文件损坏,就可以通过另一个磁盘上的控制文件进行恢 ...

  2. Oracle的控制文件

    一.控制文件 oracle的控制文件是极其重要的文件,它是一个较小的二进制文件. 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等等  在参数文件中描述其位置, ...

  3. Oracle数据库的文件以及Oracle体系架构

    第一部分.Oracle数据库的文件 1.参数文件:控制实例的行为的参数的集合 参数文件的作用 设定数据库的限制 设置用户或者进程的限制 设定数据库资源的限制 调整系统的性能 主要的参数文件 SGA_T ...

  4. Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法

    Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法 可能是误删文件导致在使用rman备份时候出现以下提示 RMAN-06169: could not read file hea ...

  5. oracle重建控制文件

    根据已有数据库创建新的控制文件#数据库必须是mounted或open状态 sql> alter database backup controlfile to trace; 可以使用以下快捷方式找 ...

  6. Oracle 重建控制文件

    前些天在做Oracle数据库恢复测试时,因为一些异常操作导致控制文件出了问题,数据库无法正常使用,这里记录一下重建控制文件的操作 一.使用sysdba用户登入数据库 此时普通用户已无法链接数据库 二. ...

  7. Oracle 重建控制文件一例

    环境:OEL 5.7 + Oracle 10.2.0.5 背景:在Oracle的运维过程中,时常会遇到一些场景是需要重建控制文件才可以解决的.本文的场景可以通过复制控制文件到新路径,运行一段时间后,再 ...

  8. Oracle的控制文件和日志文件

    --什么是控制文件 控制文件是数据库的一个二进制文件,它主要记录数据库的名称. 数据库的数据文件存放位置等信息. 一个控制文件只能属于一个数据库.如果控制文件丢失,这数据库就无法操作. --下面查询语 ...

  9. 关于oracle修复控制文件与数据文件不一致的问题----

    本小菜鸟周末鼓捣数据库关于rman恢复与备份方面的实验,结果不知道哪根筋搭错了,手一哆嗦,做了不知道什么操作,就出现了数据库打不开的严重状态,只能开启到mount状态,但是切换到open状态时就会报错 ...

随机推荐

  1. jquery数组内多维对象

    jquery数组内多维对象 var postData=[],obj,list; obj = !!obj ? obj : $('#dist_meici_checkinfo_form'); obj.fin ...

  2. 【MySQL】MySQL 如何实现 唯一随机数ID

    如果不是 UUID 好像比较困难 参考资料: http://bbs.csdn.net/topics/390001507 https://www.zhihu.com/question/20151242

  3. 【GoLang】转载:我为什么放弃Go语言,哈哈

    我为什么放弃Go语言 作者:庄晓立(Liigo) 日期:2014年3月 原创链接:http://blog.csdn.NET/liigo/article/details/23699459 转载请注明出处 ...

  4. ios oc 和 swfit 用dispatch_once 创建单例

    网上已经有方法了,我这里就是抄了下,原文链接 http://bj007.blog.51cto.com/1701577/649413 http://blog.csdn.net/u010124617/ar ...

  5. Java中的try,catch(Exception e),finally及return执行顺序

    结论: ①就算之前return,finally也会执行 ②finally的计算结果不影响之前的return值 ③finally的return值一定是最后的返回结果,因此将return放入finally ...

  6. 【leetcode】 Interleaving String (hard)

    Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = ...

  7. storyboard pushViewController 的时候,新的界面黑屏

    storyboard 创建的一级界面需要通过代码跳转到另一 storyboard 创建的界面的时候,通常我们会这样 其实 alloc init 相当于重新创建一个界面,所以我们 push 进入之后会发 ...

  8. 通过xib加载UITableViewCell的新方式

    我们以前通常会这样做 - (UITableViewCell  *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPa ...

  9. python eval和literal_eval

    eval是python中一个相当智能的函数,把参数当成表达式,进行最大限度的解析, 比如: a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]" b ...

  10. nfs server的配置 Starting NFS daemon: [FAILED]

    总结了一下是nfs server的制作过程:nfs(Network File System)其实就是说,这个机器的硬盘不够了,我要把文件放到别的服务器上去,服务器端的配置如下:首先(1)确保你的机器上 ...