用于Oracle数据库Truncate操作的保护方法技术

技术编号:20160342 阅读:48 留言:0更新日期:2019-01-19 00:13
本发明专利技术公开了一种用于Oracle数据库Truncate操作的保护方法,包括如下步骤:S1)当Oracle数据库发生Truncate操作时,设置触发器记录被Truncate删除的表名,并保存到beforetruncate表中;S2)定时扫描beforetruncate表,如果存在新删除的表,则查询找到该表的段头块;S3)将该表相关的id修改成Truncate以前的值,同时生成修改回去的逆向脚本;S4)当达到预设保护阈值后,运行逆向脚本把标识再恢复成Truncate之后的情况,通过Oracle数据库对需要回收的数据进行清理。本发明专利技术使得Truncate的恢复变得简单快速,且不会影响正常的数据删除。

【技术实现步骤摘要】
用于Oracle数据库Truncate操作的保护方法
本专利技术涉及一种Oracle数据库处理方法,尤其涉及一种用于Oracle数据库Truncate操作的保护方法。
技术介绍
在数据库系统运行的过程中,经常会出现以下情况:1、数据量突然增长,客户已经没有存储空间,现在需要清理存储空间,经过沟通发现一张表的数据可以完全删除,于是就进行了Truncate删除方式(Oracle中使用delete较慢,会产生大量的归档)。删除完之后,发现数据还是有作用,需要重新弄回来的情况。2、运维人员不小心执行了Truncate命令,进行了误操作,导致数据被完全删除。目前业界一般没有方法可以避免此类情况,只能通过建立触发器进行一个提示警告,让运维人员三思而后行。但是此类办法并不能解决问题,出现了Truncate删除之后,恢复数据是非常麻烦的:1、有RMAN完全备份+全部归档才能进行异机基于时间点的不完全恢复,把Truncate之前的数据找出来,然后导出,重新导入到以前的数据库当中。如果数据量非常大,这个恢复过程可能需要持续数天,从而会严重影响一些客户的业务正常进行。2、没有完全备份也没开归档,这类数据如本文档来自技高网...

【技术保护点】
1.一种用于Oracle数据库Truncate操作的保护方法,其特征在于,包括如下步骤:S1)当Oracle数据库发生Truncate操作时,设置触发器;所述触发器记录被Truncate删除的表名,并将记录的信息保存到beforetruncate表中;S2)定时扫描beforetruncate表,如果存在新删除的表,则执行查询dba_segments,找到该表的段头块;S3)执行脚本将该表相关的data_object_id修改成Truncate以前的值,同时生成修改回去的逆向脚本;S4)当达到预设的保护阈值之后,运行步骤S3中的逆向脚本,把标识再恢复成Truncate之后的情况,通过Oracl...

【技术特征摘要】
1.一种用于Oracle数据库Truncate操作的保护方法,其特征在于,包括如下步骤:S1)当Oracle数据库发生Truncate操作时,设置触发器;所述触发器记录被Truncate删除的表名,并将记录的信息保存到beforetruncate表中;S2)定时扫描beforetruncate表,如果存在新删除的表,则执行查询dba_segments,找到该表的段头块;S3)执行脚本将该表相关的data_object_id修改成Truncate以前的值,同时生成修改回去的逆向脚本;S4)当达到预设的保护阈值之后,运行步骤S3中的逆向脚本,把标识再恢复成Truncate之后的情况,通过Oracle数据库对需要回收的数据进行清理。2.如权利要求1所述的用于Oracle数据库Truncate操作的保护方法,...

【专利技术属性】
技术研发人员:程永新孙玉颖袁伟翔
申请(专利权)人:上海新炬网络信息技术股份有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1