Oracle:新数据库vs新用户.schema?

时间:2014-05-29 19:42:46

标签: oracle oracle10g schema

背景故事:当我去年10月开始工作的公司赢得合同时,我把这个数据库放在了我的腿上。开发人员给了我很少的翻身,所以我在我的记忆中回想起2002年我维护Oracle数据库的时候。我的技能非常过时,所以请保持温和。

Oracle 10.2.0.0.0 Windows Server 2003

我的客户现在希望我创建现有应用程序/数据库的空白副本以供将来使用。我的第一个想法是克隆现有数据库并删除所有数据。但是,我似乎记得多年前在一个项目上工作,这使我相信我可以克隆现有的用户/架构,而不是要维护整个其他数据库。这个新应用程序很可能永远不会被使用,我希望尽可能少地完成工作。目前的数据库很小。任何建议将不胜感激。

2 个答案:

答案 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