网站首页 > 技术文章 正文
一、背景
前几天,一个开发人员在测试环境处理数据,有一个操作是清空一个表(del table)。数据库是用的Oracle数据库,他用PL/SQL devloper客户端连接了多个数据库,同连接了生产的库。可执行delete table操作时,发现客户端连接的是生产的数据库。
我去,接到通知的我万丈怒火,真想拿个程序员祭天。在简单了解了下情况之后,看着那小伙快哭的眼神,我压制了心中的怒火。
二、处理步骤
知道情况后,立马让运维把生产应用停掉,防止新的数据产生,出现后期的数据混乱情况。在得知数据库是Oracle11g之后,心中闪过一丝希望。Oracle不是有一个闪回功能?(flashback table)。
闪回查询是Oracle数据库独有的功能,支持在设定时间内对包括行、事务、表、和数据库在内的恢复操作,最实用的功能就是可以在数据库保持联机状态时恢复数据
首先看一下是否开启了该功能:
select flashback_on from v$database;
发现显示是YES,哈哈,心中开心的不行。接着问了下删除数据的时间点,开始恢复数据。根据时间点,开始将查询后的数据恢复到一个临时表:
insert 临时表 select * from emp as of timestamp to_timestamp('2019-01-09 10:00:45','YYYY-MM-DD HH24:MI:SS')
to_timestamp是要查询数据的时间点。
让开发人员检查了下数据对不对,确认是对的。然后将临时表的数据导入正式时,重启应用。搞定!全程用了10多分种。真是有惊无险啊,后期还针对这种情况做出了管理上的调整及培训教训。从根本上解决此类问题。
当然Oracle闪回还有很多种用法,这里只是提供一种思路,细节可自行百度。
猜你喜欢
- 2025-09-01 基于PostgreSQL流复制的容灾库架构设想及实现
- 2024-11-07 Oracle-块损坏故障:ORA-01578 oracle数据库坏块修复
- 2024-11-07 万字总结 MySQL核心知识,赠送25连环炮
- 2024-11-07 闪回区报警引发的性能问题分析(一)
- 2024-11-07 Oracle将物理Standby库临时激活用于测试
- 2024-11-07 谈谈MySQL中的重做日志,回滚日志及二进制日志的区别及各自作用
- 2024-11-07 insert导致的性能问题大排查(r11笔记第26天)
- 2024-11-07 ORACLE ORA-03113 故障解决方法 oracle error 3113
- 2024-11-07 Data Guard高级玩法:闪回恢复switchover库
- 2024-11-07 闪回数据库不是“万金油”(r11笔记第73天)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)