oracle拓展undo表空间,Oracleundo表空间爆满的处理方法
oracle拓展undo表空间,Oracleundo表空间爆满的处理⽅法
解决步骤:
1. 启动SQLPLUS,并⽤sys登陆到数据库。
#su - oracle
$>sqlplus / as sysdba
2. 查数据库的UNDO表空间名,确定当前例程正在使⽤的UNDO表空间:
Show parameter undo_tablespace。
3. 确认UNDO表空间;
SQL> select name from v$tablespace;
NAME
------------------------------
UNDOTBS1
4. 检查数据库UNDO表空间占⽤空间情况以及数据⽂件存放位置;
SQL>select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS%';
5. 查看回滚段的使⽤情况,哪个⽤户正在使⽤回滚段的资源,如果有⽤户最好更换时间(特别是⽣产环境)。
SQL> 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状态;
SQL> 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
1  0  0  0.00035858
2  0.000358582  0
2  14  0  0.796791077  0.796791077  735
3  4
4  1  0.0092086791992187
洗衣机啥牌子好5  3.9929580688476
6  996
怎样做肉丸子
这还原表空间中还存在3个回滚的对象。
7. 创建新的UNDO表空间,并设置⾃动扩展参数;
SQL> create undo tablespace undotbs2 datafile '/opt/oracle/oradata/ge01/UNDOTBS2.dbf' size 100m reuse autoextend on ne
Tablespace created.
衡阳车辆违章查询8. 切换UNDO表空间为新的UNDO表空间 , 动态更改spfile配置⽂件;
SQL> alter system set undo_tablespace=undotbs2 scope=both;
System altered.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
t.segment_name,t.tablespace_name,t.segment_id,t.status from dba_rollback_segs t;
SEGMENT_NAME  TABLESPACE_NAME SEGMENT_ID  STATUS
1  SYSTEM  SYSTEM  0  ONLINE
2  _SYSSMU1$  UNDOTBS1  1  OFFLINE
3  _SYSSMU2$  UNDOTBS1  2  OFFLINE
4  _SYSSMU47$  UNDOTBS1  47  OFFLINE
上⾯对应的UNDOTBS1还原表空间所对应的回滚段均为OFFLINE
黑蛇养殖10.到$ORACLE_HOME/dbs/init$a如下内容是否发⽣变更:
#cat $ORACLE_HOME/a
……
*.undo_management=’AUTO’
*.undo_retention=10800
*.undo_tablespace=’UNDOTBS2’愚人节如何整人
戒烟的好方法……
如果没有发⽣变更请执⾏如下语句:
SQL> create pfile from spfile;
File created.
11. 删除原有的UNDO表空间;
SQL> drop tablespace undotbs1 including contents;最后需要在重启数据库或者重启计算机后到存储数据⽂件的路径下删除数据⽂件(为什么要⼿动删除呢:以上步骤只是删除了ORACLE中undo表空间的逻辑关系,即删除了数据⽂件在数据字典中的关联,不会⾃动删除项关联的数据⽂件)。drop tablespace undotbs1 including contents and datafiles;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。