集团站切换校区
图标

学习文章

当前位置:首页 > >学习文章 > >

{Oracle数据库}EXPDP报错ORA-39171、ORA-01691解决方法

发布时间: 2017-06-16 15:22:52

数据泵导出过程:

SQL> create user aaa identified by aaa_1234 account unlock;

User created.

SQL> grant dba to aaa;

Grant succeeded.

create or replace directory test as '/oraarch1/datadump';

SQL> grant read,write on directory test to aaa;

Grant succeeded.

expdp aaa/aaa_1234 full=y directory=test dumpfile=expdp_full_%U.dmp logfile=expdp.log filesize=2G parallel=6

ORA-39171: Job is experiencing a resumable wait.

ORA-01691: unable to extend lob segment AAA.SYS_LOB0004117998C00039$$ by 1024 in tablespace USERS

. . exported "ZJYD"."MLOG$_SF_ARREARAGE" 7.338 GB 246625643 rows

ORA-39171: Job is experiencing a resumable wait.

ORA-01691: unable to extend lob segment AAA.SYS_LOB0004117998C00039$$ by 1024 in tablespace USERS

. . exported "ZJYD"."SF_YDLW_BATCH_BALANCE_LOG" 16.92 GB 96330619 rows

ORA-39171: Job is experiencing a resumable wait.

ORA-01691: unable to extend lob segment AAA.SYS_LOB0004117998C00039$$ by 1024 in tablespace USERS

错误原因:aaa用户所在的user表空间不足

导数前:

        

导数后:

USERS表空间USED_RATE(%)为94%,其他不变

        

解决:

删除现有的aaa用户,重建aaa到YD_DATA表空间

SQL> create user aaa identified by aaa_1234 default tablespace YD_DATA account unlock;

User created.

SQL> grant dba to aaa;

Grant succeeded.

—————————————————————————————————————————

drop user ts cascade;

ORA-01940: cannot drop a user that is currently connected --------------------无法删除当前已连接的用户

查找帐号下哪些连接在运行:

select username,sid,serial# from v$session where username = 'USERNAME'

alter system kill session'532,4562'

然后就可以删除该用户了

————————————————————————————————————————————————

删除数据泵导出进程:

一、停止EXP/IMP优化速度

可以直接KILL 进程,但先要KILL 父进程,然后KILL子进程,只KILL子进程,EXP/IMP还会在后台执行的

样例:ps -ef |grep imp 查询到pid,kill -9 pid 、kill -9 ppid,就可以了

二、停止EXPDP/IMPDP

这里就不能简单的用KILL进程来处理了,因为这里是一个JOB

select job_name,state from dba_datapump_jobs;

       

如果STATE是executing则需要通过expdp参数删除

   

方法:

样例1:

C:\Documents and Settings\Administrator>expdp system/sys attach=SYS_EXPORT_FULL_01

Export: Release 11.2.0.1.0 - Production on 星期六 7月 13 23:53:55 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

作业: SYS_EXPORT_FULL_01

所有者: SYSTEM

  操作: EXPORT

  创建者权限: TRUE

  GUID: 7374DCC3E7D547B3B755865E4DB59F10

  开始时间: 星期六, 13 7月, 2013 23:53:57

  模式: FULL

  实例: tony

  最大并行度: 1

  EXPORT 个作业参数:

  参数名      参数值:

 CLIENT_COMMAND        system/******** directory=dir_dump dumpfile=dir_dump:bigtable.dmp logfile=dir_dump:bigtable.log full=y

  状态: IDLING

  处理的字节: 0

  当前并行度: 1

  作业错误计数: 0

  转储文件: d:\impdp\bigtable.dmp

    写入的字节: 5,177,344

Worker 1 状态:

  进程名: DW00

  状态: UNDEFINED

Export> stop_job

是否确实要停止此作业 ([Y]/N): y

是否确实要停止此作业 ([Y]/N): Y

是否确实要停止此作业 ([Y]/N): Y

 

是否确实要停止此作业 ([Y]/N): Y

是否确实要停止此作业 ([Y]/N): Y  ---------------就是停止不了,在dba_datapump_jobs还是能查到记录,只是JOB已经停止了。

-----已经解决了,需要输入YES

       Export> KILL_JOB

       是否确实要停止此作业 ([Y]/N): YES

在执行的时候CTL+C就可以进入交互模式,windows和LINUX下都是一样的。

重新进入EXPDP/IMPDP,就可以执行下面的交互命令:

$expdp username/password,

交互模式常用命令:

CONTINUE_CLIENT返回到记录模式。假如处于空闲状态, 将重新启动作业。

START_JOB 启动恢复当前作业。

STATUS在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。

STATUS=[interval]

STOP_JOB顺序关闭执行的作业并退出客户机。

STOP_JOB=IMMEDIATE 将立即关闭数据泵作业。

上一篇: zabbix理论知识

下一篇: {Android培训}实现一键锁屏程序

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!