zoukankan      html  css  js  c++  java
  • expdp导出时报错ora-16000

    一、问题现象:在对数据库进行expdp导出时发生报错ora-16000,脚本如下:

    nohup expdp "'/ as sysdba'" schemas=shp DIRECTORY=DATA_PUMP_DIR dumpfile=shp1.dmp logfile=shp1.log &

    报错如下:

    ORA-31626: job does not exist
    ORA-31633: unable to create master table "SYS.SYS_EXPORT_SCHEMA_05"
    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
    ORA-06512: at "SYS.KUPV$FT", line 1038
    ORA-16000: database open for read-only access

    由上报错可知,数据库read—only,查看数据库状态:

    SQL> select OPEN_MODE from v$database;
    
    OPEN_MODE
    --------------------
    READ ONLY

    果然,数据库是只读状态。

    二、expdp研究

      将数据库设置为读写状态,观察expdp

    SQL> shutdown immediate
    SQL> startup mount
    SQL> alter database open read write;

    重新执行expdp导出脚本,观察执行情况

    SQL> select job_name,state from dba_datapump_jobs;
    
    JOB_NAME               STATE
    ------------------------------ ------------------------------
    SYS_EXPORT_SCHEMA_01           EXECUTING

    通过plsql查看dba_datapump_jobs这个视图的详细信息,发现

    SQL> col COMMENT$ for a50 
    SQL> select * from sys.com$ c  WHERE SUBSTR (c.comment$, 1, 22) = 'Data Pump Master Table';
    
          OBJ#     COL# COMMENT$
    ---------- ---------- --------------------------------------------------
         91600          Data Pump Master Table EXPORT
                  SCHEMA

    通过object_id找到对应的表,其实就是SYS.SYS_EXPORT_SCHEMA_01

    在导出数据的过程中可以看到其表结构(截取了部分列名称)

    查看这张表的数据,发现这张表记录了字符集,路径,导出的对象,时间,并行度等信息

    在导出结束后,这张表将会自动清除。

    Master table "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
    ******************************************************************************
    Dump file set for SYS.SYS_EXPORT_SCHEMA_01 is:
      /oracle/admin/orcl/dpdump/shp1.dmp
    Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at Sat Mar 16 03:14:49 2019 elapsed 0 00:00:18

    三、总结

      在使用expdp导出数据时,系统会自动创建数据泵主表(Data Pump Master Table)并插入相关数据,如果数据库是只读模式,无法创建失败,无法导出数据。在expdp导出完毕后,系统会自动删除数据泵主表,注意此表默认表空间为system表空间,在数据量大并行度高的导出需要关注一下表空间使用情况。

     

    四、建议

      在对只读库进行数据导出的时候可以采用exp导出,或者使用expdp+network_link方式进行数据导出。

  • 相关阅读:
    [数学-构造矩阵]NEFU 1113
    设计模式【1】:原型模式【创建对象】
    XML(五)dom4j增删改查
    小规则让你写出美丽又高效的程序
    jQuery源代码解析(3)—— ready载入、queue队列
    cocos2d-Lua02Lua面向对象
    在Linux下用make指令编译进度条程序。
    JS两日期相减
    java debugger
    tomcat server.xml
  • 原文地址:https://www.cnblogs.com/penggepiaopiao/p/10743502.html
Copyright © 2011-2022 走看看