UNDO TABLESPACE切换后,旧的长时间没有完全OFFLINE,案列:

案列:

由于生产库impdp导入一个分区表,期间出了问题,终止了导入,但是undo tablespace增长飞快增长到300G了,且经过两天才降下来,但是undo tablespace如果是自动扩展,只会扩展,当事务都结束了它自己也不会收缩的,所以只能手工去收缩。

于是创建一组新的undo tablespace,命名为undotbs2

alter system set undo_tablespace=undotbs2;

在线切换了undo tablespace;

手工切换完了但是还不能立即将旧的undo tablespace(undotbs1)执行offline操作,因为在dba_rollback_segs中undotbs1还有15个undo segment是ONLINE状态,只能等全部OFFLINE了才能执行undotbs offline操作。等这些undo segment离线等了好几天也没有全部OFFLINE,如下查询还是存在15个undo segment没有OFFLINE:

select * from dba_rollback_segs where tablespace_name=‘UNDOTBS1‘ and status=‘ONLINE‘;

而且alter日志报如下日志:

Mon Jul 13 16:55:43 2014
[20481] **** active transactions found in undo Tablespace 2 - moved to Pending Switch-Out state.

最后想去找找现在旧的undo tablespace到底是在干什么,为什么一直不offline,带着这个目的,写了条sql去查,如下:

SELECT r.NAME,

s.USERNAME,

h.tablespace_name,

s.sid,

s.serial# Serial,

s.username,

s.machine,

t.start_time,

t.status,

t.used_ublk,

substr(s.program, 1 , 30) "operate",

s.prev_SQL_ID,s.STATUS,i.sql_text

FROM v$session         s,

v$transaction     t,

v$rollname        r,

v$rollstat        g,

dba_rollback_segs h,

v$sqlarea i

WHERE t.addr = s.taddr

AND t.xidusn = r.usn

AND r.usn = g.usn

and r.name = h.segment_name

AND s.PREV_SQL_ID=i.SQL_ID

ORDER BY 3 asc;

不查不知道一查吓一跳,对应得UNDOTBS1的session在v$session中全部是INACTIVE状态,鉴于此是INACTIVE状态,决定删除所有对于UNDOTBS1的session并且状态为INACTIVE的,写了如下批量kill session:

SELECT ‘alter system kill session ‘‘‘||

s.sid|| ‘,‘||

s.serial#|| ‘‘‘‘||‘;‘

FROM v$session         s,

v$transaction     t,

v$rollname        r,

v$rollstat        g,

dba_rollback_segs h,

v$sqlarea i

WHERE t.addr = s.taddr

AND t.xidusn = r.usn

AND r.usn = g.usn

and r.name = h.segment_name

AND s.PREV_SQL_ID=i.SQL_ID and h.tablespace_name=‘UNDOTBS1‘ and s.status=‘INACTIVE‘ ;

得到查询结果,复制下来批量执行;

再次去查询dba_segments

select * from dba_rollback_segs where tablespace_name=‘UNDOTBS1‘ and status=‘ONLINE‘;

已经查询不到结果了,说明已经全部OFFLINE了。

alter日志也报了successfully如下:

Mon Jul 13 16:58:13 2014
[20481] Undo Tablespace 2 successfully switched out.

到此UNDOTBS1可以执行offline操作了,然后删除UNDOTBS1表空间及数据文件,腾出可用空间。

时间: 2024-11-05 17:32:53

UNDO TABLESPACE切换后,旧的长时间没有完全OFFLINE,案列:的相关文章

验证undo切换后,还能不能查处以前的数据

实验步骤整理:conn scott/tigerdrop table t;create table t as select * from dept;查看有几个undo表空间select tablespace_name,contents,extent_management from dba_tablespaces;set time onshow parameter undo确认当前使用的undo表空间,删掉不用的undo表空间,防止混乱conn scott/tigerdelete from t;co

Innodb独立的undo tablespace

