数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle数据库的物理存储结构之控制文件


发布日期:2020年03月06日
 
Oracle数据库的物理存储结构之控制文件

数据库控制文件(control file)是一个很小的二进制文件它维护者数据库的全局物理结构用以支持数据库成功的启动和运行创建数据库时同时就提供了与之对应的控制文件在数据库使用过程中Oracle不断的更新控制文件所以只要数据库是打开的控制文件就必须处于可写状态如果犹豫某些原因控制文件不能被访问那么数据库也就不能正常的工作了

每一个控制文件只能与一个Oracle数据库相关联

控制文件包含了数据库实例的启动和正常操作时访问数据库所需的关于数据库的信息控制文件的内容只有Oralce可以修改数据库管理员和用户都不能对其进行编辑

控制文件包含了以下信息

数据库名称

数据库创建的时间戳

相关的数据文件重演日志文件的名称和位置

表空间信息

数据文件脱机范围

日志历史

归档日志信息

备份组和备份块信息

备份数据文件和重演日志信息

数据文件拷贝信息

当前日志序列数

检查点(checkpoint)信息

数据库名称和时间戳源自数据库创建之时数据库名称或是来自DB_NAME初始化从参数或者来自Cteate Database语句使用的名称

每当数据文件或重演日志文件被添加内容重新命名或者直接从数据库删除时控制文件都要进行更新以反应物理结构的变化记录下这些变化后Oracle就可以

在数据库启动的时候能够确定并打开数据文件和重演日子文件

在必须要恢复数据库的时候能够确定哪些文件是必须的哪些文件是可用的

PS如果数据库的物理结构发生了改变(使用了Alert Database语句)用户应该立刻备份控制文件

控制文件还记录了关于检查点的信息检查点进程(CKPT)就会在控制文件里记录重演日志文件的检查点位置信息这些信息用于数据库的恢复过程告诉数据库在这一点之前的已经记录下的重演条目不必进行恢复因为它们已经被写入数据文件了

由于控制文件对数据库的至关重要所以联机存储着多个副本这些文件一般存储在各个不同的磁盘上以便将因磁盘试下哦引起的潜在危险降至最低程度Oracle支持对同一个数据库并发的打开书写多个相同的控制文件通过为一个数据库在不同的磁盘上保存多个控制文件可以幼小的降低对于控制文件可能发生的单点失败例如包含一个控制文件的磁盘崩溃了如果Oracle试图访问这个被破坏的文件当前实例就会失败但是如果在不同的磁盘上保存了当前控制文件的复件就可以重启一个实例而无需进行数据库恢复

如果一个数据库所有的控制文件在操作的时候都丢失了那么数据库实例就会失败必须要进行介质恢复(media recover)但是介质恢复必须要使用一个稍微旧一点的控制文件的备份因为当前的控制文件备份不可用所以为了保护控制文件必须要注意一下几个方面

每一个数据库都要使用多路复制的控制文件

把每一个控制文件的复件保存在不同的物理磁盘上

使用操作系统的镜像机制

监控备份

在SQL*PLUS中查询控制文件

select name from V$control_file

上一篇:如何通过DBlink进行远程过程或函数调用

下一篇:oracle存储过程分页代码