首页 > 其他 > 详细

undo表空间

时间:2019-05-04 19:19:29      阅读:118      评论:0      收藏:0      [点我收藏+]

undo表空间:不能保存对象

为事务提供回退;

为事务提供恢复;

提供读一致性;

闪回查询;

查看undo表空间名称:select tablespace_name from dba_tablespaces where contents=‘UNDO‘;

查看rollback段:select segment_name,tablespace_name,status from dba_roallback_segs;

segment_name为SYSTEM的是为系统自带的表空间提供回退的,其他是为用户自己创建的表空间提供回退的。

查看用户使用的回滚段及使用块大小:select s.username,t.XIDUSN,t.USED_UBLK from v$session s, v$transaction t where s.saddr=t.SES_ADDR;

查看回滚段对应的回滚段名称:select name from v$rollname where USN=3;

begin

for i in 1...500000 loop

update t_user set apple=apple+i where user_id=3;

end loop;

end;

/

select s.username,t.XIDUSN,t.USED_UBLK from v$session s, v$transaction t where s.saddr=t.SES_ADDR;--查看使用的块大小

 

查看undo表空间管理方式:show parameter undo_management

查看undo表空间名称:show parameter undo_tablespace

查看数据文件:select name from v$datafile;

创建undo表空间:create undo tablespace undotbs2 datafile ‘/u01/app/oracle/oradata/myorcl/undotbs02.dbf‘ size 10m;

切换undo表空间:alter system set undo_tablespace=undotbs2 scope=both;

切换undo表空间管理方式:alter system set umdo_management=manual scope=spfile;--切换到手动模式

修改表所属的表空间:alter table t_user move tablespace system;

用户没有可用的segment时,无法创建表,oracle11g及其之后的版本新加了参数deferred_segment_creation,为true时可以创建不带数据的表

创建rollback的segment:create rollback segment rbs1 tablespace undotbs1;

修改状态:alter rollbask segment rbs1 online;

查看参数rollback:show parameter rollback

oracle推荐一个segment中存放5个事务,segment数量足够使用时,oracle会自动分配

默认数据库重启后手动创建的segment状态会是offline,需要修改参数:alter system set rollback_segments=‘RBS1‘ scope=spfile;--多个参数以逗号间隔,rollback_segments=‘’,‘‘,...

重启后查看segment状态:select segment_name,tablespace_name,status from dba_rollback_segs;

切换undo表空间管理方式:alter system set umdo_management=auto scope=spfile;--切换到自动模式,重启后生效

 

闪回查询(查询commit之前的数据):

select * from t_user as of timestamp(sysdate-5/1440);

select * from t_user as of scn 1704047;

启动行移动:alter table t_user enable row movement;

将表中数据回退到5分钟之前:

flashback table t_user to timestamp(sysdate-5/1440);--最大支持900秒

flashback table t_user to scn 1704047;

查看参数undo:show parameter undo

闪回版本查询:

select versions_startscn,versions_endscn,versions_operation,versions_xid,apple from t_user versions between scn minvalue and maxvalue where user_id=3;

select versions_starttime,versions_endtime,versions_operation,versions_xid,apple from t_user versions between scn minvalue and maxvalue where user_id=3;

 

追加日志数据模式:alter database add supplemental log data;

闪回事务查询(sys用户):select undo_sql from flashback_transaction_query where xid=‘0F00170006000000‘;--xid通过闪回版本查询获取

设置事务隔离:set transaction isolation level SERIALIZABLE;--查询undo表空间

设置强制回退保实例:alter tablespace UNDOTBS2 RETENTION GUARANTEE;--开启后保证查询一致,但是可能事务会失败

select tablespace_name,retention from dba_tablespace where contents=‘UNDO‘;

 

删除表空间:drop tablespace TEMP02 including contents and datafiles;

undo表空间

原文:https://www.cnblogs.com/cyf18/p/10809331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!