接上一篇“Oracle 10g RAC全库flashback

http://www.cnblogs.com/cqubityj/p/3265552.html

在打开数据库之前把2013-05-17号的数据文件offline了,这个表空间存储的是2013-05-17号的分区数据。这造成对某些分区表的全表查询出错 (类似select  * from <partitioned_table_name>这样的语句) ,即使这个表是空的也会出错。因为Oracle不去扫描表是不可能知道表里有没有数据的,但因为数据文件或表空间已经offline了,扫描表时必然会报错。

报错类似:

SQL> select * from cut.CUT_SP_OPERATOR;
select * from cut.CUT_SP_OPERATOR
                  *
ERROR at line 1:
ORA-00376: file 90 cannot be read at this time
ORA-01110: data file 90: '/oracle/data2/BEICENP/CUT_MAY172013_DATA.dbf'

对于这个问题,可以通过exchange partition的方式来解决。由于exchange partition只是更改数据字典信息,而不会去扫描表和分区,因此操作不会报错,能正常执行。

具体步骤如下:

1、检查表空间上存储了哪些表分区

select owner,segment_name, partition_name,segment_type
from dba_segments
where segment_type='TABLE PARTITION' and
tablespace_name in ('CUT_MAY172013_DATA')
order by segment_name;

如果有table subpartition的话,也要做检查

2、对步骤1查出的每个表分区做exchange partition

删除临时表

drop table cut.temp purge;

创建与分区表结构一致的临时表
create table cut.TEMP tablespace cut_data as select * from cut.CUT_SP_FINANCIAL where 1=2;

交换表和分区
alter table cut.CUT_SP_FINANCIAL exchange partition MAY172013 with table cut.TEMP;

3、删除分区

在exchange partition完成后,可以删除表分区。分区删除后,select 语句就不会再报错了。

如何删除offline数据文件/表空间上的分区的更多相关文章

  1. 【Oracle】删除(释放)数据文件/表空间流程

    oracle删除(释放)数据文件/表空间流程 生产环境:数据库里空间不足,niptest 表空间251G,只使用了17G 再alter database datafile '...../niptest ...

  2. 1118ALTER TABLE tabname DISCARD TABLESPACE快速导入数据利用表空间

    -- 快速导入数据如果你有.ibd文件的一个干净的备份,你可以按如下操作从被起源的地方恢复它到MySQL安装中:相当快速 1. 发出这个ALTER TABLE语句: 2. ALTER TABLE tb ...

  3. 删除Oracle用户及表空间

    --转载自 https://blog.csdn.net/sunny05296/article/details/81126548--以sysdba用户登录,查找需要删除的用户conn / as sysd ...

  4. 关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1

    关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1 ORACLE公司来培训BIEE,带了一个DEMO的DMP文件,其导出用户DBO具有DBA权限,缺省表 ...

  5. Oracle添加数据文件创建表空间,创建用户代码

    1,添加数据文件创建表空间 CREATE TABLESPACE "TEST1" DATAFILE 'D:\ORACLE\11G\ORADATA\ORCL\TEST1.DBF' SI ...

  6. oracle删除非空的表空间

    oracle删除非空的表空间: drop tablespace tablespaceName including contents;

  7. 【HICP Gauss】数据库 数据库管理(数据库对象 表空间 索引 序列 分区 视图)-8

    什么是数据库对象 数据库对象包括 表 索引 分区 视图 序列 同义词 数据库支持对象存储过程 自定义函数 触发器 表空间 高级包 表 数据库中的数据结构 存储数据以及描述数据间的关系 表由行和列组成 ...

  8. oracle删除数据后表空间仍过大问题解决方法

    -----亲测有效------- --一.备份原始数据库库--1.备份空表--在plsql里面执行一下这句话 然后把结果集 再执行一把 再导数据select 'alter table '||table ...

  9. Oracle 不小心删除undo数据文件以及磁盘空间不足导致不能登录的解决办法

    在一次测试中,由于导入的数据量过大导致事务一直提交失败因为磁盘空间不够用了,一检查发现是undo表空间不够用,于是重新创建了一个表空间,准备把之前的undo表空间删除,删除时却发现一直删不掉,因为它一 ...

随机推荐

  1. 运行tomcat,报错:Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??错误

    运行tomcat时,报错: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??错误 原因分析: 这是因为之前已开启了一 ...

  2. JS实现选项卡切换效果

    1.在网页制作过程中,我们经常会用到选项卡切换效果,它能够让我们的网页在交互和布局上都能得到提升 原理:在布局好选项卡的HTML结构后,我们可以看的出来,选项卡实际上是三个选项卡标头和三个对应的版块, ...

  3. Spring初学之annotation实现AOP前置通知和后置通知

    实现两个整数的加减乘除,并在每个计算前后打印出日志. ArithmeticCalculator.java: package spring.aop.impl; public interface Arit ...

  4. review07

    java类可以有两种重要的成员:成员变量和方法,实际上java还允许有一种成员:内部类.内部类是在一个类中定义另一个类.内部类和外嵌类的关系如下: (1)内部类的外嵌类的成员变量在内部类中仍然有效,内 ...

  5. 十大监视SQL Server性能的计数器

      作为DBA,每个人都会用一系列计数器来监视SQLSERVER的运行环境,使用计数器,既可以衡量当前的数据库的性能,还可以和以前的性能进行对比.我们也可以一直以快速和简单的方法把计数器做了一张图表来 ...

  6. 在express中提供静态文件笔记

    在express中提供静态文件 要在express框架中提供静态文件,如:css.javascript等文件,就要使用到他的内置中间件功能express.static,将包含静态文件目录文件传递给ex ...

  7. Tomcat部署项目后有括号的处理方法

    常见的问题,收录整理了一下,方便查找. 如下3个地方都修改为一致即可解决. 1,右键项目名 --> properties --> 输入web project settings --> ...

  8. 15-THREE.JS 方向光

    <!DOCTYPE html> <html> <head> <title></title> <script src="htt ...

  9. Senior Manufacturing Technical Manager

    Job Description As a Manufacturing Technical Manager, you will be responsible for bringing new produ ...

  10. 自定义php(NON-CORE WORDPRESS FILE) 引用 wordpress

    在文件头头添加下面代码,实现此页面可以调用wordpress的内置方法 <?php $parse_uri = explode ( 'wp-content', $_SERVER ['SCRIPT_ ...