`
Appleses
  • 浏览: 343901 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle的UNDOTBS01.DBF文件太大的解决办法

 
阅读更多
1. 启动SQLPLUS,并用sys登陆到数据库
#su - oracle  
$>sqlplus / as sysdba 
 
2. 查找数据库的UNDO表空间名,确定当前例程正在使用的UNDO表空间,及undo保留周期undo_retention为10800秒:
<!--StartFragment -->
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                   string      AUTO
undo_retention                       integer      10800
undo_tablespace                      string      UNDOTBS1
 
3. 确认UNDO表空间;
SQL> select name from v$tablespace;  
NAME  
------------------------------  
UNDOTBS1 
 
4. 检查数据库UNDO表空间占用空间情况以及数据文件存放位置;
select file_name, bytes / 1024 / 1024 / 1024
  from dba_data_files
 where tablespace_name like 'UNDOTBS%';
 
5. 查看回滚段的使用情况,哪个用户正在使用回滚段的资源,如果有用户最好更换时间(特别是生产环境)。
select s.username, u.name
  from v$transaction t, v$rollstat r, v$rollname u, v$session s
 where s.taddr = t.addr
   and t.xidusn = r.usn
   and r.usn = u.usn
 order by s.username;
查询结果为空的话就能删除。
 
6. 检查UNDO Segment状态;
select usn,xacts,rssize / 1024 / 1024 / 1024,hwmsize / 1024 / 1024 / 1024,shrinks
  from v$rollstat
 order by rssize;
USN  XACTS  RSSIZE/1024/1024/1024  HWMSIZE/1024/1024/1024  SHRINKS
800.000175476074218753.11521148681641700
300.000236511230468753.22954559326172632
000.000358581542968750.000358581542968750
100.002067565917968753.04867553710938920
1000.002067565917968750.648170471191406819
700.002311706542968753.94835662841797730
400.003044128417968752.00011444091797651
1100.006950378417968752.26921844482422740
900.007926940917968752.07530975341797773
600.007926940917968751.31906890869141775
200.008903503417968753.13677215576172699
501.968338012695313.99906921386719267
这还原表空间中还存在12个回滚的对象。
 
7. 创建新的UNDO表空间,并设置自动扩展参数;
create undo tablespace undotbs2 datafile '/u02/pnrdb/undotbs2_01.dbf' size 100m reuse autoextend on next 100m maxsize unlimited;
 
8. 切换UNDO表空间为新的UNDO表空间 , 动态更改spfile配置文件;
alter system set undo_tablespace=undotbs2 scope=both;  
 
9.验证当前数据库的 UNDO表空间
SQL> show parameter undo
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS2
9. 等待原UNDO表空间所有UNDO SEGMENT OFFLINE;
select usn, xacts, status,rssize / 1024 / 1024,hwmsize / 1024 / 1024,shrinks
  from v$rollstat
 order by rssize;
 
select usn, xacts, status,rssize / 1024 / 1024,hwmsize / 1024 / 1024,shrinks
  from v$rollstat
 order by rssize;
select t.segment_name, t.tablespace_name, t.segment_id, t.status
  from dba_rollback_segs t;
SEGMENT_NAME      TABLESPACE_NAME SEGMENT_ID   STATUS
_SYSSMU1$UNDOTBS11OFFLINE
_SYSSMU2$UNDOTBS12OFFLINE
_SYSSMU3$UNDOTBS13OFFLINE
_SYSSMU4$UNDOTBS14OFFLINE
_SYSSMU5$UNDOTBS15OFFLINE
_SYSSMU6$UNDOTBS16OFFLINE
_SYSSMU7$UNDOTBS17OFFLINE
_SYSSMU8$UNDOTBS18OFFLINE
_SYSSMU9$UNDOTBS19OFFLINE
_SYSSMU10$UNDOTBS110OFFLINE
_SYSSMU11$UNDOTBS111OFFLINE
_SYSSMU12$UNDOTBS112OFFLINE
_SYSSMU13$UNDOTBS113OFFLINE
_SYSSMU14$UNDOTBS114OFFLINE
_SYSSMU15$UNDOTBS115OFFLINE
_SYSSMU16$UNDOTBS116OFFLINE
_SYSSMU17$UNDOTBS117OFFLINE
_SYSSMU18$UNDOTBS118OFFLINE
_SYSSMU19$UNDOTBS119OFFLINE
_SYSSMU20$UNDOTBS120OFFLINE
_SYSSMU21$UNDOTBS121OFFLINE
_SYSSMU22$UNDOTBS122OFFLINE
_SYSSMU23$UNDOTBS123OFFLINE
_SYSSMU24$UNDOTBS124OFFLINE
_SYSSMU25$UNDOTBS125OFFLINE
_SYSSMU26$UNDOTBS126OFFLINE
_SYSSMU27$UNDOTBS127OFFLINE
_SYSSMU28$UNDOTBS128OFFLINE
_SYSSMU29$UNDOTBS129OFFLINE
_SYSSMU30$UNDOTBS130OFFLINE
_SYSSMU31$UNDOTBS131OFFLINE
_SYSSMU32$UNDOTBS132OFFLINE
_SYSSMU33$UNDOTBS133OFFLINE
_SYSSMU34$UNDOTBS134OFFLINE
_SYSSMU35$UNDOTBS135OFFLINE
上面对应的UNDOTBS1还原表空间所对应的回滚段均为OFFLINE
 
10.到$ORACLE_HOME/dbs/init$ORACLE_SID.ora如下内容是否发生变更:
#cat $ORACLE_HOME/dbs/initddptest.ora
……
*.undo_management=’AUTO’
*.undo_retention=10800
*.undo_tablespace=’UNDOTBS2’
……
 
如果没有发生变更请执行如下语句:
SQL> create pfile from spfile;
File created.
 
11. 删除原有的UNDO表空间;
drop tablespace undotbs1 including contents and datafiles;
 
12. os级别释放undo数据文件;
到root下执行
lsof |grep /u02/pnrdb/undotbs01.dbf
lsof |grep /u02/pnrdb/undotbs01.dbf |awk '{printf"kill -9 "$2"\n"}'
分享到:
评论

相关推荐

    Oracle根据DBF文件恢复.rar

    Oracle根据DBF文件恢复,只需要system01.dbf,undotbs01.dbf和数据库表空间的dbf文件即可恢复数据

    ORACLE分区

    Oracle的UNDOTBS01.DBF文件太大的解决办法 1、.禁止undo tablespace自动增长 alter database datafile 'full_path\undotbs01.dbf' autoextend off; 2.-- 创建一个新的小空间的undo tablespace create undo ...

    linux系统给oracle数据库增加新的实例.pdf

    size 10m, GROUP 2 ('/u01/app/oracle/oradata/exchange/redo2.dbf') size 10m, GROUP 3 ('/u01/app/oracle/oradata/exchange/redo3.dbf') size 10m CHARACTER SET ZHS16GBK NATIONAL CHARACTER SET AL16UTF16;...

    linux系统给oracle数据库增加新的实例(1).pdf

    size 10m, GROUP 2 ('/u01/app/oracle/oradata/exchange/redo2.dbf') size 10m, GROUP 3 ('/u01/app/oracle/oradata/exchange/redo3.dbf') size 10m CHARACTER SET ZHS16GBK NATIONAL CHARACTER SET AL16UTF16;...

    oracle实验报告

    undo tablespace UNDOTBS1 datafile 'E:\app\oracle\oradata\mydb\undotbs1.dbf' size 10m character set ZHS16GBK national character set AL16UTF16 7、创建额外表空间 alter user system temporary ...

    oracle 占用磁盘处理.xlsx

    oracle中 undotbs文件过大导致oracle操作过慢 通过新建undotbs文件 并指定到新的undotbs文件来进行处理

    ORACLE数据库空间整理心得

    最近由于单位数据库硬盘空间不足,整理的时候查了许多文章,也进行了测试,整理后得出一些...指令,没把undotbs1.dbf文件也清除掉,硬盘还是满满的。(后来想,是否可以用drop tablespace undotbs1 including co

    oracle truncate恢复

    1 2 2 D:\ORACLE\ORADATA\XJ\UNDOTBS01.DBF 4096 3 3 3 D:\ORACLE\ORADATA\XJ\DRSYS01.DBF 4096 4 4 4 D:\ORACLE\ORADATA\XJ\EXAMPLE01.DBF 4096 5 5 5 D:\ORACLE\ORADATA\XJ\INDX01.DBF 4096 6 6 6 D:\ORACLE\...

    oracle数据库UNDOTBS空间清理

    ##告警172.0.0.1_Oracle数据库读写分离–Oracle_TableSpace:UNDOTBS1使用率超过90,故障已持续0m(IP地址172.0.0.1;告警时间2020.03.11 09:47:53;检查项oracle.check[pre,UNDOTBS1] ;当前状态PROBLEM;值92 %) ...

    oracle rac日常基本维护命令

    oracle rac日常基本维护命令 所有实例和服务的状态 $ srvctl status database -d orcl Instance orcl1 is running on node linux1 Instance orcl2 is running on node linux2 单个实例的状态 $ srvctl status...

    linux下的Oracle数据库安装,卸载和静默安装

    手工建库: 1.写参数文件,创建实例: vi $ORACLE_HOME/dbs/initorcl.ora 写入以下内容: ...control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl'

    oracle恢复工具-FY_Recover_Data

    首先要停止数据库, 将这个表所在的表空间的文件拷贝出来, 因为Oracle在Truncate只时将相应Segment的第一个块格式化掉了, 而后面的都还存在, 到下次用时到才真正地重新格式化. 下面来讲一个Truncate表后进行恢复的...

    Oracle9i数据库系统概述.pdf

    1 Oracle9i 数据库系统概述 2007.5 2 提 纲 第一节 Oracle9i系统概述 第二节 Oracle9i数据库体系结构 第三节 Oracle9i数据库的模式(schema)对象 第四节 Oracle9i数据库的安装 第五节 Oracle9i数据库目录结构和...

    2010年oracle命令176页完整版型

    oracle数据库基本操作 编制时间:2010年2月12日-4月30日 写的很整洁,全是什么操作要用什么命令,多余的话,一句没有 一、表空间操作 1、文件系统: 创建表空间: 数据表空: create tablespace tablespace_name ...

    Oracle修改表空间大小的方法

    本文讲述了Oracle修改表空间大小的方法。分享给大家供大家参考,具体如下: 1)查看各表空间分配情况 SQL&gt; select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name; ...

    oracle误删数据表还原的二种方法(oracle还原)

    一、如果是刚刚删除,那么有两方法: ...undo_tablespace string UNDOTBS1 undo_retention(保持力),10800单位是秒。即3个小时。 修改默认的undo_retention参数设置: 代码如下:ALTER SYSTEM SE

    一个回滚段清理的实例

    日前在整理数据库表空间的是否,发现最大的数据文件来自回滚段。回滚段文件undotbs1的数据文件已经达到23G。 希望清理这部分数据,但一时又无从下手。于是决定深入了解一下这部分内容。

    管理undo表空间全面分析详解

    oracle 数据库的 undo表空间管理 全面分析介绍

    undo表空间恢复

    undo表空间恢复

Global site tag (gtag.js) - Google Analytics