Lilantha Lakmal Asked: 2015-07-23 22:10:35 +0800 CST2015-07-23 22:10:35 +0800 CST 2015-07-23 22:10:35 +0800 CST 如何导出没有数据的Oracle数据库 772 我想导出我的 Oracle 数据库及其结构,例如表、模式、用户、表空间、数据文件和所有内容,但不包含包含的数据。 database-design backup 3 个回答 Voted Best Answer Phil Sumner 2015-07-24T04:54:33+08:002015-07-24T04:54:33+08:00 从您对@Ozzie 的回复来看,我不确定您是否可以做您想做的事。 您可以使用 expdp(数据泵)和 METADATA_ONLY 标志导出 11gR2 数据库的元数据。请参阅http://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm 这将导出数据的结构。这不包括重做日志、控制文件和实例所需的支持文件。 要使用此导出进行恢复,您需要使用 dbca 创建一个新的数据库实例,其中设置了所有日志和支持结构,然后使用 impdp 导入元数据。 如果您有数据文件的副本,您还可以使用可传输表空间将数据移动到新实例。 备份整个数据库的常规方法是 RMAN。这将包括恢复数据库所需的一切。不过,我不相信 RMAN 提供了排除数据的选项。 如果您可以解释您要达到的目标,这可能会有所帮助,那么可能会有更好的选择。 Ozzie 2015-07-24T05:31:09+08:002015-07-24T05:31:09+08:00 鉴于我之前在评论中指出的帖子: 如何生成 Oracle 模式的整个 DDL(可编写脚本)? 使用相同的包,您可以生成表空间 DDL: select 'select dbms_metadata.get_ddl(''TABLESPACE'',''' || tablespace_name || ''') from dual;' from dba_tablespaces HTH。 Matthias Wiedemann 2022-07-26T01:29:02+08:002022-07-26T01:29:02+08:00 对于那些寻找如何使用工具sqlcl和数据泵导出数据的人来说,要控制的参数是否包含数据是includerows。与https://docs.oracle.com/en/database/oracle/sql-developer-command-line/21.4/sqcug/data-pump.html上的文档进行比较 与早期软件中includerows=false的相同content=metadata_only。
从您对@Ozzie 的回复来看,我不确定您是否可以做您想做的事。
您可以使用 expdp(数据泵)和 METADATA_ONLY 标志导出 11gR2 数据库的元数据。请参阅http://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm
这将导出数据的结构。这不包括重做日志、控制文件和实例所需的支持文件。
要使用此导出进行恢复,您需要使用 dbca 创建一个新的数据库实例,其中设置了所有日志和支持结构,然后使用 impdp 导入元数据。
如果您有数据文件的副本,您还可以使用可传输表空间将数据移动到新实例。
备份整个数据库的常规方法是 RMAN。这将包括恢复数据库所需的一切。不过,我不相信 RMAN 提供了排除数据的选项。
如果您可以解释您要达到的目标,这可能会有所帮助,那么可能会有更好的选择。
鉴于我之前在评论中指出的帖子: 如何生成 Oracle 模式的整个 DDL(可编写脚本)?
使用相同的包,您可以生成表空间 DDL:
HTH。
对于那些寻找如何使用工具
sqlcl
和数据泵导出数据的人来说,要控制的参数是否包含数据是includerows
。与https://docs.oracle.com/en/database/oracle/sql-developer-command-line/21.4/sqcug/data-pump.html上的文档进行比较与早期软件中
includerows=false
的相同content=metadata_only
。