TRUNCATE恢复

利用 FY_Recover_Data 包实现 truncate 表数据恢复

装备工作

  • 执行 FY_Recover_Data.pck (sys用户)
  • 查找filename 适用于定位具体的数据文件
    1
    2
    3
    4
    5
      select b.file_name
    from dba_extents a, dba_data_files b
    where segment_name = '删除表'
    and a.owner = '表用户'
    and a.file_id = b.file_id;
  • 找临时目录 给oracle授权

模拟truncate恢复

  • 默认命令,该命令默认使用 /tmp临时目录,查找表空间所有文件
    1
    exec Fy_Recover_data.recover_truncated_table('表用户','删除表',1,null,null);
  • 指定目录以及表空间文件
    1
    2
    3
    4
    5
    exec Fy_Recover_data.recover_truncated_table('表用户','删除表',1,'D:\db\oradata\recover','D:\DB\ORADATA\NIUEY\USERS01.DBF');
    #查看恢复的数据
    select* from dba_tables a where a.tablespace_name='FY_REC_DATA' or tablespace_name='FY_RST_DATA';
    #一般会恢复到
    select * from 用户.表$$;