【问题标题】:Oracle Data Pump Export script failsOracle 数据泵导出脚本失败
【发布时间】:2015-02-03 22:29:13
【问题描述】:

我正在尝试对表空间(课程)上的元数据进行数据泵导出。我在正确的轨道上吗?我的数据泵目录创建为:

CREATE DIRECTORY dpump_dir AS '/mydata/data';

请记住,我是初学者。这可能是也可能不是解决此问题的最佳方法,但我想尝试使其正常工作。非常感谢。

declare
      dp_handle       number;
  begin
      dp_handle := dbms_datapump.open(
      operation   => 'EXPORT',
      job_mode    => 'TABLESPACE');

    dbms_datapump.add_file(
      handle    =>  dp_handle,
      filename  => 'courses.dmp',
      directory => 'dpump_dir');

    dbms_datapump.add_file(
      handle    => dp_handle,
      filename  => 'courses.log',
      directory => 'dpump_dir',
      filetype  => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);

    dbms_datapump.metadata_filter(      
      handle => dp_handle,
      name   => 'TABLESPACE_EXPR',
      value  => '''COURSE''');

    dbms_datapump.start_job(dp_handle);

    dbms_datapump.detach(dp_handle);
  end;
  /    

ERROR at line 1:
ORA-39001: invalid argument value
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_DATAPUMP", line 2926
ORA-06512: at "SYS.DBMS_DATAPUMP", line 3162
ORA-06512: at line 8

【问题讨论】:

    标签: oracle export datapump


    【解决方案1】:

    这可能失败的原因有很多:

    1. 您要写入的文件 (courses.dmp) 已经 存在。甲骨文 不会覆盖文件。 (是的,错误信息很糟糕)
    2. 操作系统目录/mydata/data 确实存在。
    3. /mydata/data 确实存在,但Oracle没有必要的 访问目录的权限
    4. 以上都不是,但运行脚本的 Oracle 用户不是 在dpump_dir 上授予read, write

    如果这些点没有帮助,您可以先打开 (add_file) *.log 文件,然后打开 *.dmp 文件。希望 Oracle 会在 *.log 文件中写入一些有意义的内容。

    【讨论】:

    • 上面关于在 dmp 文件之前添加日志文件的建议是我解决转储过程问题的关键。
    【解决方案2】:

    您的错误似乎发生在第一次 ADDFILE 调用中。

    尝试使您的目录引用大写:directory => 'DPUMP_DIR'

    【讨论】:

      【解决方案3】:

      试试这个:

      dbms_datapump.metadata_filter(      
            handle => dp_handle,
            name   => 'TABLESPACE_EXPR',
            value  => '=''COURSE''');
      

      “我仍然收到相同的错误消息 不过”

      嗯.... 远程调试其他人的代码是 SO 最不有趣的方面之一。无论如何,让我们再猜测一下。

      您是否有一个名为/mydata/data 的操作系统目录,Oracle 对其具有读写权限? CREATE DIRECTORY 语句只创建一个指针,它不创建底层操作系统目录。

      【讨论】:

      • 您好,感谢您的回复。我仍然收到相同的错误消息
      猜你喜欢
      • 2017-08-24
      • 2012-12-12
      • 2020-07-04
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-03
      相关资源
      最近更新 更多