oracle闪回能保存多长时间,Oracle闪回

Oracle闪回

作用:自动基于磁盘的备份与恢复,能把表恢复到过去的某个时间点或者SCN。

1.查看闪回区

SQL>show parameter db_recovery_file_dest; 查看闪回区详细信息

SQL> select flashback_on from v$database;   查看闪回区是否开启

2.修改闪回功能

SQL> startup mount;                                    数据库启动到mount下

SQL> alterdatabase flashback on (off);          开启关闭闪回区

注:如遇到38706事件错误,可能是因为归档不正确。先启用数据库归档。

SQL> alter database archivelog;

SQL> alter systemset db_flashback_retention_target=2880;

修改闪回时间,默认是1440分钟(1天),闪回时间是指数据库能回退的时间。

3.闪回使用实例:(注:sys用户下不可用闪回)

3.1 闪回drop的表

在非sys用户下创建表和表上索引,插入相关数据

create table abc (fnumber(9));

create index idx_teston abc(f);

insert into abc values(1);

insert into abc values(2);

insert into abc values(3);

3.2 删除表

drop table abc;

3.3 删除表之后,表并没有被真正删除,而是重命名之后放在同一用户下的回收站内,同时表上的索引等也会被如此处理。回收站满后以先进先出的原则管理。

查看表语句        select* from tab;

查看索引语句    select index_name, index_type, table_name from ind;

查看回收站语句 show recyclebin;

清空回收站语句 PURGE RECYCLEBIN;

注:没有放入回收站的表不能被闪回

3.4 闪回之后,即可再次看到表,但是表闪回后相应的索引等需要重新编译。

flashback table abc to before drop;

3.5 闪回DML语句

Flashback table abc to timestamp to_timestamp(‘2014-02-14 16:00:00’,’yyyy-mm-dd hh24:mi:ss’)

闪回可能会遇到08189错误,执行下列语句

alter table test varchar enable row movement;

意思是允许Oracle修改rowid。Oracle插入数据时会为该条数据分配唯一rowid并且不变,要启用闪回功能必须开启可修改rowid功能

闪回DML数据是使用回滚段进行恢复

附:查询所有可以撤消的操作,该操作依赖于undo_retention

SELECT versions_xidas xid,

versions_startscn,

versions_endscn,

versions_operation

FROM scott.abcVERSIONS between scn minvalue and maxvalue

查询undo_retention参数

该参数保存了回滚段数据保存的秒时间,超过该时间则无法闪回。默认为15分钟

修改该参数 alter system set undo_retention=3600;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用中的信息,Oracle试图将新的事务指派给拥有最少活动事务数的回滚段,以保存undo信息并保证读一致性视图的保留。如果没有单个段能满足这个需求,那么该事务将被指派给某个段。这意味着在Oracle中,回滚段中已经提交的事务数据非常宝贵,并且系统设法尽可能长地保留这些数据。 如果你想在Oracle数据库中回滚到一个小时之前的状态,可以使用引用中提到的"flashback table"命令。该命令允许你将表回滚到特定的时间点。你可以使用以下命令来回滚表到一个小时之前的时间节点: ``` flashback table 表 to timestamp to_timestamp('当前时间-1小时', 'yyyy-mm-dd hh24:mi:ss'); ``` 其中,"表"是你要回滚的表的名称,"当前时间-1小时"是一个占位符,你需要根据实际情况将其替换为当前时间减去一小时的时间值。 请注意,为了执行回滚操作,你需要确保数据库已启用了闪回功能,并且用户具有足够的权限执行该操作。 总而言之,如果你想在Oracle数据库中回滚一小时,你可以使用"flashback table"命令来将表回滚到一个小时之前的时间节点。123 #### 引用[.reference_title] - *1* *3* [oracle回滚段](https://blog.csdn.net/weixin_34473897/article/details/116413545)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] - *2* [Orcale回滚数据](https://blog.csdn.net/modernk/article/details/127785651)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值