2010-02-05 51 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文件中。

您不必担心移动重做日志,归档重做日志或可移植表空间副本的控制文件。