背景

数据库分区表数据越来越大,需要对过期话的数据进行迁移,以及大的分区表需要进行数据的清理和删除,达到释放磁盘空间的目的。

问题说明

环境:linux 6.X

数据库:oracle 11.2.0.4 (PSU为2016年6月份的)

问题说明:

S_T_RTNRP_STATUS_2017是分区表,每天一个分区,且一共使用了2.5TB的空间,现在需要进行空间清理,操作步骤是先对表进行truncate,然后删除表,后对相应的表空间的每个数据文件进行resize成1g,在进行删除表空间语句

drop tablespace SMART_NRRPSTA_2017 including contents and datafiles。

但是,从2018.11.14 20:00一直到15日10:00,表空间没有删除,且数据字典中都能够查询得到数据文件,hang住。

如下:

处理过程

1)      初步怀疑(以为是上次遗留问题)

初步怀疑是ASM进程问题,因为之前我删除过一个大的表空间,是在业务期,业务用户在查询大的报表,IO开销很严重,中途暂停,表空间没有清理干净,后面再进行删除,表空间删除了,但是ASM磁盘组中数据文件有的没有进行删除,初步怀疑是上次遗留问题,认为是上次没有释放的ASM进程阻塞表空间的删除。

查看阻塞的等待事件:

查看等待事件中,运行时间很长的是class slave wait这类等待事件,查看有关这类事件的进程号,以及信息:

ps -ef |grep 41751

ps -ef |grep 68563

ps -ef |grep 25232

ps -ef |grep 34478

ps -ef |grep 12445

ps -ef |grep 34699

ps -ef |grep 25217

ps -ef |grep 68559

ps -ef |grep 62666

ps -ef |grep 20972

ps -ef |grep 11554

ps -ef |grep 68590

看到的全是ora_o开头的进程,查询相关资料,百度到的盖国强老师的论坛:http://www.eygle.com/archives/2012/06/oracle_o001_o00n_cpu.html以及MOS账号里面的资料,说的大部分是Oracle ora_o进程 100% CPU占用的案例,但是事实的ora_o进程并没有占用很高的CPU,也没有进程阻塞,官方也没有对其进程进行详细说明。

后面我还是把相关进程杀掉(由于生产环境,不敢全部杀死,也不敢直接执行kil -9 操作系统命令,先在数据库层杀一个看看,发现杀掉后,系统自动启动一个新的进程,后面才全部执行)

alter system kill session '504,53407';

alter system kill session '599,61619';

alter system kill session '498,38267';

alter system kill session '366,62377';

alter system kill session '401,27591';

alter system kill session '446,5345 ';

alter system kill session '230,11603';

alter system kill session '81,26169  ';

alter system kill session '468,16725';

alter system kill session '686,48001';

alter system kill session '384,40041';

等了一会儿,发现drop tablespace语句仍然是无进展,一样的hang住,在support上查询,怀疑是BUG也发现情况不符合。

2)      柳暗花明

开始怀疑不是上一次遗留的问题,怀疑是其他进程导致表空间删除hang住。

进行AWR,生成的时间是删除hang住那段时间:

DB time如下

发现DB time/(DB time+Elapsed)时间比例并不是特别高,

查看TOP 10等待事件

占用第一个的是TT等待事件,查看整个会话的等待事件:

select event,count(1) from gv$session group by event order by 2;

查看具体的TT - contention等待事件:

突然想起来了,自己搭建的一套OEM监控数据库,其中sysman用户登录,sys用户监控磁盘组,这两个会话阻塞导致drop tablespace hang住。

3)      处理措施

停止RAC两个节点的OEM agent

如下图:

停止后,查看alert日志:

成功删除了表空间并释放了磁盘组的空间。

4)      总结

1、  遇到问题要根据实际情况解决。

2、  感谢阿里的周卫丰周大牛帮我一起解决故障(虽然是小问题)。

