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方式进行数据导出。
expdp导出时报错ora-16000的更多相关文章
- mysql数据库导出时报错mysqldump: Got error: 145的解决方法
在给mysql数据库备份时,报错:mysqldump: Got error: 145: Table './jxzhtopenfire/ofoffline' is marked as crashed ...
- oracle expdp导出时报 ora-39070:无法打开日志文件
在通过expdp导出命令导出某个用户的对象时出现以下截图错误: ORA-39002:操作无效 ORA-39070:无法打开日志文件 ORA-39087:目录名<directory>无效 该 ...
- oracle在exp导出时报错PLS-00201: identifier 'EXFSYS.DBMS_EXPFIL_DEPASEXP' must be declared
报错如下信息: EXP-00008: ORACLE error 6550 encounteredORA-06550: line 1, column 14:PLS-00201: identifier ' ...
- oracle 导出时报错EXP-00011:table不存在
oracle11g,在用exp命令备份数据库时,如果表中没有数据报EXP-00011错误,对应的表不存在.这导致对应的空表无法备份. 原因:11g默认创建一个表时不分配segment,只有在插入数据时 ...
- 【SQL】SQL2012 导入导出报错,未在计算机上注册...
导出时报错: 如图: 解决方法:下载插件: 下载地址:http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463 ...
- EXPDP 时报错ORA-31693,ORA-02354,ORA-01555
使用数据泵导出数据库大表时报错: ORA-31693: 表数据对象 "**"."**" 无法加载/卸载并且被跳过, 错误如下:ORA-02354: 导出/导入数 ...
- Microsoft SQL Server 17导出xlsx文件时报错:The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data)
导出数据时报错: 如果你是导出office 2007格式 TITLE: SQL Server Import and Export Wizard ---------------------------- ...
- powerdesigner导出sql时报错 Generation aborted due to errors detected during the verification of the model.
powerdesigner导出sql时报错 Generation aborted due to errors detected during the verification of the model ...
- 高版本 MySQL 导出的脚本到低版本 MySQL 中执行时报错
导入 MySQL 脚本时报错:[ERR] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'低版本还不支持 utfmb4 这个字符集 解决方法:将 sql 脚 ...
随机推荐
- html active属性
源代码 <div class="col-md-3"> <div class="list-group"> <a href=" ...
- iOS上Delegate的悬垂指针问题
文章有点长,写的过程很有收获,但读的过程不一定有收获,慎入 [摘要] 悬垂指针(dangling pointer)引起的crash问题,是我们在iOS开发过程当中经常会遇到的.其中由delegat ...
- java获取当月天数,指定年月的天数,指定日期获取对应星期 .
package huolongluo.family.util; import java.text.SimpleDateFormat; import java.util.Calendar; import ...
- android studio使用openssl
前言 逆向的基础是开发, 逆向分析时很多时候会使用一些公开的加密函数来对数据进行加密,通过使用 openssl 熟悉下. 正文 首先得先编译出来 openssl,然后把它们复制到你的工程目录下. in ...
- maven 安装与配置最佳实践
配置Maven环境变量 1.新建 maven home 环境变量 变量名:M2_HOME 变量值:D:\ProgramFiles\apache-maven-3.5.4 2 ...
- 回归JavaScript基础(二)
主题:在HTML中使用JavaScript. 要想把JavaScript放到网页中,就必须涉及到Web的核心语言HTML.向HTML页面中插入JavaScript的主要方法,就是使用<scrip ...
- 5.servlet 上传文件
一.maven依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>com ...
- c# 线程池:开启10个线程运行Fibonacci,并在所有线程运行完后,得出结果。
namespace CAThreadPool { class ThreadpoolDemo6 { static void Main(string[] args) { ; // One event is ...
- 由delete导致的超时已过期问题
1. 问题 开发人员反映应用程序中一条简单的delete语句执行报“超时已过期”错误.delete语句形式如下: delete * from table_1 where id=@value 2. 分析 ...
- apache软件no_ssl和openssl两种类型的区别
apache软件同一版本有两种类型:no_ssl和openssl: openssl多了个ssl安全认证模式,它的协议是HTTPS而不是HTTP,这就是带有SSL的服务器与一般网页服务器的区别了. 一般 ...