资讯专栏INFORMATION COLUMN

DM闪回查询

IT那活儿 / 2334人阅读
DM闪回查询
 背   景

在我们日常运维中,难免会遇到这样的需求:因要使用原来的数据,而此数据已被删除且没有备份,或有误操作导致数据被删。要求恢复原来的数据,以下就是DM数据库使用的闪回查询技术来恢复数据。


开启闪回模式

ini参数ENABLE_FLASHBACK=1(0表示关闭闪回模式,1表示开启,默认是0)

进库开启闪回模式sp_set_para_value(2,ENABLE_FLASHBACK,1);

重启

[dmdba@oracle12c bin]$ /etc/rc.d/init.d/DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
[dmdba@oracle12c bin]$ /etc/rc.d/init.d/DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]


闪回子句查询

一. 语法介绍:

语句功能:

用户通过闪回查询子句,可以得到指定表过去某时刻的结果集。指定条件可以为时刻, 或事务号。

使用说明:

  1. 闪回查询只支持普通表(包括加密表与压缩表)、临时表和堆表,不支持水平分区 表、列存储表、外部表与视图;

  2. 闪回查询中 trxid 的值,一般需要由闪回版本查询的伪列来确定。实 际使用中多采用指定时刻的方式。

二. 新建测试表dm_test

create table dm_test(
    id int identity(1,1) primary key,
    name varchar(100)
);

insert into dm_test values (xiaoke);
insert into dm_test values (xiaoshi);
insert into dm_test values (xiaoliang);
insert into dm_test values (xiaochen);
commit;

三. Timestamp类型

delete一行数据并提交

闪回查询


闪回版本查询

可以看出更新前的数据和事务id


闪回事务查询

闪回事务查询提供系统视图 V$FLASHBACK_TRX_INFO 供用户查看在事务级对数据库所做的更改。

SELECT TABLE_NAME,UNDO_SQL FROM V$FLASHBACK_TRX_INFO WHERE COMMIT_TIMESTAMP > 2021-05-24 19:04:34;


可以通过undo_sql 闪回被更新的数据。


 总  结 

  1. 在使用DM闪回查询的时候先必须开启闪回模式。
  2. 开启闪回模式的时候需要修改参数重启,最好在前期建库的时候就开启闪回模式

  3. 需要大概知道更新数据的时间。


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129894.html

相关文章

  • DG备库读写测试方案

    DG备库读写测试方案 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margin:0...

    IT那活儿 评论0 收藏856

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<