【问题标题】:How to create a dump with Oracle PL/SQL Developer?如何使用 Oracle PL/SQL Developer 创建转储?
【发布时间】:2009-05-12 11:24:11
【问题描述】:

我需要将用户(包括表、过程等)转储为FILENAME.dmp

如果我创建一个新用户并导入该FILENAME.dmp,那么应该创建所有内容。

如何创建这个转储文件?

不要告诉我使用 Run > EXPRun > IMP 功能,因为由于某些问题,该功能不适合我。

【问题讨论】:

  • imp 可能由于 PATH 问题而无法正常工作。如果从命令行运行 imp 会发生什么?
  • 其实你需要的是运行exp,而不是imp。

标签: oracle plsqldeveloper


【解决方案1】:

EXP(导出)和 IMP(导入)是您需要的两个工具。最好尝试在命令行和同一台机器上运行这些。

它可以远程运行,您只需正确设置TNSNAMES.ORA 并安装与数据库相同版本的所有开发工具。在不知道您遇到的错误消息的情况下,我无法帮助您让 exp/imp 正常工作。

导出单个用户的命令:

exp userid=dba/dbapassword OWNER=username DIRECT=Y FILE=filename.dmp

这将创建导出转储文件。

要将转储文件导入不同的用户架构,首先在 SQLPLUS 中创建新用户:

SQL> create user newuser identified by 'password' quota unlimited users;

然后导入数据:

imp userid=dba/dbapassword FILE=filename.dmp FROMUSER=username TOUSER=newusername

如果有大量数据,请调查增加 BUFFERS 或查看 expdp/impdp

exp 和 imp 最常见的错误是设置错误。检查您的PATH 包括$ORACLE_HOME/bin,检查$ORACLE_HOME 是否设置正确并检查$ORACLE_SID 是否设置

【讨论】:

  • @Chandra Sekhar:我怎么能从远程机器上做到这一点?我必须输入 IP 地址吗?可以举个例子吗?
  • IIRC 您将使用通常的语法来访问远程计算机(就像您使用 SQLPLUS 一样),即 userid=dba/password@remoteserver 已在您的 TNSNAMES.ORA 文件中定义了“remoteserver”。
  • 我没有编辑 TNSNAMES.ORA 的权限,并且远程服务器条目不存在于 TNSNAMES.ora 文件中。现在我该怎么办? :(
  • 请求修改您的本地 tnsnames.ora 文件。需要更改的 tnsnames.ora 文件是您正在访问的机器上的文件。您无需更改数据库服务器上的 tnsnames.ora。
  • 否则,您必须使用用户名/密码@server 语法的完全限定形式。抱歉,但为此您必须访问 Oracle 文档/Google(或查看 asktom.oracle.com)
【解决方案2】:

只是为了保持最新:

当前版本的 SQLDeveloper 有一个导出工具 (Tools > Database Export),它允许您将架构转储到文件中,并带有对象类型、对象名称、表数据等过滤器。

如果您习惯于在 GUI 环境中工作,那么它比 expimp 更容易设置和使用,但如果您需要使用它来编写任何脚本,它就没有那么通用了。

【解决方案3】:

就像更新一样,这也可以通过使用 Toad 9 来完成。转到数据库>导出>数据泵导出向导。在目标目录窗口中,如果您在下拉列表中找不到任何目录,那么您可能必须创建一个目录对象。

CREATE OR REPLACE DIRECTORY data_pmp_dir_test AS '/u01/app/oracle/oradata/pmp_dir_test'; 

请参阅example

【讨论】:

    【解决方案4】:

    制作表、用户和程序的转储文件有一些简单的步骤:

    转到 sqlplus 或任何 sql*plus connect by your username or password

    1. 现在键入 host 它看起来像 SQL>host。
    2. 现在键入“exp”表示导出。
    3. 它要求您输入用户名和密码,并提供您要为其制作转储文件的用户的用户名和密码。
    4. 现在按 Enter。
    5. 现在“导出文件”选项闪烁:EXPDAT.DMP>_(提供要生成转储文件的路径和文件名,例如:\FILENAME.dmp),然后按 Enter
    6. 选择“整个数据库”或“表”或“用户”选项,然后按 Enter
    7. 再次按 Enter 2 次表数据并压缩范围
    8. 输入表的名称,就像我想让表 student 的 dmp 文件存在一样,输入 student 并按 Enter 键
    9. 现在输入退出您给定路径的文件是转储文件,现在导入该 dmp 文件以获取所有表数据。

    【讨论】:

    • 一些文件路径可以这样格式化:`Filepath`
    • Give a path 表示您要放置转储文件的目的地,例如我使用了驱动器 E 所以 E:\any_name_of_file.dmp(extension)
    • 不...我的意思是,在你的回答中,有“e:\FILENAME.dmp”,你能不能把它改成`e:\FILENAME.dmp`,一定要留下` ?
    • 是的,是的,你可以留下单引号,事实上你可以在没有任何单引号或双引号的情况下编写它
    【解决方案5】:

    导出(或数据泵,如果您有 10g/11g)是执行此操作的方法。为什么不问如何解决你的问题,而不是试图找到另一种方法呢?

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 2021-09-11
      • 2017-12-21
      • 1970-01-01
      • 2010-12-22
      • 2013-08-30
      • 2021-09-30
      • 2013-10-24
      • 1970-01-01
      相关资源
      最近更新 更多