我需要将数据从 Oracle 9i 导出和导入到 Oracle 12.2 数据库。
这个旧应用程序不作为一个特权用户登录 - 它为每个用户登录。我有数百个用户,除了同义词什么都没有。
我需要预先创建用户和他们的权限,以便我可以导入。
Internet 上到处都是脚本:
* Ask Tom 建议导入和索引文件(我发现它很笨拙)。
* DBMS_METADATA.GET_DDL 脚本,以及。
然而,由于匆忙,我还没有找到一个脚本来循环遍历所有用户并生成他们的 DDL 和授权等。
我想运行一个 9i 脚本来获取所有内容,并运行一个 12.2 脚本来创建用户,但找不到任何有用的东西。
你能建议我应该如何解决这个问题吗?还是我把它弄得太复杂了?
我使用 SQL Developer 工具解决了我的问题。
我按照本文中的步骤为数据库中的任何内容生成了 DDL。除了 9i 之外,我还有一个 11g 数据库需要迁移,这个过程对于 11g 来说很容易。
但是,对于 9i,我使用了这篇文章中的脚本并在 SQLDeveloper 中运行它来预创建我的用户。只需将脚本的输出保存到一个文件中,然后在 SQLDeveloper 中轻松运行即可。
一种非常简洁的方法是使用
EXCLUDE
参数 toexpdp
,例如:您需要列出所有系统用户和包含实际数据的模式。
参考:
https://oracle-base.com/articles/10g/oracle-data-pump-10g#IncludeExclude