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方式进行数据导出。
本文转载自文章:https://www.
上一篇: Oracle day05
推荐阅读
-
python 使用xlsxwriter 写入数据时,当数据中链接的后面包含空格时(如:"http://*** "),导出问题打开报错
-
Oracle datapump expdp/impdp 导入导出数据库时hang住
-
expdp导出时报错ora-16000
-
Oracle基础教程:expdp时不能导出sys用户下的对象
-
expdp导出报错ORA-31693ORA-39826
-
expdp导出报错ORA-31693ORA-39826
-
expdp和impdp在有条件时导出入数据
-
Oracle 10g expdp导出报错ORA-4031的解决方法
-
python 使用xlsxwriter 写入数据时,当数据中链接的后面包含空格时(如:"http://*** "),导出问题打开报错