我们正在使用旧版本的 oracle(它的 7 或 8),并且正在使用 exp/imp 来保持数据库服务器同步(有一些时间延迟)。有点像穷人的复制品。
其中一台服务器是“主”,一台是“备份”。启动时,Primary 导出其完整的数据库,Backup 将删除其所有用户,然后导入 Primary 导出的内容。然后每隔一段时间,主数据库将导出增量转储,这些转储由备份导入以保持同步。
“删除所有用户”部分是我们花费大量时间的地方。基本上要做到这一点,我正在查询所有这样的用户:
select distinct owner from all_tables where owner <> 'SYSTEM' AND owner <> 'SYS';
然后根据这个查询在 sqlplus 中执行“drop USER cascade”。我的问题是,有没有比这更快的方法来清除所有用户及其数据?我不确定在这里有什么帮助(放松限制?其他黑客?)