关闭

控制文件

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

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


大家都知道,数据库启动分为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备份










0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:129691次
    • 积分:2100
    • 等级:
    • 排名:第19021名
    • 原创:75篇
    • 转载:14篇
    • 译文:1篇
    • 评论:10条
    最新评论