首页 > 数据库 >Oracle切换undo后如何确定使用旧undo的会话信息

Oracle切换undo后如何确定使用旧undo的会话信息

时间:2023-12-11 10:35:53浏览次数:36  
标签:ABCD name undo 切换 Oracle OFFLINE col PENDING

 

Oracle切换undo后如何确定使用旧undo的会话信息

 

背景

是这样的,最近RAC的磁盘组90%报警,存储空间只能再加2T空间。

而这套RAC的DATA组用了normal冗余,不知道当初哪个大聪明这么搞的,底层还是做了RAID 10的。

领导也不知道不懂这么设置的。

因此,这新的2T创建新磁盘组且使用extern的外部冗余,后续将index和undo切换到新的磁盘组上。

 

index重建到新表空间就行,而undo通过创建新的undo类型表空间并切换新undo达到迁移目的。

参考mos文档:How to Shrink the datafile of Undo Tablespace (Doc ID 268870.1)

上周五创建新undo并且切换过去后,当时立刻直接删除会报:

ORA-30013: undo tablespace 'UNDOTBS1' is currently in use

原本想着隔个周末两天时间然后今天周一再次进行删除,没想到还是报错。

根据Undo Tablespace Moved To Pending Switch-Out State (Doc ID 341372.1)可知,当默认的undo表空间改变后,原来使用旧undo的活动事务将在v$rollstat.status中显示为“PENDING OFFLINE”状态。

因此可以使用如下脚本查看使用旧undo的活动事务的会话:

col usn for 999
col name for a25
col USERNAME for a15
col STATUS for a15
col TABLESPACE_NAME for a11
col SID for 99999
col SERIAL# for 99999
col PROGRAM for a19
col MACHINE for a25
col OSUSER for a20
SELECT
a.usn,
a.name,
b.status,
c.tablespace_name,
d.addr,
e.sid,
e.serial#,
e.username,
e.program,
e.machine,
e.osuser
FROM
v$rollname a,
v$rollstat b,
dba_rollback_segs c,
v$transaction d,
v$session e
WHERE
a.usn=b.usn AND
a.name=c.segment_name AND
a.usn=d.xidusn AND
d.addr=e.taddr AND
b.status='PENDING OFFLINE';

 

以下是我此次查询结果(脱敏):

db1:
 USN NAME                  STATUS          TABLESPACE ADDR                SID SERIAL# USERNAME        PROGRAM             MACHINE                   OSUSER
---- --------------------- --------------- ---------- ---------------- ------ ------- --------------- ------------------- ------------------------- --------------------
   9 _SYSSMU9_2162248266$  PENDING OFFLINE UNDOTBS1   0000001783BFD9D8   2129      13 ABCD_EFGH       AbcdefghApp.exe     WORKGROUP\VM-ABCD-APP23   abcdefgadmin
  10 _SYSSMU10_3111847501$ PENDING OFFLINE UNDOTBS1   0000001783C44840   2065      13 ABCD_EFGH       AbcdefghApp.exe     WORKGROUP\VM-ABCD-APP23   abcdefgadmin

db2:
 USN NAME                  STATUS          TABLESPACE ADDR                SID SERIAL# USERNAME        PROGRAM             MACHINE                   OSUSER
---- --------------------- --------------- ---------- ---------------- ------ ------- --------------- ------------------- ------------------------- --------------------
  20 _SYSSMU20_2091716515$ PENDING OFFLINE UNDOTBS2   000000177BF53AA0    913       3 ABCD_EFGHG      JDBC Thin Client    ABCD-App08                abcdefgadmin

 

经过排查发现会话并没有未commit的会话,而是均使用了含有dblink的select查看,因此产生事务。

经确认可以直接kill。

至此,解决。

 

标签:ABCD,name,undo,切换,Oracle,OFFLINE,col,PENDING
From: https://www.cnblogs.com/PiscesCanon/p/17893804.html

