以前转载过一篇关于备份和恢复controlfile的文章,地址如下
http://blog.youkuaiyun.com/wh62592855/archive/2009/11/20/4844506.aspx
控制文件的主要内容
今天突然在想,controlfile里到底包含了哪些信息,查询了几个相关的数据字典视图,网上搜了搜,现在小总结一下
- 数据库的名字。该名取自初始化参数说明的数据库名字或CREATE DATABASE语句中所使用的名字。
- 数据库标示符。该标示符是在创建数据库时ORACLE自动生成的。
- 数据库创建的时间戳。它是在数据库创建时生成的。
- 联机重做日志文件的名字和准确位置。当在增加重做日志文件、删除重做日志文件和修改重做日志文件时,ORACLE会修改相关信息。
- 当前日志的序列号。它是在日志切换时ORACLE记录的。
- 检查点信息。该信息是在产生检查点时ORACLE记录的。
- 日志的历史信息。这些信息是在日志切换时ORACLE记录的。
- 归档日志文件的准确位置和状态。这些信息是在重做日志文件被归档时ORACLE记录的。
- 数据文件的名字和准确位置。当在增加数据文件、删除数据文件和修改数据文件的名字时,ORACLE会修改相关的信息。
- 表空间的信息。当在增加或删除表空间时,ORACLE会修改相关的信息。
- 备份的准确位置和状态。这些信息时由恢复管理器记录的。
如何限定控制文件的大小
控制文件由两大部分组成:可重用的部分和不可重用的部分。
可重用部分可以使用参数CONTROL_FILE_RECORD_KEEP_TIME参数来控制,该参数的默认值为7天,即可重用部分的内容保留7天,一周之后这部分的内容可能被覆盖。可重用的部分是供恢复管理器来使用的,这部分的内容可以自动扩展。
另外,ORACLE数据库管理员可以使用CREATE DATABASE或CREATE CONTROLFILE语句中的下列关键字(参数)来间接影响不可重用的部分的大小
- MAXDATAFILES
- MAXINSTANCES
- MAXLOGFILES
- MAXLGHISTORY
- MAXLOGMEMBERS
CONTROL_FILE_RECORD_KEEP_TIME
Property | Description |
---|---|
Parameter type | Integer |
Default value | 7 (days) |
Modifiable | ALTER SYSTEM |
Range of values | 0 to 365 (days) |
Basic | No |
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:
V$CONTROLFILE_RECORD_SECTION
V$CONTROLFILE_RECORD_SECTION
displays information about the control file record sections.
Column | Datatype | Description |
---|---|---|
TYPE | VARCHAR2(28) | Identifies the type of record section:
|
RECORD_SIZE | NUMBER | Record size in bytes |
RECORDS_TOTAL | NUMBER | Number of records allocated for the section |
RECORDS_USED | NUMBER | Number of records used in the section |
FIRST_INDEX | NUMBER | Index (position) of the first record |
LAST_INDEX | NUMBER | Index of the last record |
LAST_RECID | NUMBER | Record ID of the last record |
-
利用数据字典V$CONTROLFILE来获取现有控制文件的名字
-
正常关闭ORACLE数据库
-
将新的控制文件名添加到参数文件的CONTROL_FILES参数中
-
使用操作系统命令将现有控制文件复制到指定位置
-
重新启动ORACLE数据库
-
利用数据字典V$CONTROLFILE来验证新的控制文件名字是否正确
-
如果有误 重做上述操作 如果正确 删除无用的旧控制文件
使用SPFILE时添加或移动控制文件的步骤
-
利用数据字典V$CONTROLFILE来获取现有控制文件的名字
-
修改SPFILE 使用alter system set control_files命令来改变控制文件的位置
-
正常关闭数据库
-
使用操作系统命令将现有控制文件复制到指定位置
- 重新启动ORACLE数据库
- 利用数据字典V$CONTROLFILE来验证新的控制文件名字是否正确
- 如果有误 重做上述操作 如果正确 删除无用的旧控制文件