本文详细介绍控制文件
主要从以下几个问题
1.什么是控制文件,它有什么作用?
2.控制文件包含哪些内容?
3.什么时候创建控制文件?
4.在哪些时候应该更新控制文件?
5.什么情况下需要创建新的控制文件呢?
6.创建控制文件的步骤是?
2.控制文件包含哪些内容?
3.什么时候创建控制文件?
4.在哪些时候应该更新控制文件?
5.什么情况下需要创建新的控制文件呢?
6.创建控制文件的步骤是?
2.控制文件包含哪些内容?
数据库名
数据文件和重做日志文件名和地置信息
数据创建时间
检查点(checkpoint)信息
当前log序列号
数据库名
数据文件和重做日志文件名和地置信息
数据创建时间
检查点(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';
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 打开数据库.
3.备份所有数据文件和在线重做日志文件
4.开启实例
startup nomount(这种打开方式不加载控制文件)
5.创建新的控制文件
此时文件列表一定要对否时恢复不了数据库
6.备份刚创建的控制文件
7.修改初使化参数文件,将所有有用的控制文件加进去
8.恢复数据库
9.打开数据库
当须要恢复数据库时使用alter database open resetlogs;
否时用alter database open 打开数据库.
下面贴出创建控制文件语句
QL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。
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
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 ;
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';
下面是两种备份方法
方法一直接备份成bkp文件
SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'D:\app\yichunmei\oradata\ORCL\control.bkp';
数据库已更改。
方法二将生成控制文件的脚本写入trace文件中,可从trace中得到创建控制文件脚本,再执行创建脚本
SQL> ALTER DATABASE BACKUP CONTROLFILE TO 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
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
----------------------------------------------------------------------------------------------------
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
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
输出文件名=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.对于用脚本创建的控制文件,直接覆盖就行
先关闭数据库
再备份覆盖以前的
再修改参数文件
再打开数据库
RMAN>alter database open resetlog;
2.对于用脚本创建的控制文件,直接覆盖就行
先关闭数据库
再备份覆盖以前的
再修改参数文件
再打开数据库
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24104518/viewspace-712398/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24104518/viewspace-712398/
2万+

被折叠的 条评论
为什么被折叠?



