控制文件

原创 2012年03月23日 22:11:36

控制文件是数据库很重要的一个组成部分(数据库由控制文件、数据文件、日志文件组成),记录了当前实例连接的数据库的结构和行为并维护数据库的一致性


大家都知道,数据库启动分为shutdown、nomount、mount、open几个状态

SHUTDOWN-->NOMOUNT-->MOUNT-->OPEN

SHUTDOWN-->NOMOUNT:Instance started   启动相关的进程

NOMOUNT-->MOUNT:Control file opened for this instance  为启动的这个实例打开控制文件

MOUNT-->OPEN:ALL files opened as described by this control file for this instance  通过控制文件打开其它的文件(数据文件、日志文件)

控制文件规则:

1.一个数据库至少有一个控制文件,最多八个。参数control_file所列出的第一个,Oracle Server所读取的唯一个文件。当数据库的所有改变改会记录到所有的控制文件中。

2.二进制文件

3.它被记录在参数文件中

4.记录了数据库启动的SCN和关闭时的SCN号,并在数据库打开时验证其是否一致来维护数据库的一致性。

5.在Mount状态之后就一直在使用。

6.控制文件只能属于一个数据库

7.必不可缺。


控制文件的内容:

1.数据文件、联机日志文件的位置和名字

2.表空间的名字和大小位置

3.检查点信息

4.回滚段的信息

5.当前联机重做日志文件()的sequence号

6.联机重做日志文件的归档信息

7.备份信息


如何查看控制文件的信息?位置、个数

1.show parameter control_file

2.select name,value from v$parameter where name='control_files';

3.select name,status from v$controlfile;

4.select type,record_size from v$controlfile_record_section;   //可查看控制文件中记录的信息。



实现多路控制文件:

修改初始化参数control_files-->关闭数据库-->用操作系统的拷贝手段当前控制文件中的任一个到其他位置(参数中指定的位置)-->启动数据库就实现了多路。

疑问如何管理控制文件?备份和恢复

生气如何备份数据库控制文件?

1.其中一种,如果多路控制其中一个坏了,只要复一个己有的新的控制文件到相应的位置就可以,因为控制文件的内容都是一致的。

   前提是要先关闭数据库,为了保证复制过程中原有的控制文件没有改变。

a.alter database backup controlfile to trace as '/db/aa.txt'; //如果是trace就到uump路径下去找--归档模式下做的。

b.show parameter udump;

c.按时间排序ls -lrt,一般以sid_ora_<数字>.trc格式的文件,找出创建控制文件的命令,拷贝出来运行即可。

控制文件损坏的恢复就可以用上面的方法。



微笑2.RMAN备份










oracle 增加控制文件的方法

1、查看控制文件位置: SQL>select name from v$controlfile; NAME --------------------------------------------...
  • boy1076772357
  • boy1076772357
  • 2015年07月03日 10:10
  • 1592

控制文件损坏或者丢失的Oracle 10g数据库恢复控制文件一例

如果控制文件丢失或者损坏了,如何解决这个问题? 查看参数文件中的设置: SQL> show parameter CONTROL_FILES ; NAME                     ...
  • seagal890
  • seagal890
  • 2012年01月31日 21:03
  • 2311

遇到ORA-01207: 文件比控制文件更新 - 旧的控制文件解决办法-简单版

遇到这样的问题,如ORA-01207: 文件比控制文件更新 - 旧的控制文件 解决问题的思路是重建控制文件 注意: 1、不知道会不会丢一小部分数据。适用于不重要的库和已经停机的业务,或者急救业务。 ...
  • ggwxk1990
  • ggwxk1990
  • 2017年08月19日 16:55
  • 448

oracle重建控制文件

oracle重建控制文件 ORACLE的控制文件是数据库的非常重要的文件,它保存着数据库的连接实例(instance)和database的一个桥梁,它定义了当前数据库物理信息的状态。因此控制文件对于...
  • li19236
  • li19236
  • 2014年11月25日 18:04
  • 2644

Oracle 11g重建控制文件——控制文件全部丢失,从零开始

控制文件(control file)是一个相当小的文件(最多能增长到64M左右),其中包含Oracle需要的其他文件的一个目录。参数文件告知实例控制文件的位置,控制文件则告知示例数据库和在线重做日志文...
  • xiaobluesky
  • xiaobluesky
  • 2015年11月08日 15:15
  • 7162

手工重新创建控制文件----Oracle

控制文件对于Oralce数据库的作用,就好像微软操作系统中注册表的作用一样。控制文件是一个比较小的二进制文件,记录着数据库的结构信息。如果数据库控制文件发生孙华的话,则Oracle将无法正常启动。通常...
  • barryxt
  • barryxt
  • 2014年02月08日 16:41
  • 1374

控制文件的手工创建

     如果所有的控制文件都损坏,但是没有进行备份的情况下,需要我们手工进行创建控制文件。      控制文件是一个比较复杂的过程,也比较耗时,故强烈建议在数据库的文件结构发生变化的时候,使用如下的...
  • radkitty
  • radkitty
  • 2008年01月15日 16:30
  • 1654

rac环境下面添加控制文件

[oracle@rac1~]$ rman target / RecoveryManager: Release 11.2.0.2.0 Copyright(c) 1982, 2009, Oracle a...
  • wdnq1022
  • wdnq1022
  • 2016年11月14日 17:53
  • 576

控制文件和控制文件的自动备份,oracle11g 控制文件备份的延迟特性

一.概念普及   控制文件包括数据库的状态和数据库的物理结构信息,主要包括数据库名.数据库标识符(DBID),数据库字符集,数据文件信息 临时文件信息,在线重做日志文件信息,表空间信息,rman信...
  • gumengkai
  • gumengkai
  • 2016年01月21日 21:49
  • 1238

通过重建控制文件的方法恢复数据库

今天配置dataguard的时候,一不小心把主库的控制文件全删了,主库是集团的测试库,所以心里比较慌。静下心来在网上找了一些资料之后,发现可以通过重建控制文件的方法来恢复数据库,就做了一下测试。 ...
  • MisshqZzz
  • MisshqZzz
  • 2016年05月26日 14:44
  • 3316
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:控制文件
举报原因:
原因补充:

(最多只允许输入30个字)