关闭

20151121 控制文件

350人阅读 评论(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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:140902次
    • 积分:4193
    • 等级:
    • 排名:第8327名
    • 原创:286篇
    • 转载:26篇
    • 译文:0篇
    • 评论:2条
    最新评论