【问题标题】:how to use exp command to export Oracle DB with files in different disk location如何使用 exp 命令导出具有不同磁盘位置文件的 Oracle DB
【发布时间】:2010-09-02 17:04:08
【问题描述】:

我们在尝试导出 Oracle DB 时遇到问题。 操作系统: CentOS ~ 5.2 数据库: Oracle 10g。

Exp 命令仅在以下位置导出 db 文件:

/home/oracle/OraHome_1/oradata/master/xxx.dbf

,但是工具不能像这样导出不同位置的文件(我们在获取跟踪后知道这个文件):

'/disk1/dblog06.dbf', '/home/disk2/system01.dbf',

请告诉我,如何获取 dump 文件。或备份它。

谢谢。

【问题讨论】:

    标签: oracle oracle10g backup export


    【解决方案1】:

    您似乎误解了exp 的作用,尤其是file 参数的用途。 file 是输出转储文件,通常以.dmp 为扩展名。导出将数据从数据库实例中取出,它在数据文件的底层不起作用 - 您必须告诉它您想要哪些数据(完整、用户、表或表空间)以及放置它的位置,而不是它来自哪里.

    如果您确实尝试exp file=/home/disk2/system01.dbf,那么您实际上要求它做的就是破坏您的数据库;您很幸运,它没有覆盖数据文件并导致灾难性故障。 Oracle 似乎把你从那里救了出来,尽管可能只是因为当时对文件有排他锁。

    您需要阅读它的工作原理,看看它是否真的能满足您的需求 - 正如 APC 指出的那样,它不是备份工具。查看您的版本的 Oracle 文档,或类似 http://www.orafaq.com/wiki/Import_Export_FAQ 的地方,并查看使用数据泵而不是 exp

    【讨论】:

    • 拜托,我觉得对不对:如果我运行命令 exp file = folderName/fileName.dbf,那么我可以在另一台服务器上启动这个 dmp 文件吗?谢谢。
    • 没有。如果您使用exp(或数据泵)将数据导出到.dmp 文件,那么您可以将该数据导入回另一个数据库。您不能从转储中“启动”。您可以在另一台服务器上创建一个新数据库,然后将数据导入其中;或者完全看另一种机制。目前尚不清楚您要实现的目标。
    • 某一刻,据我所知,我可以按顺序“exp”每个数据文件,然后按之前的顺序“imp”到另一台服务器中?
    • 不,您不导出数据文件,这些是底层数据库结构的一部分。您可以从实例中导出 data - 模式、表空间或表,具体取决于您的需要。您可以让他们将该 data 导入另一个数据库实例。目标数据库可以在另一个平台上或具有不同的数据文件结构,但它必须已经存在。考虑到exp/imp 可以被不了解文件结构的非特权用户使用可能会有所帮助,而不仅仅是 DBA。
    【解决方案2】:

    我不确定这是否是问题,但exp 命令将根据其逻辑架构(用户名、表名)导出数据库对象。数据来自哪个物理数据库文件并不重要。

    exp 通过需要挂载数据文件的 Oracle 实例工作。

    这些其他文件是 Oracle 数据库的一部分吗?也许另一个数据库?您需要找出哪个 Oracle 服务器使用它们,然后针对该实例运行 exp

    【讨论】:

    • 据我了解,所有数据文件都属于一个 Oracle 实例和一个 Oracle 数据库(在跟踪文件中,所有位置都属于 Master - [Master 是数据库名称]。我正在尝试分析它。谢谢回答。
    【解决方案3】:

    EXPORT 不是备份工具。它用于将数据从一个数据库传输到另一个数据库,或者可能从一个架构传输到另一个架构。

    如果您想在数据库崩溃或损坏的情况下恢复您的数据,那么您需要使用适当的工具。对此有操作系统解决方案,但 Oracle 提供了一个复杂的备份和恢复工具:RMAN。 Find out more.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 2019-08-28
      • 2021-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多