控制文件详解(转)

本文详细介绍控制文件
主要从以下几个问题
1.什么是控制文件,它有什么作用?
2.控制文件包含哪些内容?
3.什么时候创建控制文件?
4.在哪些时候应该更新控制文件?
5.什么情况下需要创建新的控制文件呢?
6.创建控制文件的步骤是?
7.怎么备份控制文件呢?
8.怎么从备份中恢复控制文件呢?
1.什么是控制文件,它有什么作用?
记录 数据库的物理结构,是 oracle加载或恢复时必不可少的二进制文件.
2.控制文件包含哪些内容?
数据库名
数据文件和重做日志文件名和地置信息
数据创建时间
检查点(checkpoint)信息
当前log序列号
3.什么时候创建控制文件?
当数据库创建时会自动创建控制文件,可以手动更改控制文件地置和名称,为安全起见最好将控制文件放在不同磁盘下.
4.在哪些时候应该更新控制文件?
当数据文件增加,删除或改名(因为控制文件里会记录数据文件名和位置)
当增加删除或修改表空间读写状态时()
当增加或删除重做日志文件或重做日志文件组
5.什么情况下需要创建新的控制文件呢?
当所有控制文件损坏而没有备份时
当要更改在创建数据时指定的初使化参数设置时(如数据库名..)
6..创建控制文件的步骤是?
1.列出数据库所有数据文件和在线重做日志文件
可以这3个视图中查到:
SELECT MEMBER FROM V$LOGFILE;
SELECT NAME FROM V$DATAFILE;
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'control_files';
2.关闭数据库
3.备份所有数据文件和在线重做日志文件
4.开启实例
startup nomount(这种打开方式不加载控制文件)
5.创建新的控制文件
此时文件列表一定要对否时恢复不了数据库
6.备份刚创建的控制文件
7.修改初使化参数文件,将所有有用的控制文件加进去
8.恢复数据库
9.打开数据库
当须要恢复数据库时使用alter database open resetlogs;
否时用alter database open 打开数据库.
下面贴出创建控制文件语句
QL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area  644468736 bytes
Fixed Size                  1335108 bytes
Variable Size             268435644 bytes
Database Buffers          369098752 bytes
Redo Buffers                5599232 bytes
已用时间:  00: 00: 05.14SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG
  2      MAXLOGFILES 5
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 1
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO01.LOG'  SIZE 10M,
  9    GROUP 2 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO02.LOG'  SIZE 10M,
 10    GROUP 3 'D:\APP\YICHUNMEI\LOGS\ORCL\REDO03.LOG'  SIZE 10M
 11  -- STANDBY LOGFILE
 12  DATAFILE
 13    'D:\APP\YICHUNMEI\ORADATA\ORCL\SYSTEM01.DBF',
 14    'D:\APP\YICHUNMEI\ORADATA\ORCL\SYSAUX01.DBF',
 15    'D:\APP\YICHUNMEI\ORADATA\ORCL\UNDOTBS01.DBF',
 16    'D:\APP\YICHUNMEI\ORADATA\ORCL\USERS01.DBF'
 17  CHARACTER SET ZHS16GBK
 18  ;
控制文件已创建。
SQL> alter database open;
数据库已更改。
另外:创建控制文件时很容易报(ORA-01173, ORA-01176, ORA-01177, ORA-01215, or ORA-01216))等错误,主要是数据文件日志文件没有列对,不是多了可能就是少了.
7.怎么备份控制文件呢?
下面是两种备份方法
方法一直接备份成bkp文件
SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'D:\app\yichunmei\oradata\ORCL\control.bkp';
数据库已更改。
方法二将生成控制文件的脚本写入trace文件中,可从trace中得到创建控制文件脚本,再执行创建脚本
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
数据库已更改。
已用时间:  00: 00: 00.05
SQL>
SQL>
SQL> @D:\app\yichunmei\product\11.1.0\db_1\RDBMS\ADMIN\gettrcname.sql
TRACE_FILE_NAME
----------------------------------------------------------------------------------------------------
d:\app\yichunmei\diag\rdbms\orcl\orcl\trace/orcl_ora_4520.trc
8.怎么从备份中恢复控制文件呢?
1.对于bkp文件可用 rman
RMAN> restore controlfile from 'D:\app\yichunmei\oradata\ORCL\CONTROL.BKP';
启动 restore 于 28-11月-11
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=98 设备类型=DISK
通道 ORA_DISK_1: 已复制控制文件副本
输出文件名=D:\APP\YICHUNMEI\ORADATA\ORCL\CONTROL01.CTL
输出文件名=D:\APP\YICHUNMEI\ORADATA\ORCL\CONTROL02.CTL
完成 restore 于 28-11月-11
RMAN> recover database;
RMAN>alter database open resetlog;
2.对于用脚本创建的控制文件,直接覆盖就行
先关闭数据库
再备份覆盖以前的
再修改参数文件
再打开数据库

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24104518/viewspace-712398/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24104518/viewspace-712398/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值