【问题标题】:How to restore Oracle 10G database from backup如何从备份中恢复 Oracle 10G 数据库
【发布时间】:2011-01-13 09:53:52
【问题描述】:

我有一个 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 文件。

有人可以帮忙吗?

【问题讨论】:

    标签: oracle oracle10g recovery


    【解决方案1】:

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

    您需要做的是手动恢复数据库。为此,请使用RECOVER DATABASE。与此主题相关的内容很多,远远超出此处可以涵盖的内容,因此您最好的做法是read the online documentation。

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2010-11-28
        • 2012-07-29
        • 1970-01-01
        • 2010-09-09
        • 1970-01-01
        • 2022-06-16
        • 1970-01-01
        • 2011-01-17
        • 2020-03-15
        相关资源
        最近更新 更多