oracle资料库
shell脚本命令
MySQL资料
Linux 安装mariadb
MySQL安装部署四种安装方式
Linux操作系统彻底删除MySQL——详细步骤
windows 下安装Mysql
MySQL常用命令
sqlite
Oracle
运行情况查询汇总
通过命令行导出AWR报告
alert日志存放位置
归档日志查看与清理
oracle数据库体系结构
SPFILE的搜索顺序
备份还原
RMAN备份
数据泵备份
EXP/IMP
数据库自动任务
oracle部署安装
Linux下安装oracle11G
windows下安装数据库
数据库维护篇
SGA/PGA修改
单独BUG参数修改
常用参数修改命令
数据库异常情况典型
用户密码管理
TNS详解及常见错误码
SQL语句
练习题
练习二
oracle 数据库去重复
多行字段拼接成一列 (listagg函数)
判断是否为数字
数据库空间管理
lob字段压缩
碎片整理
临时表空间
临时表空间管理
Oracle服务脱机迁移手册
windows 磁盘空间不足 转移数据文件
常用函数
发现患者是否有特殊字符
获取汉字首拼
通过关键词截取病历数据
转入转出文书记录获取数据
blob转varchar
触发器
阻断休眠
性别被置空
姓名无故更新
健康检测脚本
数据闪回
Redis
Redis可视化工具
Toad使用技巧
本文档使用 MrDoc 发布
-
+
首页
数据闪回
# 一、 误delete恢复,truncate无法恢复 1. 备份 ```sql create table pat_master_indexbf as SELECT * FROM pat_master_index AS OF TIMESTAMP TO_TIMESTAMP('20180125 12:02:00','YYYYMMDD HH24:MI:SS'); ``` 2. 将执行修改后表中新增的数据备份一次 ```sql create table pat_master_index_xin as select * from pat_master_index t where t.inp_no <>'170514970'; ``` 3. 检查查询修改之前的数据是否正确 ```sql SELECT * FROM pat_master_index AS OF TIMESTAMP TO_TIMESTAMP('20180125 12:02:00','YYYYMMDD HH24:MI:SS'); ``` 4. 启用表的行移动功能,执行回滚语句 ```sql alter table pat_master_index enable row movement; flashback table pat_master_index to timestamp to_timestamp('20180125 12:02:00','YYYYMMDD HH24:MI:SS'); ``` 5. 关闭表的行移动功能 ```sql alter table pat_master_index disable row movement; ``` 6. 将回滚后的表与备份的做对比,再将对比出的数据添加到pat_master_index中 ```sql insert into pat_master_index select a.* from pat_master_index_xin a left join pat_master_index b on a.patient_id=b.patient_id where b.patient_id is null; select a.* from pat_visit a left join pat_master_index b on a.patient_id=b.patient_id where b.patient_id is null; select * from pat_visit t where t.patient_id in (select a.patient_id from pat_master_index_xin a left join pat_master_index b on a.patient_id=b.patient_id where b.patient_id is null); ``` # 二、误drop表 使用闪回查询,数据库须开启automatic undo management,须有undo表空间,须设置好回滚段的保留时间 ```sql -- 在sqlplus中查看undo_management参数值是否为AUTO,如果是“MANUAL”手动,需要修改为“AUTO”; show parameter undo --查询闪回参数设置 alter system set undo_management='AUTO' scope=spfile; -- 查看回滚段的保留时间undo_retention,默认900秒(15分钟) -- 闪回表 --1. drop table test_1234 --2.删除test_1234表后,该表的block还在表空间中,查询回收站可以看到被删除的对象 select * from dba_recyclebin; --3.闪回表到删除之前: flashback table test_1234 to before drop; ``` # 三,查询误删除表 v$active_session_history,dba_hist_active_sess_history 语句1:在线ASH不存在则查询下个表(v$sqlarea根据SQL_ID查询语句) ```sql select * from v$active_session_history T where t.SAMPLE_TIME between to_date('20211228 10:08:20','yyyymmdd hh24:mi:ss') and to_date('20211228 10:08:30','yyyymmdd hh24:mi:ss') order by SAMPLE_TIME desc ``` 语句2: ```sql select * from dba_hist_active_sess_history T where t.SAMPLE_TIME between to_date('20211228 10:08:20','yyyymmdd hh24:mi:ss') and to_date('20211228 10:08:30','yyyymmdd hh24:mi:ss') order by SAMPLE_TIME desc ```
孙端己
2024年9月20日 11:48
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码