0

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

其中一台服务器是“主”,一台是“备份”。启动时,Primary 导出其完整的数据库,Backup 将删除其所有用户,然后导入 Primary 导出的内容。然后每隔一段时间,主数据库将导出增量转储,这些转储由备份导入以保持同步。

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

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

然后根据这个查询在 sqlplus 中执行“drop USER cascade”。我的问题是,有没有比这更快的方法来清除所有用户及其数据?我不确定在这里有什么帮助(放松限制?其他黑客?)

4

2 回答 2

1

It could be quicker to just drop the complete database, re-create it and do the imports. This is especially the case when there are many objects.

Maybe time to upgrade and use smart solutions for replciation, like dbvisit replicate?

于 2013-11-01T16:49:19.460 回答
1

你可能想看看这个

此解决方案在删除 em 之前截断表,这可以为您提供很好的加速,尤其是在表中有大量数据的情况下。

于 2013-11-01T00:12:52.243 回答