背景故事:当我去年10月开始工作的公司赢得合同时,我把这个数据库放在了我的腿上。开发人员给了我很少的翻身,所以我在我的记忆中回想起2002年我维护Oracle数据库的时候。我的技能非常过时,所以请保持温和。
Oracle 10.2.0.0.0 Windows Server 2003
我的客户现在希望我创建现有应用程序/数据库的空白副本以供将来使用。我的第一个想法是克隆现有数据库并删除所有数据。但是,我似乎记得多年前在一个项目上工作,这使我相信我可以克隆现有的用户/架构,而不是要维护整个其他数据库。这个新应用程序很可能永远不会被使用,我希望尽可能少地完成工作。目前的数据库很小。任何建议将不胜感激。
答案 0 :(得分:2)
您可以使用rows=n
参数导出数据库:
exp username/password@db owner=abc rows=n
这将导出除数据之外的所有内容。
然后,如果要导入它,可以根据需要更改用户:
imp username/password@db fromuser=abc touser=xyz
答案 1 :(得分:2)
我建议使用10g以上的datapump(expdp / impdp)。您可以执行以下命令:
- 在源服务器中导出转储:
expdp user/password directory=oracle_directory dumpfile=mydump_abc.dmp logfile=mydump_abc_export.log schemas=abc content=metadata_only
- 在目标服务器中导入转储
impdp user/password directory=oracle_directory1 dumpfile=mydump_abc.dmp logfile=mydump_abc_restore.log remap_schema=abc:xyz