这取决于Oracle的哪个版本?旧版本需要exp(导出),新版本使用expdp(数据泵); exp 已被弃用,但在大多数情况下仍然有效。
在开始之前,请注意数据泵导出到服务器端 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
有关数据泵的更多信息请参见此处:http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#g1022624