从Oracle创build一个“定义”文件

我已经inheritance了一个oracle数据库,并没有Oracle的经验。 我一直负责在新服务器上构build数据库的“克隆”。 我正在四处寻找,但没有find我正在寻找的东西,也许我的术语是错误的。

在oracle数据库中,有没有办法运行一个命令,最后是一个可以在新服务器上运行的大型SQL文件,以便创build所有的表,函数,存储过程等。不需要任何实际的数据,只需要数据库的结构。 这将用于新客户,我们绝对不想分享以前的客户数据。

这个数据库已经使用好几年了,有数百个表,存储过程等,没有一种集中控制,所以我需要把它从正在运行的数据库。 (并在源代码pipe理中将其归档)!

除非你的oracle版本是9或者更低,否则你真的想要避免exp或imp,它们比replaceexpdp和impdp更不灵活,更弱。

我假设你只想导出一个模式。 如果你想导出一个完整的数据库实例(不build议),即所有的系统/系统/等。 模式和表空间,使用full = y和没有模式规则。

用expdp来完成你所要求的操作就像这样:

expdp dumpfile=example.dmp log=example.log content=metadata_only schemas=example_schema 

要使用sql语句获取文本文件,可以使用上面创build的转储文件执行以下操作:

 impdp dumpfile=example.dmp sqlfile=example.sql 

你想要的命令将如下所示:

exp username/password file=emp.dmp log=emp.log rows=no

以下是关于exp / imp的常见问题解答: http : //www.orafaq.com/wiki/Import_Export_FAQ以及http://www.orafaq.com/wiki/Export和http://www.orafaq.com/wiki/import

请注意, exp生成一个二进制文件,而不是一个带有像mysqldump这样的SQL语句的文本文件。

此外,还有一个http://dba.stackexchange.com网站,可以帮助你更好。