Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何将Oracle中的数据库架构导出到转储文件_Linux_Oracle_Export - Fatal编程技术网

Linux 如何将Oracle中的数据库架构导出到转储文件

Linux 如何将Oracle中的数据库架构导出到转储文件,linux,oracle,export,Linux,Oracle,Export,我在Linux机器上安装了Oracle server上的数据库架构。我需要在转储文件中导出与模式相关的信息 如何做到这一点?这取决于Oracle的哪个版本?旧版本需要exp(导出),新版本使用expdp(数据泵);exp已被弃用,但大多数情况下仍然有效 在启动之前,请注意数据泵会导出到服务器端Oracle“目录”,这是数据库中映射到物理位置的Oracle符号位置。可能存在默认目录(DATA\u PUMP\u DIR),通过查询DBA\u目录进行检查: SQL> select * fro

我在Linux机器上安装了Oracle server上的数据库架构。我需要在转储文件中导出与模式相关的信息


如何做到这一点?

这取决于Oracle的哪个版本?旧版本需要exp(导出),新版本使用expdp(数据泵);exp已被弃用,但大多数情况下仍然有效

在启动之前,请注意数据泵会导出到服务器端Oracle“目录”,这是数据库中映射到物理位置的Oracle符号位置。可能存在默认目录(DATA\u PUMP\u DIR),通过查询DBA\u目录进行检查:

  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
假设您可以作为系统用户或其他DBA进行连接,则可以将任何类似的模式导出到默认目录:

 $ expdp system/manager schemas=user1 dumpfile=user1.dpdmp
或指定特定目录,添加
目录=

使用较旧的导出实用程序,您可以使用以下方法导出到工作目录,甚至在远离服务器的客户端计算机上:

 $ exp system/manager owner=user1 file=user1.dmp
确保导出在正确的字符集中完成。如果尚未设置环境,Oracle客户端字符集可能与DB字符集不匹配,Oracle将执行字符集转换,这可能不是您想要的。您将看到一个警告,如果是这样,那么在设置NLS_LANG环境变量以使客户端字符集与数据库字符集匹配后,您将希望重复导出。这将导致Oracle跳过字符集转换

美国UTF8(UNIX)的示例:

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

 C:\> set NLS_LANG=Japanese_Japan.AL32UTF8

有关数据泵的更多信息,请参见此处:

oracle版本为11.2.0.2请使用expdp,除非您无法访问物理数据库服务器,否则您将需要使用exp。我无法更改oracle服务器或Linux服务器,因为它是生产机器。那么我觉得这样的经验更好!!!或者使用带有默认目录的数据泵expdp(如果您检查DBA_目录,应该有一个)。谢谢,您能看看我的新帖子吗?
 $ export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
 C:\> set NLS_LANG=Japanese_Japan.AL32UTF8