1、控制文件概念相关
数据库成功启动、操作所必须的一个二进制文件。当数据库使用时数据库学习通测试题答案,oracle将持续不断的更新控制文件数据库学习通测试题答案,因此,每当数据库处于“OPEN”状态时,必须确保控制文件可用于写。如果某些因素导致控制文件不可用,那么数据库也无法发挥正常的作用。此外,每个控制文件只与一个数据库相关联。
2、 为什么需要控制文件
控制文件作为数据库的核心文件之一,其在数据库运行中起着关键的作用:
包含数据库打开时所需要的数据文件、联机日志文件以及其它相关文件等信息;
控制文件记录数据库的结构变化信息;譬如:当DBA添加、删除、重命名一个数据文件或者联机日志文件时,数据库将依此结构变化情况而更新控制文件;
记录着数据库未打开状态而必须要访问的元数据信息;
3、控制文件内的内容
具体而言,控制文件内的内容包含以下内容:
数据库名
数据库创建时间戳
关联的数据文件和联机日志文件名和路径
表空间信息
离线数据文件
日志历史
归档日志信息
备份集和备份片信息
备份数据文件和联机日志文件信息
数据文件copy信息
当前日志sequence号
检查点信息
数据库名和时间戳源于数据库的创建,数据库名或者由初始化参数DB_NAME指定,或者在CREATE DATABASE语句中指定。
每当数据文件或redo文件添加、重名、删除时,控制文件会做相应的更新以反应这类物理结构的变化。这些变化是会被记录的,因此:
在数据库启动时,oracle可以确定数据文件、联机日志文件的打开。
假设需要数据库恢复,oracle可以确定需要或者可用的文件。
因此,如果对数据库执行数据库学习通测试题答案了物理结构变化(ALTER DATABASE),请及时备份数据库的控制文件。
4、控制文件结构
数据库的信息是存放在控制文件的不同部分之中。每个部分是关于数据库的某方面的一组记录集。譬如,控制文件一部分跟踪数据文件并包含一组记录,一条记录对应一个数据文件。每个部分存储在控制文件的多个逻辑块上。在一个部分中,记录可以跨块记录。
控制文件包含以下类型的记录:
可循环使用的记录
可循环使用的记录是非关键信息记录。如果在需要时,可被覆盖使用。当所有可用记录槽都耗尽之后,数据库或者扩展控制文件,或者覆盖最早的记录以便存放新记录。这类记录包含以下类型:
日志历史(log history)
OFFLINE RANGE
归档日志(ARCHIVE LOG)
备份集(BACKUP SET)
备份片(BACKUP PIECE)
备份数据文件(BACKUP DATAFILE)
备份联机日志文件(BACKUP REDOLOG)
数据文件拷贝(DATAFILE COPY)
备份错误(BACKUP CORRUPTION)
复制错误(COPY CORRUPTION)
已删除的对象(DELETED OBJECTS)
PROXY COPY
不可循环使用的记录
不可循环记录包含着关键信息,不会经常被修改。此外,这类信息不能被擦写、覆盖。譬如:表空间、数据文件、联机日志文件、日志文件线程等信息。数据库永远不会覆盖这类信息,除非对应的对象已从表空间中删除。这类记录包含以下类型:
数据库信息
检查点进程
联机日志线程、联机日志
数据文件
文件名(数据文件名)
表空间
临时数据文件名
rman配置信息
读、写控制文件块与读写数据文件块是不一致的。对控制文件的读写,oracle数据库直接从磁盘读写至PGA。每个进程分配一定数量的PGA内存用于控制文件块的读写。
5、有关控制文件参数
CONTROL_FILES:指定控制文件的路径。该参数指定一个或者多个控制文件名,以逗号分分隔。数据库启动时,实例通过这个参数定位到控制文件。
CONTROL_FILE_RECORD_KEEP_TIME:该参数指定可重用的记录在控制文件中存储的最小天数。超过这个最小的天数,可重用的记录就有可能被覆盖。在一个新记录要添加如可重用的部分时,但该部分最早的可重用记录却未达到该参数设置的最小时间值,此时,控制文件将会自动扩展。如果该参数设置为0,那么可重用部分从不会发生扩展,在需要使用空间时,记录总是被重用。
注意:
该参数不是强制所有满足达到参数设置的时间的记录都要被重用,参数的定义是最小的时间;
该参数仅应用于可重用的记录,对不可循环使用的记录无效。
6、控制文件的扩展
无论在可循环使用部分还是在不可循环使用部分,控制文件均支持扩展。
不可循环使用部分(数据文件记录)
当控制文件中,不可循环使用部分没有空的槽位,此时如果需要添加一个新的数据文件,则会发生控制文件扩展,因为该部分是不可循环使用的,所以直到相关的对象被删除,否则则一直占用。
可循环使用部分(归档日志记录)
可循环使用的部分是支持被覆盖的。通常,当控制文件需要空闲空间时,会将最早的记录覆盖擦写。譬如:当归档日志部分没有空闲空间了,而新的归档日志产生需要空间空间。此时,最早产生的归档日志记录则会被最新产生的归档日志记录所覆盖。
如果CONTROL_FILE_RECORD_KEEP_TIME设置为0,那么控制文件仅支持重新利用,而不会发生控制文件扩展。
数据库的控制文件增长可能取决于以下文件的数量或时间:
备份
数据库产生的归档日志
信息存储在控制文件中的时间
还有一些其它因素对应相应部分
控制文件扩展时的alert日志显示:
Tue Apr 19 16:44:52 2011
Expanded controlfile section11 from 28 to 109 records
Requested to grow by 81records; added 3 blocks of records
上述显示控制文件的section 11(归档日志部分)部分发生扩展。归档日志部分发生扩展的原因经常发生在redo切换频繁的系统中。
7、控制文件相关的字典和视图
以下几个是与控制文件有关的数据库字典视图:
v$database:c从控制文件中显示数据库信息;
v$controlfile:列出控制文件名的视图
v$control_record_section:控制文件的记录section信息
v$parameter:显示初始化参数CONTROL_FILES定义的控制文件名。
标签: #数据库学习通测试题答案
评论列表