[原创]如何使用闪回表特性来恢复表的数据_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3560 | 回复: 0   主题: [原创]如何使用闪回表特性来恢复表的数据        下一篇 
大红薯
注册用户
等级:少校
经验:1440
发帖:159
精华:0
注册:2011-7-21
状态:离线
发送短消息息给大红薯 加好友    发送短消息息给大红薯 发消息
发表于: IP:您无权察看 2011-8-29 10:33:59 | [全部帖] [楼主帖] 楼主

目的

————

如何使恢复被意外删除的表数据

范围及应用

————

为所有DBA和支持分析师所准备

使用闪回表特性恢复表数据

————

FLASHBACK TABLE语句可以使用户恢复到某个时间点的表。它提供了一个快速、在线的解决方案来恢复已经被用户或者应用删除或者改变的表

闪回Drop的速度大大快于其他所有能应对这种情况的恢复机制,例如 时间点恢复,并且不会丢失任何最近的事物或者是宕机。

由TIMESTAMP或者SCN恢复指定表的所有数据到一个之前的时间点。一个排他DML锁将产生在表上,当它正在恢复的时候。、

在线执行恢复操作

注意:你必须使用自动的undo管理来使用闪回表特性。它是基于储存在undo表空间的undo信息的。

自动恢复所有的表的属性,例如索引、触发器等对于一个闪回表应用功能来说,是必须的。

     在一个分布式的环境中维护任何远程状态,例如,所有的修改的表需要被复制如果一个复制的表被闪回的话。

根据指定的约束,维护数据完整性,闪回的表必须不能违反任何一个表约束。这包括在FLASHBACK TABLE语句任何的参照完整性约束中并且另外一个FLASHBACK TABLE不保护的表。

即使在闪回结束之后,你原来的表的数据没有丢失,你可以在之后恢复到原来的状态。

要使用FLASHBACK TABLE语句你必须被赋予了FLASHBACK ANY TABLE系统权限或者你在表上必须有FLASHBACK目标权限。你执行闪回操作的表必要要开启行移动。

例子:

SQL>alter tablespace UNDOTBS1 retention guarantee;
SQL>select tablespace_name,retention from dba_tablespaces;
TABLESPACE_NAME RETENTION
------------------------------ -----------
SYSTEM NOT APPLY
UNDOTBS1 GUARANTEE
SYSAUX NOT APPLY
TEMP NOT APPLY
EXAMPLE NOT APPLY
USERS NOT APPLY
HISTORY NOT APPLY
7 rows selected.
SQL> ALTER TABLE flash_test_table enable row movement;
Table altered.
SQL> select * from flash_test_table;
EMPNO EMPNAME
---------- ------------------------------
1 Kiran
2 Scott
3 Tiger
4 Jeff
SQL> select current_scn from v$database;
CURRENT_SCN
----------------
332348
SQL> connect scott/tiger
Connected.
SQL> insert into flash_test_table values(5,'Jane');
1 row created.
SQL> insert into flash_test_table values(6,'John');
1 row created.
SQL> commit;
Commit complete.
SQL> connect / as sysdba
Connected.
SQL> select current_scn from v$database;
CURRENT_SCN
----------------
332376
SQL> connect scott/tiger
Connected.
SQL> select * from flash_test_table;
EMPNO EMPNAME
---------- ------------------------------
1 Kiran
2 Scott
3 Tiger
4 Jeff
5 Jane
6 John
6 rows selected.
SQL> flashback table flash_test_table to scn 332348;
Flashback complete.
SQL> select * from flash_test_table;
EMPNO EMPNAME
---------- ------------------------------
1 Kiran
2 Scott
3 Tiger
4 Jeff
SQL> flashback table flash_test_table to scn 332376;
Flashback complete.
SQL> select * from flash_test_table;
EMPNO EMPNAME
---------- ------------------------------
1 Kiran
2 Scott
3 Tiger
4 Jeff
5 Jane
6 John
6 rows selected.


显示相关信息

产品

* Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Standard Edition
* Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Personal Edition
* Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition
* Enterprise Management > Enterprise Manager Consoles, Packs, and Plugins > Managing Databases using Enterprise Manager > Enterprise Manager for RDBMS


关键词

FLASHBACK




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论