前言
一、确认对应实例的undo表空间
二、确认对应实例undo的文件位置
- select file_name, bytes / 1024 / 1024 / 1024
- from dba_data_files
- where tablespace_name like 'UNDOTBS%';
复制代码
三、确认回滚段使用情况
#如果为空则证明该表空间可以被删除,否则要放其他时间处理尤其生产环境下。- select s.username, u.name
- from gv$transaction t, gv$rollstat r, v$rollname u, gv$session s
- where s.taddr = t.addr
- and t.xidusn = r.usn
- and r.usn = u.usn
- order by s.username;
复制代码
四、检查undo segment状态
- select usn,
- xacts,
- status,
- rssize / 1024 / 1024,
- hwmsize / 1024 / 1024,
- shrinks
- from v$rollstat
- order by rssize;
复制代码
五、创建新的undo表空间并进行切换
- SQL> create pfile='/home/oracle/t1.txt' from spfile;
- ファイルが作成されました。
- SQL>
- SQL>
- SQL> create undo tablespace undotbs02 datafile '+DATA' size 10240m autoextend on next 10m;
- 表領域が作成されました。
- SQL>
- SQL> create undo tablespace undotbs01 datafile '+DATA' size 10240m autoextend on next 10m;
- 表領域が作成されました。
- SQL>
- SQL>
- SQL> alter system set undo_tablespace=undotbs02 sid='cxldb2' scope=both;
- システムが変更されました。
- SQL>
- SQL>
- SQL> show parameter undo
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- temp_undo_enabled boolean FALSE
- undo_management string AUTO
- undo_retention integer 10800
- undo_tablespace string UNDOTBS02
- SQL>
- ##inst_id=1
- SQL>
- SQL> show parameter undo
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- temp_undo_enabled boolean FALSE
- undo_management string AUTO
- undo_retention integer 10800
- undo_tablespace string UNDOTBS1
- SQL>
- SQL>
- SQL> alter system set undo_tablespace=undotbs01 sid='cxldb1' scope=both;
- システムが変更されました。
- SQL>
- SQL> show parameter undo
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- temp_undo_enabled boolean FALSE
- undo_management string AUTO
- undo_retention integer 10800
- undo_tablespace string UNDOTBS01
- SQL>
复制代码 六、等待原undo表空间segment状态变更为offline
- select t.segment_name, t.tablespace_name, t.segment_id, t.status
- from dba_rollback_segs t
- where t.tablespace_name in ('UNDOTBS1','UNDOTBS2')
- and t.status != 'OFFLINE';
复制代码
七、删除原undo表空间以及数据文件
- SQL> drop tablespace UNDOTBS1 including contents and datafiles;
- 表領域が削除されました。
- SQL> drop tablespace UNDOTBS2 including contents and datafiles;
- 表領域が削除されました。
- SQL>
复制代码
以上就是Oracle rac模式下undo表空间爆满的解决方案的详细内容,更多关于Oracle undo表空间爆满的资料请关注脚本之家其它相关文章!
来源:https://www.jb51.net/database/326849994.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |