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即可成功启动.