如何将Oracle中的数据库模式导出到转储文件

我在Linux机器上安装的Oracle服务器上有一个数据库模式。 我需要在转储文件中导出架构相关的信息。

这个怎么做 ?

Solutions Collecting From Web of "如何将Oracle中的数据库模式导出到转储文件"

这取决于哪个版本的Oracle? 旧版本需要exp(导出),较新的版本使用expdp(数据泵); exp被弃用,但大部分时间仍然有效。

在开始之前,请注意,数据泵导出到服务器端Oracle“目录”,这是Oracle数据库中映射到物理位置的Oracle符号位置。 可能有一个默认目录(DATA_PUMP_DIR),通过查询DBA_DIRECTORIES进行检查:

SQL> select * from dba_directories; 

…如果没有,创建一个

  SQL> create directory DATA_PUMP_DIR as '/oracle/dumps'; SQL> grant all on directory DATA_PUMP_DIR to myuser; -- DBAs dont need this grant 

假设您可以以SYSTEM用户或其他DBA身份进行连接,则可以将任何模式导出到默认目录:

  $ expdp system/manager schemas=user1 dumpfile=user1.dpdmp 

或者指定一个特定的目录,添加directory=<directory name>

  C:\> expdp system/manager schemas=user1 dumpfile=user1.dpdmp directory=DUMPDIR 

使用较老的导出实用程序,可以导出到工作目录,甚至在远离服务器的客户机上,使用:

  $ exp system/manager owner=user1 file=user1.dmp 

确保导出是在正确的字符集中完成的。 如果你还没有设置你的环境,Oracle客户端字符集可能与数据库字符集不匹配,Oracle会进行字符集转换,这可能不是你想要的。 你会看到一个警告,如果是的话,那么你需要在设置NLS_LANG环境变量之后重复导出,这样客户端字符集与数据库字符集匹配。 这将导致Oracle跳过字符集转换。

美国UTF8(UNIX)示例:

  $ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 

Windows使用SET,例如使用日语UTF8:

  C:\> set NLS_LANG=Japanese_Japan.AL32UTF8 

有关Data Pump的更多信息,请访问: http : //docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#g1022624