14、管理 oracle undo
1、DML与undo
undo data:
原始的、修改之前的数据副本
用于支持:回退操作、读一致性查询、闪回查询、闪回事务处理及闪回表、从失败事务中进行恢复。
undo:旧数据
redo:改变的数据
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
undo_retention指定已经提交的还原信息要保留多长时间(秒)
undo表空间大小设置多大合适呢?
select name,BLOCK_SIZE/1024/1024 from v$datafile;
设置undo手动管理(需要重启数据库) ==不建议手动管理
alter system set undo_management=manual scope=spfile;
v$rollname
select * from v$rollname;
如何创建undo表空间?
sql> select name from v$datafile;
NAME
--------------------------------------------------
+DATA/orcl/datafile/system.256.943301251
+DATA/orcl/datafile/sysaux.257.943301251
+DATA/orcl/datafile/undotbs1.258.943301251
+DATA/orcl/datafile/users.259.943301251
+DATA/orcl/datafile/example.265.943301433
+DATA/orcl/datafile/tbs.dbf
create undo tablespace untotbs2 datafile '+DATA/orcl/datafile/undotbs2.dbf' size 3m;
show parameter undo
alter system set undo_tablespace=untotbs2;//设置undo表空间为untotbs2
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNTOTBS2
2、undo管理及使用
查看表空间是否自动扩展
sql> select TABLESPACE_NAME,AUTOEXTENSIBLE from dba_data_files;
TABLESPACE_NAME AUT
------------------------------ ---
USERS YES
UNDOTBS1 YES
SYSAUX YES
SYstem YES
EXAMPLE YES
TBS_16K NO
UNTOTBS2 NO
undo快照过旧
sql> select CURRENT_SCN from v$database;
CURRENT_SCN
-----------
2366951
################################################
例子:scn 闪回查询 15分钟。
sql> create table t2 as select * from scott.emp;
Table created.
sql> select CURRENT_SCN from v$database;
CURRENT_SCN
-----------
2367095
sql> delete t2;
14 rows deleted.
sql> commit;
Commit complete.
sql> select count(*) from t2 as of scn 2367095;
COUNT(*)
----------
14
###################################################
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。