ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用flashback 恢复用户错误

使用flashback 恢复用户错误

Linux操作系统 作者:germany006 时间:2014-02-23 22:00:48 0 删除 编辑

Flashback drop 提供虚拟回收站,允许删除对象重建。

Flashback versions query, Flashback transation Query 用语识别或确定要恢复到当前状态的数据行。

Flashback Table 用于恢复单独的表,比如错误的更新了表。

10g后drop 数据库对象 实际是把对象放入回收站,可以查看回收站:

show recyclebin;

select object_name as recycle_name,original_name from recyclebin;

在回收站的命名格式是bin$globalUID$Version 24位的全局UID和数据库分配的版本号

对于recyclebin里表可以象正常表一样访问数据.

Select * from “bin$globalUID$version”;

实现恢复:

flashback table “bin$globalUID$version” to before drop( rename to t2) ;

purge table “bin$globalUID$version” 可以从回收站彻底删除对象并且释放空间

purge tablespace tablespacename 清除所有特定表空间的所有丢弃对象.

Purge tablespace tablespacename USER user的特定用户表空间内容

Purge recuclebin 清空用户的回收站

Purge DBA_RECYCLEBIN 清空所有用户回收站.(具有sysdba权限).

对于flashback drop 的一些局限

回收站功能只能用于一些非系统,本地管理的表空间.

在回收站的时间很难界定,是由系统空间 和系统活动 决定的.

对回收站里的表不能进行dml,ddl

回收站恢复 依存的对象也就被恢复.

分区表 不受回收站保护..

使用flashback version query

闪回查询时间是由UNDO_RETENTION的时间决定.闪回查询要具有select 和 flashback 权限.

Select * from t1 versions between scn minvalue and maxvalue where…

Select * from t1 versions between timestamp

To_timestamp(‘2004-10-26 11:37:00’,’YYYY-MM-DD HH:MI:SS’) and

To_timestamp(‘2004-10-26 11:43:00’,’YYYY-MM-DDHH:MI:SS’) where …

函数 SCN_TO_TIMESTAMP 和 TIMESTAMP_TO_SCN能可以让scn和时间相互转换.

关于新增的一些虚列:

VERSIONS_STARTSCN 创建行的起始SCN,如为NULL,在在BETWEEN 前创建.

VERSIONS_STARTTIME 创建行的起始TIMESTAMP,如为NULL,在在BETWEEN 前创建.

VERSIONS_ENDSCN 行版本终止时的SCN,如为NULL,此版本为当前版本,或对应一个delete 操作.

VERSIONS_ENDTIME 行版本终止时的TIMESTAMP,如为NULL,此版本为当前版本,或对应一个delete 操作.

VERSIONS_XID 创建行版本的事务标识符.

VERSIONS_OPERATION 改变数据的事物执行的操作.(I,D,U)

Select versions_starttime,version_endtime,versions_xid,version_operation from t1 versions between scn minvalue and maxvalue where ………..

使用闪回事务查询

使用闪回事务查询可以识别表和表操作,从而进行分析:

select table_name,operation,undo_sql from flashback_transaction_Query where xid=’…’

使用这个的功能权限 需要flashback any table

使用闪回表

同样受UNDO_RETENTION的影响.

闪回表需要权限 flashback any table 或 flashback table 或 执行闪回select,insert,delete,alter权限.

闪回表必须启动row movement;

alter table t1 enable row movement ;

flashback table to scn/timestamp enable triggers;

这里注意闪回表时trigger 默认是disenable 的…

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28371090/viewspace-1086569/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: Flashback database
请登录后发表评论 登录
全部评论
ORACLE,MYSQL,POSTGRESQL,SQLSERVER,MONGODB,TIDB,DB2,REDIS,本博客只为记录自己学习总结,不代表完全准确。

注册时间:2013-03-06

  • 博文量
    776
  • 访问量
    1038316