2010-02-05 102 views
1

我有一個Oracle 10G數據庫。 我運行了下面的腳本來獲取數據庫的備份。如何從備份恢復Oracle 10G數據庫

alter tablespace EMP2010 begin backup; 
host copy G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EMP2010.DBF G:\orabackup\database\ 
alter tablespace EMP2010 end backup; 

alter tablespace PAYROLL2010 begin backup; 
host copy G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\PAYROLL2010.DBF G:\orabackup\database\ 
alter tablespace PAYROLL2010 end backup; 

host copy G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO2010_1.LOG G:\orabackup\database\ 
host copy G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO2010_2.LOG G:\orabackup\database\ 
host copy G:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO2010_2.LOG G:\orabackup\database\ 

alter system switch logfile; 
host sleep 60 
host copy G:/oracle/product/10.2.0/oradata/orcl/arch* G:\orabackup\database\/ 
alter database backup controlfile to 'G:\orabackup\database\/controlbackup.bac'; 

備份生成了.dbf,.log和.bac文件。 現在我想從上面的備份文件中恢復數據庫。 我不想使用RMAN。

我已經知道,使用下面的命令,我可以dbf文件恢復到表空間:

imp transport_tablespace=Y tablespace=(Ts Name) 
    file='location of dump file C:\user.dmp' 
    datafiles=('location of dbf file') 

在上面小鬼的命令,我不明白,提供針對「.dmp文件的位置的文件「因爲我的備份沒有生成任何.dmp文件。

任何人都可以請幫忙嗎?

回答

2

IMP是導入以前使用EXP導出的數據庫對象的機制。這不適用於你的情況。

你需要做的是手動恢復數據庫。要做到這一點使用RECOVER DATABASE。有很多關於這個話題的事情,遠遠超過這裏所能涵蓋的範圍,所以你最好做的事情是read the online documentation

0

您可以將IMP與可移動表空間一起用於移動數據文件,但您同樣需要EXP。

您的EMP2010.DBF包含一堆用於表/索引內容的數據。 但是,您的SYSTEM.DBF包含元數據(例如,表中的哪些列,哪些表位於哪個表空間中)。沒有元數據,EMP2010.DBF的內容是無法理解的。

EXP可以將元數據(ROWS = N)導出到DMP文件中。

您不必擔心移動重做日誌,歸檔重做日誌或可移植表空間副本的控制文件。