从 Oracle 创建“定义”文件

从 Oracle 创建“定义”文件

我继承了一个 Oracle 数据库,但我没有 Oracle 经验。我被要求在新服务器上构建数据库的“克隆”。我四处搜索,但没有找到我想要的东西,也许我的术语是错误的。

在 Oracle 数据库中,是否有一种方法可以运行命令,并最终得到一个可以在新服务器上运行的大型 SQL 文件,以便创建所有表、函数、存储过程等。我不需要任何实际数据,只需要数据库的结构。这将用于新客户,我们绝对不想共享以前客户的数据。

这个数据库已经使用了好几年,并且有数百个表、存储过程等,没有任何形式的集中控制,所以我需要从正在运行的数据库中拉出它。(并将其存档在源代码控制中!)

答案1

除非您的 oracle 版本是 9 或更低,否则您真的要避免使用 exp 或 imp,因为它们比替代品 expdp 和 impdp 更不灵活且功能更弱。

我假设您只想导出一个架构。如果您想导出整个数据库实例(不建议),即包含所有 sys/system/etc. 架构和表空间,请使用 full=y 且不使用架构语句。

要完成您使用 expdp 提出的问题,请执行以下操作:

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

要获取包含 SQL 语句的文本文件,您可以使用上面创建的转储文件执行以下操作:

impdp dumpfile=example.dmp sqlfile=example.sql

答案2

你想要的命令看起来类似于:

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

以下是关于 exp/imp 的常见问题解答:http://www.orafaq.com/wiki/Import_Export_FAQhttp://www.orafaq.com/wiki/Exporthttp://www.orafaq.com/wiki/Import

请注意,这exp会生成二进制文件,而不是包含 SQL 语句(如 mysqldump)的文本文件。

此外,还有一个http://dba.stackexchange.com该网站可能会更好地帮助您。

相关内容