Control File:
--- binary file
--- read at MOUNT stage
--- should be multiplexed and recovery
--- backup after database structure changes
--- 在初始化参数中,CONTROL_FILE用于指定控制文件名。
[@more@]Sizing:
The size of control file is influenced by the following keywords in the CREATE DATABASE or CREATE CONTROLFILE commands:
i>. MAXLOGFILES
ii>. MAXLOGMEMBERS
iii>. MAXLOGHISTORY
iv>. MAXDATAFILES
v>. MAXINSTANCES
Contents:
1. Database name and identifier (DB_NAME)
2. Time stamp of database creation
3. Tablespace infomation
4. Names and locations of datafiles and redo log files (It will update when change these value things happen)
5. Current redo log file sequence number, redo log history is recorded during log switches (only record in a specify number )
6. Checkpoint information
7. Begin and end of undo segments
8. Redo log archive information
9. Backup information
Backup:
--- ALTER DATABASE BACKUP CONTROLFILE TO ‘filename’;
直接备份控制文件,备份后的文件仍是二进制文件,其实际上就是原封不动的复制当前的控制文件
--- ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
备份控制文件到跟踪文件(参数USER_DUMP_DEST指定存储目录),这样能够在跟踪文件中找到创建被备份的控制文件的sql创建语句。
Obtaining Infomation:
V$CONTROLFILE : 列出了本实例的所有控制文件的名字与状态。
V$CONTROLFILE_RECORD_SECTION : 有关控制文件的文档记录段(record sections)信息。(文档记录段record section:控制文件是一个按照一定格式存储的二进制文件,它被分割成很多部分,分别记录各种类型(type)的信息,而每一类信息就被称为一个记录文档段,其中各个记录文档段的大小(record_size)是固定的。)
SHOW PARAMETER CONTROL_FILES = V$PARAMETER : 列出了控制文件的名字、状态以及存储地方
创建步骤:
1--- 制作一个包含数据库的所有数据文件和重做日志文件的列表。
2--- 关闭数据库
3--- 将数据库的所有数据文件、重做日志文件、SPFILE参数文件备份到其他地方
4--- 启动一个新的实例到NOMOUNT状态
5--- 使用CREATE CONTROLFILE命令创建新的控制文件(若有日志文件丢失,可以使用RESETLOGS 选项)
6--- 在离线存储设备上存储新的控制文件的备份
7--- 编辑初始化参数CONTROL_FILE
8--- 如有必要可以恢复数据库
9--- 打开数据库
创建语法(具体官方的创建语法说明):
以下视图是从控制文件中获取信息的,有:
V$BACKUP
V$DATABASE
V$TABLESPACE
V$DATAFILE
V$TEMPFILE
V$ARCHIVE
V$ARCHIVE_LOG
V$LOG
V$LOGFILE
V$LOGHIST