IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉貼|軟件發(fā)布

您當前所在位置: 首頁數(shù)據(jù)庫Oracle → oracle誤刪除表空間后數(shù)據(jù)庫如何修復的方法

oracle誤刪除表空間后數(shù)據(jù)庫如何修復的方法

時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)

  1.創(chuàng)建一個新的表空間

  create tablespace rainbow

  datafile 'd:\oracle\oradata\oa_test5\rainbow01.dbf' size 10m;

  2.在其中建表

  create table test

  (emp int)

  tablespace rainbow;

  3.插入數(shù)據(jù)

  insert into test

  (emp) values(1000);

  commit;

  4.備份控制文件

  alter database backup controlfile to 'd:\control.bak';

  5.關閉數(shù)據(jù)庫

  shutdown immeidate;

  6.進行全備份

  備份所有的數(shù)據(jù)文件

  7.打開數(shù)據(jù)庫

  startup

  8.刪除表空間rainbow

  drop tablespace rainbow including contents; 16:46:03

  9.為了驗證我們再更新另外一個表空間里的test2表

  insert into test2 (emp) values(888);

  commit;

  10.關閉數(shù)據(jù)庫,并用6進行的全備份restore所有的數(shù)據(jù)文件(不完全恢復一定要全部的數(shù)據(jù)文件)

  11.打開至mount;

  startup mount;

  12.執(zhí)行不完全恢復

  recover database until time'2007-03-23:16:46:00' using backup controlfile;

  (為什么要使用using backup controlfile 因為刪除表空間后控制文件被修改了)

  SQL> recover database until time'2007-03-23:16:46:00' using backup controlfile;

  ORA-00279: 更改 471722 (在 03/23/2007 16:39:44 生成) 對于線程 1 是必需的

  ORA-00289: 建議: D:\ORACLE\ORADATA\OA_TEST5\ARCHIVE\ARC00001.001

  ORA-00280: 更改 471722 對于線程 1 是按序列 # 1 進行的

  指定日志: {=suggested | filename | AUTO | CANCEL}

  D:\ORACLE\ORADATA\OA_TEST5\redo03.log

  已應用的日志

  完成介質恢復

  13.打開數(shù)據(jù)庫

  alter database open resetlogs;

  數(shù)據(jù)庫已更改

  14.查詢原來的數(shù)據(jù)

  select * from test;

  結果報錯

  ERROR at line 1:

  ORA-00376: file 11 cannot be read at this time

  ORA-01111: name for data file 11 is unknown - rename to correct file

  ORA-01110: data file 11: '/opt/oracle/product/9.2.0/dbs/MISSING00011'

  問題的原因:現(xiàn)在的控制文件中沒有tablespace rainbow (前面已經(jīng)將其刪除)

  雖然我們用備份的控制文件對數(shù)據(jù)庫進行了修復但是數(shù)據(jù)庫打開時當前的控制

  文件仍然是最新的控制文件。

  出現(xiàn)'/opt/oracle/product/9.2.0/dbs/MISSING00011' ,是因為數(shù)據(jù)庫啟動時

  發(fā)現(xiàn)控制文件和system表空間中的dv信息不一致造成的

  解決方法:重建控制文件

  用備份出來的控制文件'd:\control.bak'重命名即可,或使用由alter

  database backup control file to trace 備份的進行重建。

  15.重新開啟數(shù)據(jù)庫并查詢數(shù)據(jù)

  SQL> select * from test;

  EMP

  ----------

  1000

  SQL> select * from test2;

  未選定行

  說明數(shù)據(jù)庫已經(jīng)按我們的要求進行不完全恢復了

關鍵詞標簽:oracle,數(shù)據(jù)庫

相關閱讀

文章評論
發(fā)表評論

熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索 為UNIX服務器設置Oracle全文檢索

相關下載

    人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法