删除Oracle中的用户(和相关数据)

时间:2013-10-31 23:33:41

标签: sql oracle sqlplus

我们使用旧版本的oracle(7或8),并使用exp / imp来保持数据库服务器同步(有一些时间延迟)。一个穷人的复制。

其中一个服务器是“主要”,一个是“备份”。在启动时,主节点导出其完整数据库,备份将删除其所有用户,然后导入主节点导出的内容。然后,在一个时间间隔内,主数据库将导出由备份导入的增量转储,以使它们保持同步。

“放弃所有用户”部分是我们花费大量时间的地方。基本上这样做,我正在查询所有这样的用户:

select distinct owner from all_tables where owner <> 'SYSTEM' AND owner <> 'SYS';

然后根据此查询在sqlplus中执行“删除USER级联”。我的问题是,是否有更快的方法来消除所有用户及其数据?我不确定这对我有什么帮助(放松约束?其他黑客?)

2 个答案:

答案 0 :(得分:1)

您可能需要check this out

此解决方案在删除em之前截断表,这可以提供很好的加速,特别是如果表中有大量数据。

答案 1 :(得分:1)

删除完整的数据库,重新创建并执行导入可能会更快。当有许多物体时尤其如此。

也许是时候升级并使用智能解决方案进行重新定位,例如dbvisit replicate