0

我工作的公司正在将他们的数据库从 Oracle 10g 迁移到 11g。周一我们要清理我们的开发数据库并将生产数据库克隆到该存储。

又来了。我认为我的第二个任务有点复杂。在开发数据库上,我们有大约 200 个用户,在生产数据库上大约有 1500 个用户。现在我将编写一个脚本,该脚本应该从我们的开发数据库中返回所有用户并导出它们。之后,另一个脚本应该搜索生产数据库的所有用户,不带任何对象并将其删除,但不包括系统模式或用户模式,并导入开发数据库的旧用户。有没有办法在脚本或查询中完成所有这些事情?

最好的祝福,

Chris(IT 学生,但总数据库新手)

4

1 回答 1

0

要将您的用户从开发迁移到生产,您应该使用数据泵 import/export。您可以使用它来指定要导出/导入的用户。这也将带来他们的物品、特权等,因此您可以确保您拥有一切。

要删除没有对象的用户,请运行以下命令以生成脚本:

SELECT 'drop user ' || username || ';' 
FROM   dba_users u
where  not exists (select null 
                   from   dba_objects o 
                   where  o.owner = u.username);

然后,您可以查看此输出,检查它是否仅删除您期望的用户并运行该脚本。

于 2013-02-01T08:58:27.643 回答