管理UNDO表空间
使用UNDO参数
1) UNDO_MANAGEMENT
该初始化参数用于指定UNDO数据的管理方式。自动管理为AUTO,手工管理为MANUAL,Oracle10默认为ATUO
2) undo_tablespace
指定例程所要使用的UNDO表空间
3) undo_retention
控制UNDO数据的最大保留时间,默认为900秒
建立UNDO表空间
1) 使用create database命令建立undo表空间
Create database db01
…….
Undo tablespace undotbs_01
Datafile ‘/undo.dbf’ size 10m
2) 使用create undo tablespace命令建立Undo表空间
SQL> create undo tablespace undotbs3
2 datafile 'f:\demo\undotbs3.dbf' size 10m;
表空间已创建。
修改UNDO表空间
SQL> alter tablespace undotbs3 add datafile
2 'f:\demo\undotbs3_2.dbf' size 5m;
表空间已更改。
切换UNDO表空间
SQL> alter system set undo_tablespace=undotbs1;
删除UNDO表空间
SQL> drop tablespace undotbs3;
表空间已删除。
手工删除文件
监视UNDO空间信息
1) 确定当前例程正在使用的UNDO表空间
SQL> show parameter undo_tablespace
NAME TYPE VALUE
------------------------------------ ----------- ---------
undo_tablespace string UNDOTBS1
2) 显示数据库的所有UNDO表空间
Sql>select tablespace_name from dba_tablespaces
Where contents=’undo’
3) 显示UNDO表空间统计信息
SQL> select to_char(begin_time,'hh24:mi:ss') begin_time,
2 to_char(end_time,'hh24:mi:ss') end_time,
3 undoblks
4 from v$undostat;
BEGIN_TI END_TIME UNDOBLKS
-------- -------- ----------
10:53:09 11:00:37 1
4)显示UNDO段统计信息
SQL> select a.name,b.xacts,b.writes,b.extents
2 from v$rollname a,v$rollstat b
3 where a.usn=b.usn;
NAME XACTS WRITES EXTENTS
------------------------------ ---------- ---------- ----------
SYSTEM 0 5000 6
_SYSSMU1$ 0 9300 27
_SYSSMU2$ 0 2954 21
_SYSSMU3$ 0 5474 16
_SYSSMU4$ 0 3612 30
_SYSSMU5$ 0 2506 25
_SYSSMU6$ 0 92062 29
_SYSSMU7$ 0 119364 22
_SYSSMU8$ 0 13456 38
_SYSSMU9$ 0 3148 13
_SYSSMU10$ 0 2074 11
已选择11行。
5.显示活动事务信息
SQL> col username format a10
SQL> col name format a10
SQL> select a.username,b.name ,c.used_ublk
2 from v$session a,v$rollname b,v$transaction c
3 where a.saddr=c.ses_addr and b.usn=c.xidusn
4 and a.username='scott';
未选定行
6)显示UNDO信息
select extent_id,bytes,status, from dba_undo_extents
where segment_name='_syssmu5$'
Type of Undo segments
System:used for objects in the system tablespace
None-system: used for objects int other tablespaces:
Automode: Require an undo tablespace
Manual mode:
Private:Acquired by single instance
Public: Acquired by any instance
Deffered(延迟):Used when tablespace are taken offline immediate,temporary,or for recovery
SQL> alter tablespace lyh offline immediate;
表空间已更改。
SQL> alter tablespace lyh online;
alter tablespace lyh online
*
第 1 行出现错误:
ORA-01113: 文件 5 需要介质恢复
ORA-01110: 数据文件 5: 'F:\DEMO\LYH.DBF'
SQL> recover datafile 'F:\DEMO\LYH.DBF';
完成介质恢复。
SQL> alter tablespace lyh online;
表空间已更改。
设置UNDO表空间
SQL> create undo tablespace undotbs2
2 datafile 'f:\demo\undotbs2.dbf' size 10m;
SQL> alter system set undo_tablespace=undotbs1;
UNDO表空间增加空间
SQL> alter tablespace undotbs1
2 add datafile 'f:\demo\undotbs1a.dbf' size 10m;
自动增长的UNDO表空间
SQL> run
1 alter tablespace undotbs1
2 add datafile 'f:\demo\undotbs1b.dbf' size 10m
3* autoextend on
表空间已更改。
查询回滚块
SQL> select end_time,begin_time,undoblks
2 from v$undostat;
END_TIME BEGIN_TIME UNDOBLKS
-------------- -------------- ----------
12-3月 -06 12-3月 -06 1
12-3月 -06 12-3月 -06 50
12-3月 -06 12-3月 -06 28
计算UNDO 空间大小
(UR)undo_retention in seconds
(UPS)Number of undo data blocks generated per second 每一秒所需要的UNDO data块|回滚数据块来决定
(DBS)Overhead varies based on extent and file size (db_block_size)
Udospace=[UR*(UPS*DBS)]+(DBS*24)
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ---------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
获取UNDO段信息
数据字典视图 ――DBA_ROLLBACK_SEGS
Dynamic performance views
V$rollname
V$rollstat
V$undostat
V$session
V$transaction
查看系统里的所有UNDO段信息
SEGMENT_NAME OWNER TABLESPACE_NAME
------------------------------ ------ ------------------
SYSTEM SYS SYSTEM
_SYSSMU10$ PUBLIC UNDOTBS1
_SYSSMU9$ PUBLIC UNDOTBS1
_SYSSMU8$ PUBLIC UNDOTBS1
_SYSSMU7$ PUBLIC UNDOTBS1
_SYSSMU6$ PUBLIC UNDOTBS1
_SYSSMU5$ PUBLIC UNDOTBS1
_SYSSMU4$ PUBLIC UNDOTBS1
_SYSSMU3$ PUBLIC UNDOTBS1
_SYSSMU2$ PUBLIC UNDOTBS1
_SYSSMU1$ PUBLIC UNDOTBS1
已选择11行。
SQL> select * from v$rollname;
USN NAME
---------- ------------------------
0 SYSTEM
1 _SYSSMU1$
2 _SYSSMU2$
3 _SYSSMU3$
4 _SYSSMU4$
5 _SYSSMU5$
6 _SYSSMU6$
7 _SYSSMU7$
8 _SYSSMU8$
9 _SYSSMU9$
10 _SYSSMU10$
已选择11行。
SQL> select * from v$rollstat;
在列 CURBLK 前截断 (按要求)
USN LATCH EXTENTS RSSIZE WRITES XACTS GETS WAITS
---- ---------- ---------- ---------- ---------- ---------- ---------- ----------
0 0 6 385024 92496 0 591
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9466564/viewspace-609142/ ,如需转载,请注明出处,否则将追究法律责任。