关闭

20151121 控制文件

403人阅读 评论(0) 收藏 举报

database三要素

数据文件,日志文件,控制文件

控制文件,记录了数据库的结构和行为,并维护数据库的一致性(因为控制文件中间记录了启动和终止的scn),

比如数据库有多少个数据文件,日志文件,以及这些文件的状态

参数文件中定义控制文件的位置和个数 ,遵循分散存放的原则,至少放两份控制文件,最多八分,多个控制文件之间互为镜像的关系,而使用顺序由存放的位置决定

控制文件的初始化大小有创建数据库时决定

控制文件是一种二进制文件,一般不超过100m,mount阶段使用控制文件,而Mount阶段之后,=控制文件一直处于使用状态

控制文件只能被一个数据库拥有,

--

控制文件包含的内容;

a.数据库名字和标识

b.数据库创建的时间戳

c.表空间名字

d.数据文件和联机重做日志文件的位置和名字

e.当前联机重做日志的sequence号码(最新的)

f.检查点信息 数据库一致性

g.回滚段的开始和结束 

h.联机重做日志的归档信息

i.备份信息


相关的视图

v$controlfile 列出实例所有的控制文件的名字和状态

show parameter control_f;

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


查看控制文件的内容

1.strings 直接查看控制文件的二进制文件 ,可以查看有多少个数据文件,日志文件,表空间

2.alter database backup controlfile to trace as '...' 将控制文件备份到某一路径下面  

3.通过视图 desc v$controlfile_record_section;

select type,record_size from v$controlfile_record_section;


转储控制文件

alter system set events 'immediate trace name controlf level 10'

show parameter user_d

查看最新的文件

查看文件时的一个小窍门 :  ll -t 按时间排序查看某一路径下的文件

一般level10表示文件的所有内容

11g中直接查找跟踪文件

select value from v$DIAG_INFO where name='Default Trace File';


控制文件的管理

规划原则:多路复用 多个控制文件存放在不同的位置 

a.个数与位置控制

spfile和pfile都可以实现对控制文件的个数位置管理

spfile步骤:

修改spfile参数 control_files

一致性关闭数据库

增加或减少控制文件文件

启动数据库使用spfile

验证结果

pfile的修改

一致性关闭数据库

修改pfile参数 vi编辑器

增加或减少控制文件

启动数据库使用spfile

验证结果

b.状态管理

c.备份管理

d.恢复管理

e.新建控制文件语句

以下为spfile修改控制文件的操作步骤

alter system set control_files='/oracle/oradata/redhat5/control01.ctl' 比如说只保留01这个控制文件

shutdown immediate

startup mount

show parameter control_f

这样就减少了一个控制文件

然后再改回去

shutdown immediate 

startup nomount

alter system set control_files='/oracle/oradata/redhat5/control01.ctl','/oracle/oradata/redhat5/control02.ctl','/oracle/oradata/redhat5/control03.ctl' scope=spfi;e

 ORA-00205: error in identifying control file, check alert log for more info

翻译为:控制文件的错误,请检查警报日志中获得更多信息


今天碰到的错误

新建的两个控制文件报错导致实例无法启动

此时把原来的控制文件分别复制到新家的两个文件

ho cp /oracle/oradata/redhat5/control01.ctl /oracle/oradata/redhat5/control02

ho cp /oracle/oradata/redhat5/control01.ctl /oracle/oradata/redhat5/control03

然后再alter database mount ,alter database open即可


对控制文件的管理

a.状态管理

1.show parameter cvontrol_f

看路径下控制文件是否存在

2.查看控制文件所在的磁盘空间是否充足

df -H

3.ho ll -h /oracle/oradata.... 

应该维护控制文件的大小在100m以内

如果接近100m,应减少控制文件,一般情况下重建控制文件


对控制文件的备份

1.alter database backup controlfile to '' 路径  ,归档情况下可以这样备份

2.alter database backup controlfile to trace as ''  任何情况都可以这样备份

得到一个重建控制文件的语句在指定路径


rman备份

rman targrt/

先进入rman

backup current controlfile;

或者 backup database including current controlfile;

备份数据文件的同时备份控制文件

rman下show all可以查看控制文件是否自动备份,也可以通过自动备份的方式

CONFIGURE CONTROLFILE ON;




0
0
查看评论

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

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

oracle 增加控制文件的方法

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

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

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

oracle重建控制文件

oracle重建控制文件 ORACLE的控制文件是数据库的非常重要的文件,它保存着数据库的连接实例(instance)和database的一个桥梁,它定义了当前数据库物理信息的状态。因此控制文件对于一个数据库来说是非常重要的,在某些时候我们需要重新创建控制文件: 1.当控制文件丢失的时候,并且没...
  • li19236
  • li19236
  • 2014-11-25 18:04
  • 2651

控制文件的手工创建

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

rac环境下面添加控制文件

[oracle@rac1~]$ rman target / RecoveryManager: Release 11.2.0.2.0 Copyright(c) 1982, 2009, Oracle and/or its affiliates.  All rights reserv...
  • wdnq1022
  • wdnq1022
  • 2016-11-14 17:53
  • 576

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

一.概念普及   控制文件包括数据库的状态和数据库的物理结构信息,主要包括数据库名.数据库标识符(DBID),数据库字符集,数据文件信息 临时文件信息,在线重做日志文件信息,表空间信息,rman信息,检查点信息,还原点信息  在数据库mount状态,数据库会打开控制文件读取...
  • gumengkai
  • gumengkai
  • 2016-01-21 21:49
  • 1248

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

控制文件(control file)是一个相当小的文件(最多能增长到64M左右),其中包含Oracle需要的其他文件的一个目录。参数文件告知实例控制文件的位置,控制文件则告知示例数据库和在线重做日志文件的位置。控制文件还告知了Oracle其他一些事情,如已发生检查点的有关信息、数据库名(必须和db_...
  • xiaobluesky
  • xiaobluesky
  • 2015-11-08 15:15
  • 7185

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

控制文件对于Oralce数据库的作用,就好像微软操作系统中注册表的作用一样。控制文件是一个比较小的二进制文件,记录着数据库的结构信息。如果数据库控制文件发生孙华的话,则Oracle将无法正常启动。通常情况下,在创建数据库时会自动创建控制文件;并且当数据库的结构发生变化时,也会自动修改自动文件的内容。...
  • barryxt
  • barryxt
  • 2014-02-08 16:41
  • 1375

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

今天配置dataguard的时候,一不小心把主库的控制文件全删了,主库是集团的测试库,所以心里比较慌。静下心来在网上找了一些资料之后,发现可以通过重建控制文件的方法来恢复数据库,就做了一下测试。 第一种方法:通过重建控制文件的方法恢复数据库。 找个能启动的数据库,执行如下语句: a...
  • MisshqZzz
  • MisshqZzz
  • 2016-05-26 14:44
  • 3346
    个人资料
    • 访问:185974次
    • 积分:4823
    • 等级:
    • 排名:第7064名
    • 原创:303篇
    • 转载:26篇
    • 译文:0篇
    • 评论:2条
    最新评论