[原创]oracle闪回技术_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
5
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2690 | 回复: 4   主题: [原创]oracle闪回技术        下一篇 
geng.zhang
注册用户
等级:少校
经验:854
发帖:27
精华:0
注册:1970-1-1
状态:离线
发送短消息息给geng.zhang 加好友    发送短消息息给geng.zhang 发消息
发表于: IP:您无权察看 2014-11-25 17:57:07 | [全部帖] [楼主帖] 楼主

①概述:目的是避免用户因操作失误,丢失数据,而采取的一种保护措施,是用户的数据“失而复得”。闪回查询有多种形式,闪回表,闪回删除,闪回数据库,闪回版本查询,闪回事务查询,闪回数据归档(oracle11G引入的)。

②闪回恢复区

闪回数据库是将数据库回退到过去的的时间点或scn。

闪回恢复区是一块用来存储恢复相关的文件的存储空间,闪回恢复区的存放路径有参数db_recovery_file_dest决定,闪回恢复去的大小有参数db_recovery_file_dest_size决定,db_flashback_retention_targetb_flashback_retention_target指定的是闪回数据库最少能够回退的时间,默认为1440分。

③闪回技术

闪回表:把表前滚到过去的时间点或者SCN上,从而达到恢复表功能.

使用闪回表技术注意的地方:

用户要有select,insert ,delete,alter权限;

用户要有flashback any table权限

表的行移动(row movement)功能要启动

使用flashback table *** to 时间戳

闪回删除:使用oracle的回收站,回收站把所有的被用户删除的对象存储在里面,如果用户删除一个表,表不会彻底从数据库中删除,而是被存储到回收站里。

用show recyclebin参看回收站的信息

北京联动北方科技有限公司

闪回数据库:将数据库回退到过去的一个时间点或SCN,从而实现数据的的恢复。

使用alter database flashback on命令启动闪回数据库功能。(注意:要把数据库mount状态并且数据库处于归档模式)

闪回版本查询:闪回版本查询提供了一个审计改变的查询功能,可以通过它查询到所有的已提交了的行记录

闪回事务查询:闪回版本查询的一个扩充,通过闪回事务查询可以审计某个事务甚至撤销一个已提交的事务。它利用初始化的数据库参数UNDO_RETENTION来确定已经提交的撤销数据在数据库中的保存时间

闪回数据归档:闪回数据归档不同于其他的的闪回形式,它不依赖undo数据,除了闪回数据库是依赖日志,其他都是依赖依赖undo数据。它把变化的数据存储到创建的闪回数据归档区中,不受undo数据的限制。

闪回实例:

SQL> select count(*) from zq.test;
COUNT(*)
----------
7
SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
610369
SQL> truncate table zq.test;
Table truncated.
SQL> select count(*) from zq.test;
COUNT(*)
----------
0
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area  180355072 bytes
Fixed Size                   788028 bytes
Variable Size             145488324 bytes
Database Buffers           33554432 bytes
Redo Buffers                 524288 bytes
Database mounted.
SQL> flashback database to scn 610369;
Flashback complete.
SQL> alter database open resetlogs;
Database altered.
SQL> select count(*) from zq.test;
COUNT(*)
----------
7




赞(0)    操作        顶端