重大故障!业务核心表被truncate删除,跑路吧!
完蛋!核心业务表被truncate删除,也惊呆了,现在都这么粗暴了,安全机制、,作业规范形同虚设?接下来就给大家一起聊下,表被truncate,解决问题的关键就是找到关键的问题!
1.truncate的说明
Oracle数据库中的TRUNCATE语句用于删除表中的所有数据,并释放占用的空间。它比使用DELETE语句删除所有行更快,因为它不会为每行记录执行DML操作,同时也不能闪回,在生产环境一般发生后,恢复比较麻烦...
2.truncate恢复的办法
2.1 Fy_Recover_Data
Fy_Recover_Data是利用Oracle表扫描机制、数据嫁接机制恢复TRUNCATE或者损坏数据的工具包,由纯PLSQL编写。
1.通过以下网址下载:
http://www.hellodba.com/Download/FY_Recover_Data.zip
2.解压下载下来的FY_Recover_Data.pck
unzip FY_Recover_Data.zip?
解压后得到一个文件FY_Recover_Data.pck
3.使用sys用户执行解压后的脚本(我这里解压后的文件在/home/oracle/)
SQL> @/home/oracle/FY_Recover_Data.pck
这个脚本实际是在sys用户下创建了一个名为FY_Recover_Data的package
4.执行
exec fy_recover_data.recover_truncated_table('SCOTT','T');
注:执行上的SQL产生2个表空间FY_REC_DATA、FY_RST_DATA
5.使用sys用户把恢复的数据从scott.t$$中插回scott.t表
注:scott.t$$中是scott.t表truncate之前的数据
SQL> insert into scott.t select * from scott.t$$;
13 rows created.
SQL> commit;
Commit complete.
可以看到被truncate的数据已经恢复。
2.2 ODU还原
ODU 全称为 Oracle Database Unloader,是用于 Oracle 数据库紧急恢复的软件,在各种原因造成的数据库不能打开或数据删除后没有备份时,使用 ODU 抢救数据,最大限度地减少数 据丢失。
意外 Truncate 表的事情时有发生,ODU 提供了方便的恢复 Truncate 表的功能。被 Truncate的表,只要原来的空间没有被重用(即数据被覆盖),则数据都是可以恢复的。
2.3 BBED恢复
BBED(Oracle Block Browerand EDitor Tool)是Oracle 用来直接查看和修改数据文件数据的一个工具.通过此工具也可以恢复truncate的表。
2.4 GDUL恢复
gdul是一个免费的工具,由Oracle官方DBA+社群贡献。它支持多种导出格式,包括expdp和exp,并且支持ASM文件系统。此外,它支持绝大多数的列类型,并且可以在主流硬件平台上运行。
3.总结
表被truncate,解决问题的关键就是找到关键的问题,安全机制、规范的作业流程必不可少!
DeepSeek被针对,Anthropic指控三家中国AI蒸馏剽窃,马斯克硬刚“贼喊抓贼”!
别了,开源!曾对标Apache,6万Star的开源巨头MinIO不干了,宣布进入维护模式
年底了!系统稳如狗,甲方觉得我们没工作量,怎么收运维费?
才一年,64家国产数据库消失了...
眼见它起高楼,眼见高楼塌,Oracle裁撤MySQL团队,社区版危矣!
《AI数据分析之ChatBI发展与应用实践》白皮书(附下载)正式上线啦
为什么DeepSeek火之后,人们想到的是大量裁员,而不是实行上三休四?
号外!《核心系统分布式数据库选型指南》电子书(附下载)正式上线
解锁数据架构现代化密码,《实时数仓选型指南》电子书(附下载)正式上线啦