相关文章

  • oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
    一、用途强行启用并行度来执行当前SQL。这个在Oracle9i之后的版本可以使用,之前的版本现在没有环境进行测试。也就是说,加上这个说明,可以强行启用Oracle的多线程处理功能。举例的话,就像电脑装了多核的CPU,但大多情况下都不会完全多核同时启用(2核以上的比较明显),使用parallel说明,就会......
  • oracle内存调整
    sql查看oralce内存大小SELECTsum(bytes)/1024/1024/1024GBytesFROMdba_segments备份和恢复冷备份--关闭数据库sqlplus/nologconnect/assysdbashutdownimmediate;--查询文件位置--控制文件selectnamefromv$controlfile;'''/home/oracle/app/oracle/ora......
  • ORACLE数据库高水位线
    文档课题:ORACLE数据库高水位线(highwatermark).数据库:oracle11.2.0.41、实验测试1.1、建测试表SQL>createuserleoidentifiedbyleo;Usercreated.SQL>grantdbatoleo;Grantsucceeded.SQL>connleo/leo;Connected.SQL>createtablehswasselect*fr......
  • 已删除但未消失的图片(Excel与WPS切换时产生的问题)
    问题:一个完全空的工作簿为何会非常大?问题分析:将工作簿后缀名改成rar,打开..xl/media,可以看到有很多图片,这些图片造成了文件大。进一步的问题:这些图片哪里来的,藏在何处。过程:这是Excel与WPS操作同一工作簿产生的问题。第一步:使用WPS打开工作簿,在其中插入嵌入到单元格的图片第......
  • Oracle查看和终止正在执行的SQL语句
    Oracle查看和终止正在执行的SQL语句--查询当前用户正在执行的SQL语句selecta.sid,a.serial#,a.paddr,a.machine,nvl(a.sql_id,a.prev_sql_id)sql_id,b.sql_text,b.sql_fulltext,b.executions,b.first_load_time,b.last_load_time,b.last_active_time,b.disk_reads,b.direct_wr......
  • oracle日志模式
    oracle日志模式一、oracle日志模式分为(logging,forcelogging,nologging)默认情况是logging,就是会记录到redo日志中,forcelogging是强制记录日志,nologging是尽量减少日志。FORCELOGGING可以在数据库级别、表空间级别进行设定、而LOGGING与NOLOGGING可以在表级别设定。注:FORCELOGGIN......
  • flinkcdc连接oracle的报错汇总
    报错一:原因分析:字面原因,找不到 org.apache.flink.table.api.ValidationException类。解决办法:根据类名可知,应该 org.apache.flink.table.api包下面的,然后去阿里云maven仓库搜索,添加如下依赖即可 报错二:原因分析:ORA-16331:容器"ORCLPDB1"未打开。解决办法:使用命令打......
  • Linux 用户身份切换
    Linux用户身份切换什么?在Linux系统当中还要作身份切换?这是为什么?可能有下面几个原因安全性:身份切换可以限制用户的权限,防止恶意操作和数据泄漏。多用户环境:在多用户环境中,每个用户拥有自己的账户和权限,需要通过身份切换来切换用户。程序运行:某些程序需要以不同的权限运行,例如管......
  • 数据库工程师-Oracle OCP 19C认证介绍
    原创:厦门微思网络一、ORACLEOCP认证介绍OCP的英文全称是:OracleCertifiedProfessional,专家级技能和技术知识考试,通过这个考试,说明此人可以管理大型数据库,或者能够开发可以部署到整个企业的强大应用。要成为OCP,需要先获得OCA的认证,然后才能参加OCP考试。获得ORACLEOCP认证之后可......
  • Qt/C++音视频开发58-逐帧播放/上一帧下一帧/切换播放进度/实时解码
    一、前言逐帧播放是近期增加的功能,之前也一直思考过这个功能该如何实现,对于mdk/qtav等内核组件,可以直接用该组件提供的接口实现即可,而对于ffmpeg,需要自己处理,如果有缓存的数据的话,可以通过在缓存中的数据往前移动往后移动即可。这样就要求做一个比较大的缓存队列,占用一定的内存是......