oracle通過DBF恢復數據


1,安裝oracle 10g數據庫並創建一個要恢復的數據庫相同一的實例(注意:最好是新安裝的數據庫,並且安裝的數據庫盡量和要恢復的數據庫的版本一致,並且實例必須一致);

2,以sysdba身份登錄:對控制文件進行備份;

sqlplus /nolog;(此處不能加分號,否則黑屏窗口會一閃而過)

 

conn /as sysdba;登錄

2,備份控件文件到udmp目錄的trace文件 alter database backup controlfile to trace;


找到oracle的安裝目錄:..\oracle\product\10.2.0\db_1\admin\實例名\udump文件夾下(其中10.1的文件路徑為 E:\oracle\product\10.1.0\admin\orcl,此處可在oracle的文件夾下搜索.trc進行查找),按修改時間降序,找到最近的trace文件。備份好。

3,shutdown immediate停止數據庫實例;

4,備份..\oracle\product\10.2.0\oradata目錄下的該實例文件夾(例如:orcl),接着將該實例文件夾刪除(必須是全部刪除吧要恢復的實例文件夾放到此位置,不能只把要恢復的DBF直接替換原來orcl,否則創建控制文件時會報如下錯誤),把需恢復的數據庫的oradata目錄下所有文件拷到此目錄下。


5,以sysdba進入並執行startup nomount。把數據庫啟動到nomount狀態。

6,從第2步備份出來trace文件中拷貝CREATE CONTROLFILE部分語句來重建控制文件:

注意:1,改為ARCHIVELOG;2,增加你的DBF文件,只增加*_DATA.DBF,*_TEMP.DBF不能在這添加


此處應根據實際情況增刪表空間文件記錄,如以下黑體部分則為新增記錄。

 

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 454

LOGFILE

  GROUP 1 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO01.LOG'  SIZE 10M,

  GROUP 2 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO02.LOG'  SIZE 10M,

  GROUP 3 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\REDO03.LOG'  SIZE 10M

-- STANDBY LOGFILE

DATAFILE

  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF',

  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF',

  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF',

  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF',

  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF',

  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\YC_DATA.DBF',

  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\PE_DATA.DBF',

  'D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\HS.ORA'

CHARACTER SET ZHS16GBK

;

7,RECOVER DATABASE;

 

(這個地方錯誤暫時不用理會。)

8ALTER DATABASE OPEN;

恢復完成,登錄數據庫進行測試。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM