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即可成功啟動.