博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[20170520]利用undo表空间保护数据.txt
阅读量:7247 次
发布时间:2019-06-29

本文共 3349 字,大约阅读时间需要 11 分钟。

[20170520]利用undo表空间保护数据.txt

--//undo表空间是用来记录前映像信息,也用来保证查询时一致性的.上个星期去听一些课,提到不打开归档情况下一些维护技巧,

--//就是建立多个redo日志文件,用来保存日志,至少维持3-4天甚至1个星期的日志,这样可以一定程度减少错误以及会查问题.
--//另外提到一种利用undo表空间避免异常操作的恢复方法,就是再建立1个undo表空间,出现异常dml语句时切换使用新的undo表空间.
--//这样可以非常从容的恢复信息.当然最好不要再有dml操作这个表.通过例子说明:

1.环境:

SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE

  '/mnt/ramdisk/book/undotbs02.dbf' SIZE 100M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
ONLINE
RETENTION NOGUARANTEE
BLOCKSIZE 8K
FLASHBACK ON;

SCOTT@book> show parameter undo

NAME             TYPE    VALUE
---------------- ------- ---------
undo_management  string  AUTO
undo_retention   integer 900
undo_tablespace  string  UNDOTBS1

SCOTT@book> create table tx as select * from dba_objects ;

Table created.

SCOTT@book> set numw 12

SCOTT@book> select sysdate , current_scn from v$database ;
SYSDATE              CURRENT_SCN
------------------- ------------
2017-05-19 18:00:23  13277861094

SCOTT@book> update tx set object_name=lower(object_name);

87006 rows updated.

SCOTT@book> commit ;

Commit complete.

SCOTT@book> alter system set undo_tablespace=UNDOTBS2;

System altered.

SCOTT@book> select * from tx as of scn 13277861094 where rownum=1;

OWNER  OBJECT_NAME          SUBOBJECT_    OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE         CREATED             LAST_DDL_TIME       TIMESTAMP           STATUS  T G S    NAMESPACE EDITION_NAME
------ -------------------- ---------- ------------ -------------- ------------------- ------------------- ------------------- ------------------- ------- - - - ------------ ------------------------------
SYS    ICOL$                                     20              2 TABLE               2013-08-24 11:37:35 2013-08-24 11:47:37 2013-08-24:11:37:35 VALID   N N N            1

SCOTT@book> update deptx set dname=upper(dname) where rownum=1;
1 row updated.

SCOTT@book> @ &r/xid

XIDUSN_XIDSLOT_XIDSQN
------------------------------
20.2.4

C70                                                                        XIDUSN    XIDSLOT     XIDSQN     UBAFIL     UBABLK     UBASQN     UBAREC STATUS            USED_UBLK  USED_UREC XID              ADDR             START_DATE

---------------------------------------------------------------------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------------- ---------- ---------- ---------------- ---------------- -------------------
ALTER SYSTEM DUMP UNDO BLOCK '_SYSSMU20_1294681377$' XID 20 2 4;               20          2          4          7        274          1          4 ACTIVE                    1          2 1400020004000000 00000000818ED500 2017-05-19 18:03:36
ALTER SYSTEM DUMP UNDO HEADER '_SYSSMU20_1294681377$';
ALTER SYSTEM DUMP DATAFILE 7 BLOCK 274;
--//现在新的事务使用新undo表空间.下个星期看看是否还能能查询.

SCOTT@book> set numw 12

SCOTT@book> select sysdate , current_scn from v$database ;
SYSDATE              CURRENT_SCN
------------------- ------------
2017-05-25 08:38:09  13278488313

SCOTT@book> select * from tx as of scn 13277861094 where rownum=1;

OWNER  OBJECT_NAME          SUBOBJECT_    OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE         CREATED             LAST_DDL_TIME       TIMESTAMP           STATUS  T G S    NAMESPACE EDITION_NAME
------ -------------------- ---------- ------------ -------------- ------------------- ------------------- ------------------- ------------------- ------- - - - ------------ ------------------------------
SYS    ICOL$                                     20              2 TABLE               2013-08-24 11:37:35 2013-08-24 11:47:37 2013-08-24:11:37:35 VALID   N N N            1

--//时间已经过去将近6天,依旧能查询到修改前星期,当然如果这个表有dml发生,也许就不行.不过这样确实提供一种思路.

转载地址:http://xgfbm.baihongyu.com/

你可能感兴趣的文章
O2O的另类演绎
查看>>
cool1 dual生态手机的产品经:基于体验基础的商业模式变革
查看>>
安卓滑动隐藏显示菜单功能实现(还有蒙板校果),只显示一半view
查看>>
使用URL在本地显示网络上的图片
查看>>
免费公测:RDS只读实例
查看>>
阿里云 Aliplayer高级功能介绍(二):缩略图
查看>>
设计原则解读——单一职责原则、里氏替换原则
查看>>
IE10的补丁标题显示9.0!
查看>>
每天一个linux命令(15):tail 命令
查看>>
co yield避免嵌套详细代码示例。
查看>>
基于两种创建docker镜像的启动容器时区别总结
查看>>
jdk1.6的集合源码阅读之ArrayList
查看>>
Android应用实例之---使用Linkify + 正则式区分微博文本链接及跳转处理
查看>>
关于uploadify使用的一些小问题
查看>>
shell seq
查看>>
docker技术剖析--数据卷 for centos7.2
查看>>
linux环境安装node.js环境和pm2
查看>>
跳槽的时候如何和招聘方谈薪水
查看>>
mysql5.7的主从复制+读写分离
查看>>
周工作不得超过40小时
查看>>