当前位置:数据库 > Oracle >>

oracle的控制文件(control file)

oracle的控制文件(control file)
 
控制文件是一个小小的二进制文件,是oracle数据库的一部分,这个控制文件是用于记录数据库的状态和物理结构。
 
每个数据库必须要至少一个控制文件,但是强烈的建议超过一个控制文件,每个控制文件的备份应该放在不同的磁盘上。
 
一:控制文件包含如下信息:
1:数据库名
2:数据库创建的时间戳
3:数据文件的名字和位置
4:redo log (联机重做日志文件)的名字和位置
5:当前日志的序列号
6:checkpoint 信息
7:最近的 RMAN备份(我现在不知道这个是什么?)
 
二: 三种方式查找控制文件信息
 
1:通过查询  v$controlfile 表中的信息可以查到控制文件信息
[sql] 
SQL> select status, name from  v$controlfile;  
  
STATUS  NAME  
------- --------------------------------------------------  
        D:\APP\TOPWQP\ORADATA\ORCL\CONTROL01.CTL  
        D:\APP\TOPWQP\ORADATA\ORCL\CONTROL02.CTL  
        D:\APP\TOPWQP\ORADATA\ORCL\CONTROL03.CTL  
 
2:使用参数 control_files可以查到控制文件
因为前面提到过,控制文件信息是在启动参数文件 spfile或者pfile中有定义,所以可以通过查看这个参数的形式查找控制文件:
[sql] 
SQL> show parameter control_files;  
  
NAME                                 TYPE        VALUE  
------------------------------------ ----------- ------------------------------  
control_files                        string      D:\APP\TOPWQP\ORADATA\ORCL\CON  
                                                 TROL01.CTL, D:\APP\TOPWQP\ORAD  
                                                 ATA\ORCL\CONTROL02.CTL, D:\APP  
                                                 \TOPWQP\ORADATA\ORCL\CONTROL03  
                                                 .CTL  
 
3:通过操作系统查找文件命令 查找:
[plain] 
D:\>dir /s control*.ctl  
 驱动器 D 中的卷是 soft  
 卷的序列号是 000B-1FAE  
  
 D:\app\topwqp\oradata\orcl 的目录  
  
2013/06/18  21:24         9,781,248 CONTROL01.CTL  
2013/06/18  21:24         9,781,248 CONTROL02.CTL  
2013/06/18  21:24         9,781,248 CONTROL03.CTL  
               3 个文件     29,343,744 字节  
 
 
V$CONTROLFILE_RECORD_SECTION 列出了control_file中的信息
 
通过以下方式可以修改控制文件的位置:
[sql] 
alter system set control_files = '文件路径/文件名'  
scope= spfile   
 
scope= spfile 代表修改spfile中 control_file的文件地址
 
注意:
oracle启动的时候读取启动初始化信息,
初始化信息中包含了控制文件的位置
控制文件中包含了联机重做日志文件和数据文件的位置
 
 
这三个控制文件的大小一样,3个控制文件最好放在不同的物理磁盘上,往控制文件中写信息的时候并发同时写,所以3个控制文件的内容是相同的,
但是读取的时候,只读取第一个,如果3个控制文件有一个出错了,oracle就不能启动了。
 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,