中国佛山手机网站建设,自己做的网站把密码改忘了怎么办,wordpress获取title,长沙百度网站快速排名不下心删除了生产库的数据或者不小心删除了一部分数据#xff0c;如何恢复找回。
Oracle恢复删除数据的方法
方案一
利用oracle提供的闪回方法进行数据恢复#xff0c;适用于delete删除方式
首先获取删除数据的时间点#xff1a;
select * from v$sql where sql_text l…不下心删除了生产库的数据或者不小心删除了一部分数据如何恢复找回。
Oracle恢复删除数据的方法
方案一
利用oracle提供的闪回方法进行数据恢复适用于delete删除方式
首先获取删除数据的时间点
select * from v$sql where sql_text like %table_name% ;
示例sql
select sql_text as boothno,first_load_time as submarket from v$sql where sql_text like %MK_BOOTHINFO% and sql_text like %DELETE FROM MK_BOOTHINFO WHERE BOOTHID %根据结果中的sql_text内容找到delete执行语句对应的删除时间点执行下面语句查询出删除的数据。
select * from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)
where (删除时的条件)
示例sql select * from Mk_Boothinfo as of timestampto_timestamp(#{time2,jdbcTypeVARCHAR},yyyy-mm-dd hh24:mi:ss)where BOOTHID #{boothId}ps这个时间点可以适当加减30s内去获取数据 有可能查不到
检查数据无误后执行下面操作将数据插回原表中。注意主键不重复
insert into table_name
select * from from table_name as of timestamp to_timestamp(‘删除时间点’,‘yyyy-mm-dd hh24:mi:ss’)
where (删除时的条件)
方案二
利用oracle虚拟回收站功能 原理是因为oracle数据库在删除表时会将删除信息存放于某虚拟回收站中而非直接清空在此种状态下数据库标记该表的数据库为可以复写所以在该块未被重新使用前依然可以恢复数据。该方法多用于drop删除。
首先查询123user_table视图找到被删除的表
select table_name,dropped from user_tables;
select object_name,original_name,type,droptime from user_recyclebin;
注意此时的object_name和original_name就是回收站存放的表名和原来删除的表名如果表名没有被重新命名可以通过下面语句进行恢复
flashback table object_name to before drop new_table_name;
方案三
用oracle数据库的闪回功能可以将数据库恢复到过去某一状态
注意此时是整库恢复具体语法如下
SQLalter database flashback on
SQLflashback database to scn SCNNO;
SQLflashback database to timestamp to_timestamp(‘frombyte 2021-09-02 23:59:59’,‘yyyy-mm-dd hh24:mi:ss’);
彻底删除数据
如果确定需要删除的数据又不想无谓的占用空间我们可以使用以下3种方式 采用truncate方式进行截断。不能进行数据回恢复 在drop时加上purge选项drop table table_name purge 通过删除recyclebin区域来永久性删除表 ,drop table table_name cascade constraints purge table table_name; 关于清空回收站
删除当前用户回收站 purge recyclebin 删除全体用户在回收站的数据 purge dba_recyclebin