经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
expdp导出时报错ora-16000
来源:cnblogs  作者:鹏哥飘飘  时间:2019/4/22 8:54:42  对本文有异议

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

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

报错如下:

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

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

  1. SQL> select OPEN_MODE from v$database;
  2. OPEN_MODE
  3. --------------------
  4. READ ONLY

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

二、expdp研究

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

  1. SQL> shutdown immediate
  2. SQL> startup mount
  3. SQL> alter database open read write;

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

  1. SQL> select job_name,state from dba_datapump_jobs;
  2. JOB_NAME STATE
  3. ------------------------------ ------------------------------
  4. SYS_EXPORT_SCHEMA_01 EXECUTING

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

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

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

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

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

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

  1. Master table "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
  2. ******************************************************************************
  3. Dump file set for SYS.SYS_EXPORT_SCHEMA_01 is:
  4. /oracle/admin/orcl/dpdump/shp1.dmp
  5. 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方式进行数据导出。

原文链接:http://www.cnblogs.com/penggepiaopiao/p/10743502.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号