[MySQL5.6] Innodb独立的undo tablespace 在MySQL5.6中开始支持把undo log分离到独立的表空间,并放到单独的文件目录下:这给我们部署不同IO类型的文件位置带来便利,对于并发写入型负载,我们可以把undo文件部署到单独的高速存储设备上. 1.使用 有几个参数来控制该行为 #innodb_undo_tablespaces 用于设定创建的undo表空间的个数,在Install db时初始化后,就再也不能被改动了: 默认值为0,表示不独立设置undo的table

How manager undo tablespace

What is the undo data ? 事务在修改数据块时,oracle db会copy修改前的数据块到undo tablespace,这个数据块称之为undo data. Why oracle db needs undo data ? 1.回滚未提交的事务 2.确保数据库一致性读 3.支持oracle flashback功能 What is the undo tablespace? 存放undo data的表空间称之为undo 表空间.undo tbs空间可以重复使用. Undo Re

屏蔽电信流氓广告造成的诡异的问题--Android WebView 长时间不能加载页面

发现在家里的时候用Android App里的WebView打开网站很慢,会有十几秒甚至更长时间的卡住. 但是在电脑上打开同样的网页却很快. 查找这个问题的过程比较曲折,记录下来. 抓取Android网络数据 为了调试这个问题,首先要抓取Android的网络包数据.开始时,是想用Wireshark来抓包的,但是很麻烦,tcpdump在手机要root权限. 于是转换思路,能不能在Android上设置代理,来抓包? 但是fiddler没有linux版本,于是转用BurpSuite了. 设置Androi

程序长时间后台保持运行

文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以, 1.音乐 2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务. 判断是否支持多线程 UIDevice* device = [UIDevice

ubuntu常用命令总结(整理好长时间所得)

1.df命令 # df -ha 显示所有的档案以及分区的使用情况 # df -h /dev/sda1 显示sda1的磁盘使用情况 # df -T 显示每个分区的所属的档案系统名称,也会显示分区的格式类型(比如ext3) 注:h参数表示转换为M,G等人们常用的磁盘空间单位显示 2.du命令 # du -h src 显示src目录中各个文件(或者文件)所占用的磁盘空间 # du -hs /usr 显示usr目录中所有文件的总大小 # du -h test.c 显示test.c文件所占用的磁盘空间 3

f.lux——自动调整屏幕色温减少眼睛疲劳,长时间玩电脑必备!

长时间玩电脑的同学肯定会觉得眼睛很难受,而电脑自带的调节亮度的功能通常又不能够满足我们,所以今天就给大家推荐一个保护视力的软件—— flux,这个软件是通过调节色温来达到保护视力的作用,通常在台式机的显示屏上都会有调节色温的这个功能,但是在笔记本上面就没有这个功能,不过可以通 过flux这个软件来调节,这个软件很小,只有几百K,默认是开机启动的,不过不用担心,这正是我们需要的,安装包都这么小,占用的内存肯定也超级小,根 本也不用担心内存占用.如果你想暂时不用这个软件,flux还有一个“停用软件一

如何做到让自己长时间精神专注?

让你的注意力聚焦在你所做的事情上,你的处理速度趋近于你的接收速度,你的思维跟上你所做的事情的发展.然后保持,就OK了. 这好像是句废话,你问我如何长时间集中注意力,我第一句就说你的注意力要集中才能长时间集中注意力.但是这句废话就是问题的实质,我们下面各种例证来揭示这个实质. 当你看一部武侠小说的时候,你为什么能够两个多小时精神专注于这本武侠小说上呢?首先因为你的注意力很容易就放在这部武侠小说上,其次你的思维完全同步于武侠小说的发展,最后你的处理速度是趋近于你的接收速度的,(虽然你的大脑处理速度比

InnoDB undo tablespace使用及原理

前言 Undo log是InnoDB MVCC事务特性的重要组成部分,对记录做了变更操作时会产生undo记录,默认存储到系统表空间中,但是从5.6开始,可以使用独立的undo表空间. Undo记录存储的是老版本数据,当一个旧事务需要读取数据时,为了能读取到老版本数据,需要顺着undo连找到满足其可见性的记录.当版本链很长时,可以认为这是要一个比较耗时的操作. 大多数对记录的变更insert.update.delete.Insert操作在事务提交前只对当前事务可见,因此产生的undo日志可以在事务