如何增量导入9i数据库

时间:2013-07-15 08:12:52

标签: import oracle11g append oracle9i datapump

我需要在将11g数据库转储导入9i数据库时执行impdp实用程序的追加功能。我还需要能够反过来使用impdp实用程序的相同追加功能从9i数据库导入11g数据库。

据我所知,数据泵客户端与9i数据库不兼容,因此我无法使用此追加功能。有没有办法解决这个问题?

请帮忙。

1 个答案:

答案 0 :(得分:1)

要在9i和11g数据库之间移动数据,您需要使用original exportoriginal import实用程序而不是数据泵。

由于您希望在不同版本之间移动数据,this section非常相关:

  

每当您在Oracle的不同版本之间移动数据时   数据库,适用以下基本规则:

     
      
  • 导入实用程序和要导入数据的数据库(目标数据库)必须是同一版本。例如,如果你   尝试使用导入实用程序9.2.0.7导入到9.2.0.8   数据库,那么你可能会遇到错误。

  •   
  • 导出实用程序的版本必须等于源数据库或目标数据库的版本,以较早者为准。

  •   
     

例如,要创建导出文件以便导入到更高版本   发布数据库,使用等于的版本的Export实用程序   源数据库。相反,为导入创建导出文件   在早期版本数据库中,使用Export实用程序的一个版本   等于目标数据库的版本。

因此,要将数据从9i移动到11g,您需要使用9i二进制文件导出并使用11g二进制文件导入。要将数据从11g移动到9i,您需要使用9i二进制文件进行导出和导入;这意味着您需要一个可以访问11g数据库的9i环境。如果它们位于不同的服务器上,您需要从远程访问11g数据库的9i环境导出,或者在11g服务器上安装9i,与目标环境处于相同的补丁级别。

将数据从11g移动到9i似乎是一件奇怪的事情,考虑到9i的年龄,以及它已经失去了多长时间。

the import documentation

中涵盖与append类似行为的原始问题
  

在导入数据之前手动创建表时,CREATE   导出转储文件中的TABLE语句将因表而失败   已经存在。为了避免这种失败并继续加载数据   在表中,设置Import参数IGNORE = y。否则,没有数据会   由于表创建错误而被加载到表中。

imp没有truncate选项,因此数据总是附加到任何地方;不是没有IGNORE=Y flag导入将失败,因为对象存在,而不是因为其中有数据。

相关问题