我是分包商,我的客户希望将Oracle数据库从9升级到10.其他供应商将执行升级过程,我被要求在升级之前创建我需要的任何备份,然后重新创建环境Oracle 10.我的所有数据都存储在单个模式的单独数据库中。没有花哨的关系,脚本或类似的东西(实际的应用程序支持不同的dbs:Oracle,SQL Server,Postgres,所以我们要避免任何特定于DB的代码)。
我希望使用imp / exp,但我不确定imp / exp是否向后兼容(从O9和imp到O10的exp)?
如果有更好/推荐的处理类似情况的方法,我将不胜感激任何建议。
答案 0 :(得分:3)
Yes, you can use imp/exp to achieve that。当您使用Oracle10时,请使用Oracle的新Data Pump实用程序而不是imp / exp。
答案 1 :(得分:2)
您可以肯定使用exp工具导出数据库,然后使用imp工具将其导入新数据库。
可以在不同版本的Oracle之间导入/导出吗?
导入的不同版本 实用程序向上兼容。这个 意味着可以获取导出文件 从旧的导出版本创建, 并使用更高版本的导入它 导入实用程序。这是相当的 有效的升级数据库的方法 从一个版本的Oracle到 下。
甲骨文还发布了一些以前的版本 可以是catexpX.sql脚本 用户SYS启用旧版本 imp / exp版本工作(for 向后兼容性)。例如, 一个人可以跑 $ ORACLE_HOME / RDBMS /管理/ catexp7.sql 在Oracle 8数据库上允许 要运行Oracle 7.3 exp / imp实用程序 针对Oracle 8数据库。
有关此问题的更多信息,请查看Import Export FAQ。
答案 2 :(得分:0)
虽然您可以使用exp / imp从旧版本“升级”,但我不会这样做!
通过使用exp / imp,您可以有效地创建新数据库。您将丢失所有表统计信息。当然,你可以重新创建它们。但为什么?您还需要创建新的登录名/密码。确保没有涉及第3方工具,用于查询数据库。也许在此期间,已经创建了第二个模式(例如,用于生成报告),该模式在“您的”应用程序表上具有授权。
在我看来,安装oracle 10软件然后升级现有数据库会更好。 Oracle提供了足够的迁移工具。
无论您选择哪条道路,都应该使用“生产”数据的完整卷在集成服务器上进行彻底测试。另外请注意,导入所需的时间比导出时间长得多。