我工作的公司正在将他们的数据库从Oracle 10g迁移到11g。周一,我们希望清理开发数据库,并将生产数据库克隆到该存储中。
再来一次。我认为我的第二个任务有点复杂。在开发数据库上,我们有大约200个用户,在生产数据库上,大约有1500个用户。现在,我将编写一个脚本,该脚本应返回开发数据库中的所有用户并将其导出。之后,另一个脚本应该搜索没有任何对象的生产数据库的所有用户并删除它们,但不包括系统模式或用户模式,并导入开发数据库的旧用户。有没有办法在脚本或查询中完成所有这些事情?
诚挚的问候,
Chris (IT学生,但完全是数据库新手)
发布于 2013-02-01 16:58:28
要将用户从开发迁移到生产环境,您应该使用data pump import/export。您可以使用它来指定要导出/导入的用户。这也将带来他们的对象,特权等,所以你可以确保你拥有一切。
要删除没有对象的用户,请运行以下命令以生成脚本:
SELECT 'drop user ' || username || ';'
FROM dba_users u
where not exists (select null
from dba_objects o
where o.owner = u.username);然后,您可以查看此脚本的输出,检查它是否只删除了您期望的用户并运行该脚本。
https://stackoverflow.com/questions/14641313
复制相似问题