我正在工作的公司正在将他们的数据库从Oracle 10g迁移到11g。星期一我们要清理我们的开发数据库并将生产数据库克隆到该存储。
我们再来一次。我认为我的第二个任务有点复杂。在开发数据库中,我们有大约200个用户,在生产数据库上有1500个用户。现在我将编写一个脚本,该脚本应该从我们的开发数据库返回所有用户并导出它们。之后,另一个脚本应该在没有任何对象的情况下搜索生产数据库的所有用户并删除它们,而不是系统架构或用户架构,并导入开发数据库的旧用户。有没有办法在脚本或查询中执行所有这些操作?
致以最诚挚的问候,
Chris(IT学生,但总数据库新手)
答案 0 :(得分:0)
要将用户从开发人员迁移到生产版,您应该使用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);
然后,您可以查看此输出,检查它是否只删除您期望的用户并运行该脚本。