【问题标题】:Exporting and importing between different database releases (Oracle)在不同的数据库版本之间导出和导入 (Oracle)
【发布时间】:2020-06-15 18:08:03
【问题描述】:

我有两个数据库服务器:

  1. Windows server 2016 上的 Oracle 数据库 12c
  2. Windows server 2003 上的 Oracle 数据库 9i

我想将架构从 1 号服务器导入到 2 号服务器。 我像往常一样导出了一个转储文件:

expdp system@tnsname/password directory=directory_name schemas=schema_name dumpfile=dumpfile.dmp version=9.2 

然后我尝试将其导入服务器 2

imp system@tnsname/password fromuser=old_user touser=new_user file=dumpfile.dmp 

但我收到错误 IMP-00037:字符集标记未知。 我搜索了错误,它告诉文件已损坏。但是,为了确保文件没问题,我将它重新导入到服务器 1 中,它工作正常。此外,两个数据库上的字符集和 nls_length_semantic 是相同的。

那么,解决方案是什么?我错过了什么吗?

提前谢谢你,

【问题讨论】:

  • 您发布的代码建议您使用 Data Pump 导出,但使用旧的 skool imp 实用程序导入。不确定这是否有影响,但请澄清您的问题。

标签: database oracle import export windows-server-2003


【解决方案1】:

一般规则说:

  • 使用较低数据库版本的导出实用程序导出数据
  • 使用目标数据库版本的导入实用程序导入数据

在您的情况下,关于 9i 是不存在数据泵的旧版本,您唯一的选择是使用 9i 数据库版本的 original EXP 和 IMP 实用程序。

我不知道 9i 的 EXP 是否能够从 12c 数据库版本导出数据,我什至无法尝试(没有那个旧数据库)。

据我所知,互联网上某处有公开的兼容性矩阵。现在它在 My Oracle Support 下隐藏 - 如果可以,请检查它所说的内容。我做到了;如果您的 9i 数据库是 9.0.1,那么您就不走运了。如果它更高,那么使用 - 正如我所说的 - EXP 和 IMP 9.2.0 版本。

【讨论】:

    猜你喜欢
    • 2014-09-29
    • 1970-01-01
    • 2016-05-19
    • 2012-12-12
    • 2022-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多