Oracle中的控制文件管理

1.查看控制文件信息

SQL*Plus: Release 9.2.0.1.0 - Production on 星期六 1月 5 10:12:00 2008

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

SQL> conn sys/ as sysdba
请输入口令: *****
已连接。
SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\HQH\CONTROL01.CTL
D:\ORACLE\ORADATA\HQH\CONTROL02.CTL
D:\ORACLE\ORADATA\HQH\CONTROL03.CTL

SQL> select value from v$parameter where name='control_files';

VALUE
--------------------------------------------------------------------------------
D:\oracle\oradata\hqh\CONTROL01.CTL, D:\oracle\oradata\hqh\CONTROL02.CTL, D:\ora
cle\oradata\hqh\CONTROL03.CTL

查看控制文件中关于数据文件中的数据记录信息:(注意,DATAFILE一定要大写,否则会提示"未选定行")

SQL>  select type,record_size,records_total,records_used from v$controlfile_record_section
where type='DATAFILE';

TYPE                 RECORD_SIZE RECORDS_TOTAL RECORDS_USED
-------------------- ----------- ------------- ------------
DATAFILE                     180           100           13

2.创建控制文件的副本和备份控制文件

(1).创建控制文件的副本

此例子中,用户将为数据库HQH创建一个新的控制文件副本D:\oracle\backup\hqh\control02.ctl

SQL>  alter system set control_files='D:\oracle\oradata\hqh\control01.ctl','D:\oracle\oradata\hqh\control02.ctl',
'D:\oracle\backup\hqh\control02.ctl'
scope=spfile

SQL> /

系统已更改

然后用shutdown关闭数据库.因为上述控制文件D:\oracle\backup\hqh\control02.ctl并不存在,所以应该将'D:\oracle\oradata\hqh\control02.ctl'文件复制到D:\oracle\backup\hqh\下.

SQL> shutdown;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭

再用startup启动数据库,数据库正常启动.

SQL> startup
ORACLE 例程已经启动。

Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
数据库装载完毕。
数据库已经打开。

注意:如果忘了把文件复制到指定位置,启动时将报错.

SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
ORA-00205: ?????????????????????

再查看控制文件信息,新增的控制文件已经在使用了.

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\HQH\CONTROL01.CTL
D:\ORACLE\ORADATA\HQH\CONTROL02.CTL
D:\ORACLE\ORADATA\HQH\CONTROL03.CTL
D:\ORACLE\BACKUP\HQH\CONTROL02.CTL

直此,已经成功创建一个新的控制文件的副本.

(2).备份控制文件

SQL> alter database backup controlfile to 'D:\oracle\backup\hqh\control.bkp';

数据库已更改。

就这么简单,备份控制文件成功!打开文件所在目录看看吧.

(3).使用副本恢复控制文件

a.首先使用shutdown关闭实例,在关闭SQL*Plus.

b.打开'D:\oracle\oradata\hqh\control01.ctl'文件,进行随意修改,并保存.

c.启动SQL*Plus,以sysdba连接到数据库hqh.

d.用startup启动数据库实例hqh.系统返回ORA-00205错误.

e.现在使用数据文件副本进行恢复.先shutdown.

f.将文件'D:\oracle\oradata\hqh\control01.ctl' 删除.将control02.ctl复制一个改名为control01.ctl.

h.再startup即可成功启动.

posted on 2009-06-14 21:29  一江水  阅读(1142)  评论(0编辑  收藏  举报