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;