在我的另外几篇文章中,介绍了关于数据库闪回的一些内容,对于drop和delete的数据闪回。对于truncate,可能有一些数据库知识的应该会知道,在正常逻辑中,如果我们将表truncate掉了,是找不回来了,TRUNCATE TABLE 是一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
那么问题来了,如果我们生产过程中,一不小心,将业务表truncate掉了该怎么办呢?其实也是有办法解决的,具体操作过程如下:
1,新建测试表t_test,插入几条测试数据
2,执行我们truncate命令,清除t_test中的所有数据
3,truncate恢复需要一个存储过程fy_recover_data(我个人觉得,能写出这种存储过程的,怕真的是科学家级别的了)
下载地址:https://download.youkuaiyun.com/download/xxbb0101/10275209
4,下载完成后,使用sys用户登录db(注意一定要sys用户登录,