ORACLE control file

本文探讨了Oracle控制文件的内容,包括数据库信息、重做日志、数据文件、表空间等,并介绍了如何通过CONTROL_FILE_RECORD_KEEP_TIME参数管理控制文件大小。同时,详细阐述了在SPFILE中添加或移动控制文件的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前转载过一篇关于备份和恢复controlfile的文章,地址如下

http://blog.youkuaiyun.com/wh62592855/archive/2009/11/20/4844506.aspx

 

控制文件的主要内容

今天突然在想,controlfile里到底包含了哪些信息,查询了几个相关的数据字典视图,网上搜了搜,现在小总结一下

  1. 数据库的名字。该名取自初始化参数说明的数据库名字或CREATE DATABASE语句中所使用的名字。
  2. 数据库标示符。该标示符是在创建数据库时ORACLE自动生成的。
  3. 数据库创建的时间戳。它是在数据库创建时生成的。
  4. 联机重做日志文件的名字和准确位置。当在增加重做日志文件、删除重做日志文件和修改重做日志文件时,ORACLE会修改相关信息。
  5. 当前日志的序列号。它是在日志切换时ORACLE记录的。
  6. 检查点信息。该信息是在产生检查点时ORACLE记录的。
  7. 日志的历史信息。这些信息是在日志切换时ORACLE记录的。
  8. 归档日志文件的准确位置和状态。这些信息是在重做日志文件被归档时ORACLE记录的。
  9. 数据文件的名字和准确位置。当在增加数据文件、删除数据文件和修改数据文件的名字时,ORACLE会修改相关的信息。
  10. 表空间的信息。当在增加或删除表空间时,ORACLE会修改相关的信息。
  11. 备份的准确位置和状态。这些信息时由恢复管理器记录的。

如何限定控制文件的大小

控制文件由两大部分组成:可重用的部分和不可重用的部分。

可重用部分可以使用参数CONTROL_FILE_RECORD_KEEP_TIME参数来控制,该参数的默认值为7天,即可重用部分的内容保留7天,一周之后这部分的内容可能被覆盖。可重用的部分是供恢复管理器来使用的,这部分的内容可以自动扩展。

另外,ORACLE数据库管理员可以使用CREATE DATABASE或CREATE CONTROLFILE语句中的下列关键字(参数)来间接影响不可重用的部分的大小

  • MAXDATAFILES
  • MAXINSTANCES
  • MAXLOGFILES
  • MAXLGHISTORY
  • MAXLOGMEMBERS

CONTROL_FILE_RECORD_KEEP_TIME

PropertyDescription
Parameter typeInteger
Default value7 (days)
ModifiableALTER SYSTEM
Range of values0 to 365 (days)
BasicNo

CONTROL_FILE_RECORD_KEEP_TIME specifies the minimum number of days before a reusable record in the control file can be reused. In the event a new record needs to be added to a reusable section and the oldest record has not aged enough, the record section expands. If this parameter is set to 0, then reusable sections never expand, and records are reused as needed.

Note:

This parameter applies only to records in the control file that are circularly reusable (such as archive log records and various backup records). It does not apply to records such as datafile, tablespace, and redo thread records, which are never reused unless the corresponding object is dropped from the tablespace.
 

 

怎样查看控制文件的配置
怎样才能得到控制文件中全部记录的相关信息呢?可以通过V$CONTROLFILE_RECORD_SECTION来获得。

V$CONTROLFILE_RECORD_SECTION

V$CONTROLFILE_RECORD_SECTION displays information about the control file record sections.

ColumnDatatypeDescription
TYPEVARCHAR2(28)Identifies the type of record section:
  • DATABASE

  • CKPT PROGRESS

  • REDO THREAD

  • REDO LOG

  • DATAFILE

  • FILENAME

  • TABLESPACE

  • TEMPORARY FILENAME

  • RMAN CONFIGURATION

  • LOG HISTORY

  • OFFLINE RANGE

  • ARCHIVED LOG

  • BACKUP SET

  • BACKUP PIECE

  • BACKUP DATAFILE

  • BACKUP REDOLOG

  • DATAFILE COPY

  • BACKUP CORRUPTION

  • COPY CORRUPTION

  • DELETED OBJECT

  • PROXY COPY

  • BACKUP SPFILE

  • DATABASE INCARNATION

  • FLASHBACK LOG

  • RECOVERY DESTINATION

  • INSTANCE SPACE RESERVATION

  • REMOVABLE RECOVERY FILES

  • RMAN STATUS

  • THREAD INSTANCE NAME MAPPING

  • MTTR

  • DATAFILE HISTORY

RECORD_SIZENUMBERRecord size in bytes
RECORDS_TOTALNUMBERNumber of records allocated for the section
RECORDS_USEDNUMBERNumber of records used in the section
FIRST_INDEXNUMBERIndex (position) of the first record
LAST_INDEXNUMBERIndex of the last record
LAST_RECIDNUMBERRecord ID of the last record
 
 
怎样添加和移动控制文件
使用PFILE时添加或移动控制文件的步骤
  • 利用数据字典V$CONTROLFILE来获取现有控制文件的名字
  • 正常关闭ORACLE数据库
  • 将新的控制文件名添加到参数文件的CONTROL_FILES参数中
  • 使用操作系统命令将现有控制文件复制到指定位置
  • 重新启动ORACLE数据库
  • 利用数据字典V$CONTROLFILE来验证新的控制文件名字是否正确
  • 如果有误 重做上述操作 如果正确 删除无用的旧控制文件

使用SPFILE时添加或移动控制文件的步骤

  • 利用数据字典V$CONTROLFILE来获取现有控制文件的名字
  • 修改SPFILE 使用alter system set control_files命令来改变控制文件的位置
  • 正常关闭数据库
  • 使用操作系统命令将现有控制文件复制到指定位置
  • 重新启动ORACLE数据库
  • 利用数据字典V$CONTROLFILE来验证新的控制文件名字是否正确
  • 如果有误 重做上述操作 如果正确 删除无用的旧控制文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值