控制文件指南

什么是控制文件?


每个Oracle数据库都有一个控制文件,它是一个记录数据库物理结构的小型二进制文件。控制文件包括:

  • 数据库名称
  • 关联的数据文件和重做日志文件的名称和位置
  • 数据库创建的时间戳
  • 当前的日志序列号
  • 检查点信息

只要数据库处于打开状态,控制文件就必须可供Oracle数据库服务器写入。如果没有控制文件,数据库将无法安装并且恢复很困难。

Oracle数据库的控制文件与数据库同时创建。默认情况下,在创建数据库时至少创建一个控制文件副本。在某些操作系统上,默认设置是创建多个副本。您应该在数据库创建期间创建两个或更多控制文件副本。如果您丢失控制文件或想要更改控制文件中的特定设置,您也可以稍后创建控制文件。

 

控制文件指南


本节介绍可用于管理数据库控制文件的准则,其中包含以下主题:

  •  提供控制文件的文件名
  • 不同磁盘上的多路控制文件
  • 备份控制文件
  • 管理控制文件的大小

 

提供控制文件的文件名

可以使用数据库初始化参数文件中的CONTROL_FILES初始化参数指定控制文件名(请参阅“创建初始控制文件”)。实例在启动期间识别并打开所有列出的文件,并且实例在数据库操作期间写入并维护所有列出的控制文件。

如果您在创建数据库之前未指定CONTROL_FILES的文件,请执行以下操作:

  • 如果您没有使用Oracle托管文件,那么数据库就会创建一个控制文件并使用一个默认的文件名。默认名称是特定于操作系统的。
  • 如果您正在使用Oracle托管文件,那么您为启用该功能而设置的初始化参数将确定控制文件的名称和位置,如第17章“使用Oracle托管文件”中所述。
  • 如果您正在使用Oracle自动存储管理(Oracle ASM),则可以将不完整的Oracle ASM文件名放在DB_CREATE_FILE_DEST和DB_RECOVERY_FILE_DEST初始化参数中。 Oracle ASM会自动在适当的位置创建控制文件。有关更多信息,请参阅“Oracle自动存储管理管理员指南”中的“关于Oracle ASM文件名”和“创建使用Oracle ASM的数据库”部分。

 

不同磁盘上的多路控制文件

每个Oracle数据库至少应有两个控制文件,每个文件存储在不同的物理磁盘上。如果控制文件由于磁盘故障而损坏,则必须关闭关联的实例。一旦磁盘驱动器被修复,损坏的控制文件可以使用来自另一个磁盘的控制文件的完整副本来恢复,并且实例可以重新启动。在这种情况下,不需要媒体恢复。

多路复用控制文件的行为是这样的:

  • 数据库将写入数据库初始化参数文件中为初始化参数CONTROL_FILES列出的所有文件名。
  • 在数据库操作期间,数据库只读取CONTROL_FILES参数中列出的第一个文件
  • 如果在数据库操作过程中有任何控制文件变得不可用,则实例无法运行,应该中止。

Oracle强烈建议您的数据库至少有两个控制文件,并且它们位于不同的物理磁盘上

复用控制文件的一种方法是,如果重做日志被复用,则将控制文件副本存储在存储重做日志组成员的每个磁盘驱动器上。通过将控制文件存储在这些位置,可以最大限度地降低所有控制文件和所有重做日志组在单个磁盘故障中丢失的风险。

 

备份控制文件

备份控制文件非常重要。最初这是真实的,每次你改变你的数据库的物理结构。这样的结构变化包括:

  • 添加,删除或重命名数据文件
  • 添加或删除表空间,或更改表空间的读/写状态
  • 添加或删除重做日志文件或组

备份控制文件的方法在“备份控制文件”中讨论

 

管理控制文件的大小

控制文件大小的主要决定因素是为创建关联数据库的CREATE DATABASE语句中的MAXDATAFILES,MAXLOGFILES,MAXLOGMEMBERS,MAXLOGHISTORY和MAXINSTANCES参数设置的值。增加这些参数的值可增加关联数据库的控制文件的大小。

  • 您的操作系统特定的Oracle文档包含有关最大控制文件大小的更多信息
  • Oracle数据库SQL语言参考,以获取对CREATE DATABASE语句的描述

 

参考资料


https://docs.oracle.com/cd/E11882_01/server.112/e25494/control.htm#ADMIN006

posted @ 2018-05-29 16:11  ZeroTiny  阅读(335)  评论(0编辑  收藏  举报