【导入导出】EXP-00068分析

当导出数据时,会遇到EXP-00068 错误。
   About to export specified tables via Conventional Path ...
   . . exporting table      TESTLOB
   EXP-00068: tablespace TEST_EXP is offline
   EXP-00068: tablespace TEST_EXP is offline          1 rows exported
   Export terminated successfully without warnings.

一般来说,EXP-68 的症状,原因和解决办法是:
Text  : tablespace  %s is offline
Cause : Export failed to export tablespace (tablespace being offline).
Action: Make tablespace online and re-export.

但是 也有时候甚至会遇到明明表空间online时,却报错误。

解决办法如下:
-----------------------------------------------------------------
1 连接数据库,执行如下查询,检查错误中出现的表空间和数据文件的状态:
      SELECT d.tablespace_name,d.status,d.extent_management,f.file#,f.status
         FROM dba_tablespaces d, v$datafile f, v$tablespace t
         WHERE d.tablespace_name=t.name AND t.ts#=f.ts#(+);
2.a. 如果状态显示为 offline,则将表空间online
      ALTER TABLESPACE tablespace_name ONLINE;
  b. 如果表空间里的一个或多个数据文件offline,则将相应的数据文件online
      ALTER DATABASE DATAFILE datafile# ONLINE;
  c. 如果表空间里的一个或多个数据文件的状态为 recover,则将其恢复并online
      RECOVER DATAFILE datafile#
      ALTER DATABASE DATAFILE datafile# ONLINE;
          SQL> host exp system/****** file=d:\exp.dmp full=y
  d. 将报错的表空间和数据文件online后,再次执行导出操作。
3. 如果表空间和数据文件已经online 并且是表空间是本地管理的时候,可以忽略次错误!
  
实例:
-- Export log
    About to export the entire database ...
    . exporting tablespace definitions
    EXP-00068: tablespace TS1 is offline
    -- 查看 DBA_TABLESPACES 视图 TS1的状态
    SQL> select TABLESPACE_NAME,STATUS
    from dba_tablespaces where tablespace_name='TS1';

    TABLESPACE_NAME                   STATUS
    ------------------------------ ---------
    TS1                               ONLINE

    TS1 显示为online,此时需要做更深一步的研究。执行如下查询来查看表空间TS1下的所有数据文件的状态。

    SQL> select a.file#, a.name, a.status
    2    from v$datafile a, v$tablespace b
    3    where a.ts#=b.ts#
    4    and b.name='TS1';

         FILE# NAME                        STATUS
    ---------- --------------------------- -------
            6 D:\TS1-1.DBF                 ONLINE
            7 D:\TS1-2.DBF                 RECOVER <== datafile requires recovery.
            9 D:\TS1-3.DBF                 ONLINE

从这里可以看出 ts-2.dbf 需要恢复,这就是导致EXP-00068错误的原因。
 解决办法
    -- 恢复数据文件 7;
    SQL> recover datafile 7;
    Media recovery complete.
    SQL> alter database datafile 7 online;
    Database altered.
    ---再次检查
    SQL> select a.file#, a.name, a.status
    2 from v$datafile a, v$tablespace b
    3 where a.ts#=b.ts#
    4 and b.name='TS1';

         FILE# NAME                     STATUS
    ---------- ------------------------ -------
             6 D:\TS1-1.DBF             ONLINE
             7 D:\TS1-2.DBF             ONLINE <== datafile is online now.
             9 D:\TS1-3.DBF             ONLINE
   --再次执行导出就好!

时间: 2024-09-16 05:12:35

【导入导出】EXP-00068分析的相关文章

oracle导入导出数据常见报错处理整理

报错1:ORA-01756: quoted string not properly terminated 字符集编码不一致造成的中文内容无法插入 查询当前数据库的字符编码设置: SQL> select * from v$nls_parameters T WHERE t.PARAMETER = 'NLS_LANGUAGE' or t.PARAMETER = 'NLS_CHARACTERSET'; 或者 SQL> select userenv('language') from dual; 查询客户

Oracle中逻辑导出Exp/导入Imp的详细介绍以及参数介绍

导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳.当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议.对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具.下面说明一下EXP/IMP的

Oracle exp/imp命令快速导入导出数据

用exp命令导出表结构,不导出表数据.只需在命令行里加一个参数rows=n即可.表示不导出表数据. exp username/pwd@sid file=d:databak.dmp owner=(user)rows=n ******************************************************************************************************************** oracle exp/imp命令详解 E:>ex

Oracle数据导入导出imp/exp(转)

      在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 一.Oracle数据导出exp  1.Exp参数详解(红色字体代表比较重要的参数): (1) USERID 运行导出命令的帐号的用户名/口令 (2) BUFFEER 用来取数据行的缓冲区的大小 (3) FILE 导出转储文件的名字 (4) COMPRESS 导出是否应该压缩有碎片的段成一个范围,这将会影

Oracle数据导入导出imp/exp sp2-0734:未知的命令开头imp

sp2-0734:未知的命令开头'imp 忽略了剩余行默认分类 应该是在cmd的dos命令提示符下执行,而不是在sqlplus里面......但是格式一定要类似于: imp PERSONNEL_MANAGE/MWQ@DBSQL full=y  file=C:personnel_manage.dmpignore=y 谨以此纪念我的粗心.....我错了.   imp 命令是在dos提示符下执行的. 直接cmd后执行而不是在sql下执行的 数据导出: 1 将数据库TEST完全导出,用户名system

exp/imp导入导出版本问题和ORA-6550报错

前几天有位同事问到exp/imp是否涉及到版本问题,我认为,只要是软件,都会涉及到高低版本的兼容性问题,Oracle也是软件,自然也是这样. 简单的实验: exp工具版本:10g 导出的source数据库版本:9i bash-4.1$ exp x/x@x tables=T file=/home/x/t.dmpExport: Release 10.2.0.4.0 - Production on Wed Dec 11 15:17:05 2013 Copyright (c) 1982, 2007, O

Oracle导入导出数据库的语法

    导读:oracle中除了在Oracle编辑器中用图形化的方式导入导出文理文件的数据方式外,还可以采用命令行的方式导入导出数据库,其语法实示例如下:    imp [username[/password[@service]]]    步骤:1.首先在进入 dos, 然后切换到 oracle 数据库物理文件所在的目录即(dmp文件所在的目录).接下来输入下述语句!    imp username/password@service file=psmis.dmp fromuser=psmis t

PROC++批量导入导出ORACLE数据库表

oracle|数据|数据库 最近在开发一个项目中,为了解决数据库IO瓶颈,不得不把数据库中的数据导出为文本文件.文本传到客户端后又要导入到数据库.本人用C++Builder嵌入PROC++写了一个导入导出的DLL.如果对你有用深感荣幸!详细内容如下:   一.准备工作 计算机环境:Win 2000 PRO,ORACLE 9i,C++ Builder 5.5 引入必要的ORACLE内部函数:要用的函数在$(ORACEL_HOME)\bin qlora9.dll链接库中.为了能在C++ Builde

Oracle导入导出提示EXP-0006:出现内部不一致的错误解决办法

  exp.imp是ORACLE幸存的最古老的两个操作系统命令行工具,导入(IMP)/导出(EXP),昨天在Oracle用exp.imp导入导出报EXP-0006:出现内部不一致的错误. 以前用exp.imp导库命令成功的实现了Oracle数据库的导出.导入,对此,昨天再对服务器新安装的Oracle数据库用exp.imp导库,一直报"EXP-0006:出现内部不一致的错误",于是在网上百度,尝试其他导库方式,发现采用expdp.impdp数据泵同样可以完成数据库的导出.导入,而且数据泵