oracle故障处理之删除大表空间hang住的更多相关文章

  1. oracle数据库用户删除及表空间删除

    以system用户登录,查找需要删除的用户: --查找用户 select  * from dba_users; --查找工作空间的路径select * from dba_data_files; --删 ...

  2. oracle删除users表空间

    1.users表空间一般情况下是默认的,需将别的空间设置成默认,再删除users表空间(oracle不允许删除默认空间的). 2.删除表空间的同时会报这样的错:ORA-22868错误.原因:推断应该存 ...

  3. 【Oracle】删除undo表空间时,表空间被占用:ORA-30042: Cannot offline the undo tablespace

    特别注意:此办法只用于实在没有办法的时候,因为需要加入oracle中的隐含参数,慎用!!! 1. 先查一下是什么在占用undo SYS@ENMOEDU>select segment_name,o ...

  4. 【MySQL】删除大表的讨论【转】

    转自http://tech.ddvip.com/2013-07/1373269453198566.html 微博上讨论MySQL在删除大表engine=innodb(30G+)时,如何减少MySQL ...

  5. ORACLE结构体系篇之表空间详解.md

    表空间详解一.系统表空间SYSTEM 表空间是Oracle 数据库最重要的一个表空间,存放了一些DDL 语言产生的信息以及PL/SQL 包.视图.函数.过程等,称之为数据字典,因此该表空间也具有其特殊 ...

  6. Oracle基础(三) 表空间

    数据库的存储结构 数据库主要用于存储和检索相关的信息,Oracle数据库包含逻辑结构和物理结构. 物理结构是指现实存储单元,由一组文件组成如数据文件.日志文件.控制文件. 数据文件:用于存储数据的文件 ...

  7. 【转】Oracle - 数据库的实例、表空间、用户、表之间关系

    [转]Oracle - 数据库的实例.表空间.用户.表之间关系 完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例. 1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机 ...

  8. --使用oracle数据先要创建表空间

    one\--创建表空间 CREATE TABLESPACE 表空间的名字DATAFILE 'E:\oracle\app\userdata\java5space.dbf' --表空间物理文件路径SIZE ...

  9. Oracle创建、管理撤销表空间

    撤销管理模式: 用户通过设定撤销管理模式(undo mode)就可以灵活地选择使用手动撤销管理(manual undo management)或自动撤销管理(automatic undo manage ...

随机推荐

  1. Devexpress PdfViewer预览pdf,禁止下载,打印,复制

    PDFviewer控件: 参数设置: 1.屏蔽书签栏和右键菜单 2.加载文档支持路径以及流stream加载的方式 pdfViewer.MenuManager.DisposeManager(); pdf ...

  2. Charles设置抓取https请求

    1.在手机上设置HTTP代理,将手机与电脑连接. 打开手机设置-WLAN,设置代理 2.(iPhone)使用iPhone自带的浏览器打开Safari,并输入地址:http://charlesproxy ...

  3. C++目录遍历:使用第三方库boost.filesystem等

    1. opencv 目录文件遍历 注释:2014 0814 这个代码是基于java的,Java使用托管代码进行目录管理,C++就不那么跨平台了. 原文链接:http://blog.csdn.net/z ...

  4. spring cloud(一) eureka

    spring cloud 注册中心 eureka 搭建过程 1.搭建eureka-server 服务端 1.1. 新建boot工程 pom引入依赖 <dependency> <gro ...

  5. windows mongodb启动

    D:\MongoDB\bin\mongod.exe --service --dbpath D:\MongoDB\data --logpath=D:\MongoDB\logs\mongodb.log - ...

  6. 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

    这是在复制代码的时候,没有修改路径,但是IDEA没有报错,还会爆出 WARN ework.web.servlet.PageNotFound - No mapping found for HTTP re ...

  7. elasticsearch元数据

    _source元数据 put /test_index/test_type/1 { "test_field1": "test field1", "tes ...

  8. python笔记4----字典

    1.哈希: 输入任意长度,输出固定长度. 即判断是否哈希,即判断可不可变. 2.创建字典 (1)直接创建:dic={1:'a',2:'b',3:'c'} (2)dict函数创建: list=[(1,' ...

  9. JSplitPane按比例分割的问题

    JSplitPane看似比Delphi的spliter难用许多.不过介于swing可以方便的使用记事本一类文本编辑器直接书写依据布局的界面代码我们还是姑且容忍它带来的不便.但在使用JSplitPane ...

  10. P1265 公路修建 (prim)

    题目描述 某国有n个城市,它们互相之间没有公路相通,因此交通十分不便.为解决这一"行路难"的问题,政府决定修建公路.修建公路的任务由各城市共同完成. 修建工程分若干轮完成.在每一轮 ...