国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

rman備份,未用catalog,控制文件丟失的解決(2)

2024-07-21 02:34:23
字體:
來源:轉載
供稿:網友
PROCEDURE restoreControlfileTo(cfname IN varchar2); -- This copies the controlfile from the backup set to an Operating system
-- file. If the database is mounted, the name must NOT match any of the
-- current controlfiles.
--
-- Input parameters:
-- cfname
-- Name of file to create or overwrite with the controlfile from the
-- backup set.PROCEDURE restoreDataFileTo( dfnumber IN binary_integer
,toname IN varchar2 default NULL);
--
-- restoreDataFileTo creates the output file from a complete backup in the
-- backup set. 假如您有愛好可以去閱讀一下這兩個文件的注釋說明.我們首先嘗試恢復控制文件:SQL>startup force nomount;SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate(type=>'',ident=>'T1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreControlfileTo(cfname=>'d:/Oracle/Control01.ctl');
8 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'D:/KDE/DEMO_01FR79OT_1_1.DBF', params=>null);
9 sys.dbms_backup_restore.deviceDeallocate;
10 END;
11 /PL/SQL procedure sUCcessfully completed.OK,控制文件恢復完成.對以上內容的解釋: 第五行 分配一個device channel,因為使用的操作系統文件,所以這里為空,假如是從磁帶上恢復要用
    "sBT_tape";
第六行 指明開始restore ;
第七行 指出待恢復文件目標存儲位置;
第八行 從哪個備份片中恢復;
第九行 釋放設備通道.不妨對以上操作的結果驗證一下: SQL> host dir d:/oracle
Volume in drive D is DATA
Volume Serial Number is DC79-57F8
Directory of d:/oracle07/18/2004 09:08 PM <DIR> .
07/18/2004 09:08 PM <DIR> ..
06/08/2004 03:21 PM <DIR> admin
07/18/2004 09:08 PM 1,871,872 CONTROL01.CTL
07/16/2004 11:27 AM <DIR> ORA92
07/18/2004 09:02 PM <DIR> oradata這樣,我們成功的restore了控制文件 .假如控制文件在Full備份之后單獨做的,接下來關掉實例,拷貝控制文件到具體位置,然后rman 執行restore database;即可。可是,我們這里的情況有些不同. 視丟失文件的情況而定,繼續進行如下的恢復操作:代碼:--------------------------------------------------------------------------------
SQL> DECLARE
2 devtype varchar2(256);
3 done boolean;
4 BEGIN
5 devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
6 sys.dbms_backup_restore.restoreSetDatafile;
7 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'
d:/oracle/oradata/demo/SYSTEM01.DBF');
8 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'
d:/oracle/oradata/demo/UNDOTBS01.DBF');
9 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'
d:/oracle/oradata/demo/DRSYS01.DBF');
10 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'
d:/oracle/oradata/demo/EXAMPLE01.DBF');
11 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'
d:/oracle/oradata/demo/INDX01.DBF');
12 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'
d:/oracle/oradata/demo/ODM01.DBF');
13 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>07,toname=>'
d:/oracle/oradata/demo/TOOLS01.DBF');
14 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>08,toname=>'
d:/oracle/oradata/demo/USERS01.DBF');
15 sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>09,toname=>'
d:/oracle/oradata/demo/XDB01.DBF');
16 sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'
D:/KDE/DEMO_01FR79OT_1_1.DBF', params=>null);
17 sys.dbms_backup_restore.deviceDeallocate;
18 END;
19 /
PL/SQL procedure successfully completed.--我們的情形是所有的數據文件都丟失了,那就如法炮制 ...........
--文件對應編號來自前面全備份時候的屏幕輸出內容.所以,在備份的時候保留操作Log是個很好的習慣.SQL> startup force mount;
ORACLE instance started.Total System Global Area 152115804 bytes
Fixed Size 453212 bytes
Variable Size 100663296 bytes
Database Buffers 50331648 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> Recover database using backup controlfile until cancel ;
ORA-00279: change 243854 generated at 07/18/2004 20:57:03 needed for thread 1
ORA-00289: suggestion : D:/KDE/ARC00002.001
ORA-00280: change 243854 for thread 1 is in sequence #2
Specify log: {<RET>=suggested filename AUTO CANCEL}D:/KDE/ARC00002.001
ORA-00279: change 244089 generated at 07/18/2004 20:58:18 needed for thread 1
ORA-00289: suggestion : D:/KDE/ARC00003.001
ORA-00280: change 244089 for thread 1 is in sequence #3
ORA-00278: log file 'D:/KDE/ARC00002.001' no longer needed for this recoverySpecify log: {<RET>=suggested filename AUTO CANCEL}
cancel
Media recovery cancelled.SQL> alter database open resetlogs;Database altered.最后,不得不resetlogs . 然后,打掃戰場,馬上進行數據庫的全備份。假如您是DBA的話,應該進一步制定并完善備份計劃.亡羊補牢,為時未晚。
總結一下1 控制文件在備份中意義重大,建議每次對其單獨備份,假如數據庫版本答應的話,應該設置為控制文件自動備 份。同時應該盡可能地增大CONTROL_FILE_RECORD_KEEP_TIME這個初始化參數的值。以便備份信息能更長時間的保留2 應該制定比較完善的備份計劃,否則備份計劃一旦出現缺口,將可能給系統帶來災難.記住, "可能出錯的地方一定會出錯".3 熟悉RMAN內部備份機制,對DBMS_BACKUP_RESTORE的用法有一定的把握在要害時侯很有幫助.4 備份腳本應該對Log重定向并保存.以便在出錯的查找有用信息.
參考資料:RMAN Recovery Without Recovery Catalog or Controlfiles by Bonnie Bizzarodbmsbkrs.sql 和 prvtbkrs.plb 文件說明注釋(可在你的系統 $ORACLE_HOME/rdbms/admin/中找到.)
相關鏈接:
本文的更多討論,請參考這里:
http://www.itpub.net/244345.Html
DBA工作備忘錄之二: EXP出錯的一個案例
http://www.itpub.net/showthread.php?s=&threadid=238819
DBA工作備忘錄之一:用events 跟蹤解決不能創建物化試圖一例
http://www.dbanotes.nethttp://oracle.chinaitlab.com/Oracle-Case-of-10046_I.htm 
原文出處
<a >
http://www.dbanotes.net/Rman_nocatalog_lost_controlfile_howto.htm</a>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汪清县| 朝阳县| 于都县| 柘城县| 弥勒县| 陆丰市| 永康市| 密云县| 西充县| 大名县| 富顺县| 房山区| 逊克县| 滕州市| 洪江市| 石屏县| 英德市| 固始县| 庄河市| 河曲县| 综艺| 沙坪坝区| 祁门县| 东乌| 三亚市| 霍城县| 五莲县| 黄梅县| 都安| 澎湖县| 南京市| 古丈县| 栾川县| 寿光市| 全椒县| 工布江达县| 亳州市| 宜良县| 枣阳市| 平利县| 东兴市|