4

我是分包商,我的客户想要将 Oracle 数据库从 9 升级到 10。其他供应商将执行升级过程,我被要求在升级之前创建我需要的任何备份,然后在 Oracle 10 中重新创建环境。我的所有数据都存储在单个模式中的单独数据库中。没有花哨的关系、脚本或类似的东西(实际应用程序支持不同的数据库:Oracle、SQL Server、Postgres,因此我们希望避免任何特定于数据库的代码)。

我希望使用 imp/exp,但我不确定 imp/exp 是否向后兼容(exp 从 O9 和 imp 到 O10)?

如果有更好/推荐的方法来处理类似情况,我将不胜感激任何建议。

4

3 回答 3

3

是的,您可以使用 imp/exp 来实现。当您使用 Oracle10 时,请使用 Oracle 的新数据泵实用程序而不是 imp/exp。

于 2010-03-21T15:34:00.987 回答
2

您肯定可以使用 exp 工具导出数据库,然后使用 imp 工具将其导入新数据库。

可以在不同版本的 Oracle 之间导入/导出吗?

不同版本的导入实用程序向上兼容。这意味着可以获取从旧导出版本创建的导出文件,然后使用更高版本的导入实用程序导入它。这是将数据库从一个 Oracle 版本升级到下一个版本的非常有效的方法。

Oracle 还提供了一些以前的 catexpX.sql 脚本,这些脚本可以作为用户 SYS 执行,从而使旧的 imp/exp 版本能够工作(为了向后兼容)。例如,可以在 Oracle 8 数据库上运行 $ORACLE_HOME/rdbms/admin/catexp7.sql 以允许 Oracle 7.3 exp/imp 实用程序针对 Oracle 8 数据库运行。

有关此问题的更多信息,请查看Import Export FAQ

于 2010-03-21T15:35:15.337 回答
0

虽然您可以使用 exp/imp 从旧版本“升级”,但我不会这样做!

通过使用 exp/imp,您可以有效地创建一个新数据库。您将丢失所有表统计信息。当然,您可以重新创建它们。但为什么?您还需要创建新的登录名/密码。确保不涉及用于查询数据库的 3-rd 方工具。或许与此同时,已经创建了第二个模式(例如,用于生成报告),它对“您的”应用程序表具有授权。

在我看来,最好安装 oracle 10 软件,然后升级现有数据库。Oracle 提供了足够的迁移工具。

无论您选择哪种方式,您都应该使用“生产”数据的全部量在集成服务器上对其进行全面测试。另请注意,导入可能需要比导出更长的时间。

于 2010-03-22T09:37:51.953 回答