在oracle 10g中从impdp恢复一张表的步骤

问题描述 投票:0回答:1

我只需将一个表从完整备份 (expdp) 导入到同一数据库上新创建的表。

那么我可以直接用新名称导入表吗?或者我必须先使用相同的参数创建一个新表然后导入?

impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp TABLES=hr.employees REMAP_TABLE=hr.employees:emps 

另一个问题是 remap_table 会影响我已经存在的员工表吗?或者它只会创建一个名为 emps 的新表并将员工数据从转储导入到其中?

......................更新............

我发现oracle 10g中没有remap_table所以我可以使用这个方法吗:

create user johny identified by 1234;
grant create session to johny;
impdp  system/****** DIRECTORY=dpump_dir1   DUMPFILE=expschema.dmp  LOGFILE= tb_imp.log  TABLES='HR.employees'  REMAP_SCHEMA=HR: johny;

我们只是暂时需要这张桌子,以便我稍后可以放下约翰尼。而且上面的方法不会影响hr schema中原来的employees表,对吧?

oracle oracle10g
1个回答
0
投票

Oracle将从您的转储文件中导入表employees并将其重命名为emps,如果employees表存在,则不会受到影响,如果emps表已存在,则不会执行任何操作。 您可以使用 table_exists_action 参数来更改表存在时的行为,指定:

  • TRUNCATE => 截断表(如果存在)并从
    导入数据 转储
  • REPLACE => 将首先用定义替换表 从转储中然后导入数据
  • APPEND => 将附加 将数据添加到表中,保留现有数据。
© www.soinside.com 2019 - 2024. All rights reserved.