1

我有一个 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')

在上面的 imp 命令中,我不明白要针对“.dmp 文件的位置”提供哪个文件,因为我的备份没有生成任何 .dmp 文件。

有人可以帮忙吗?

4

2 回答 2

2

IMP 是用于导入以前使用 EXP 导出的数据库对象的机制。这不适用于您的情况。

您需要做的是手动恢复数据库。要做到这一点,请使用RECOVER DATABASE. 与此主题相关的内容很多,远远超出此处所能涵盖的范围,因此您最好阅读在线文档

于 2010-02-05T07:27:37.503 回答
0

您可以将 IMP 与可传输表空间一起使用来移动数据文件,但您也需要一个 EXP。

您的 EMP2010.DBF 包含一组表/索引内容的数据。但是,您的 SYSTEM.DBF 包含元数据(例如,表中有哪些列,哪些表在哪个表空间中)。没有元数据,EMP2010.DBF 的内容就无法理解。

EXP 可以将元数据(ROWS=N)导出到 DMP 文件中。

您无需担心移动重做日志、归档重做日志或控制文件以获得可传输的表空间副本。

于 2010-02-05T20:25:54.393 回答