HelloDBA [English]
搜索Internet 搜索 HelloDBABA
  Oracle技术站。email: fuyuncat@gmail.com  MSN: fuyuncat@hotmail.com   acoug  acoug 

Fy_Recover_Data ———— 用于数据恢复的PLSQL包

[English]

作者: fuyuncat

来源: www.HelloDBA.com

日期: 2012-08-14 03:56:53

分享到  新浪微博 腾讯微博 人人网 i贴吧 开心网 豆瓣 淘宝 推特 Facebook GMail Blogger Orkut Google Bookmarks

Fy_Recover_Data是利用Oracle表扫描机制、数据嫁接机制恢复TRUNCATE或者损坏数据的工具包。由纯PLSQL编写。
关于其实现原理和使用示例请参考:移花接木————利用Oracle表扫描机制恢复被Truncate的数据。
包中过程、函数描述如下:

  -- 更新记录:                                                          

  •   -- 15/08/2012, Fuyuncat:                                                ---
  •   --   1. Fixed Bug in Clean_Up_Ts (Not change TS status correctly)        ---
  •   --   2. Added Exception Handle when Restore Data                        ---
  •   --   3. Added Parameter in recover_table,                               ---
  •   --            to balance Fault Tolerance and Performance                ---
  •   --                                                                      ---
  •   -- 16/08/2012, Fuyuncat:                                                ---
  •   --   1. Enhanced corrupted block processing, get rows as possilbe       ---
  •   --                                                                      ---
  •   -- 17/08/2012, Fuyuncat:                                                ---
  •   --   1. Omit the LOB columns raised ORA-22922 exception                 ---
  •   --                                                                      ---
  •   -- 20/08/2012, Fuyuncat:                                                ---
  •   --   1. Omit the LOB columns via db link                                ---
  •   --                                                                      ---
  •   -- 22/08/2012, Fuyuncat:                                                ---
  •   --   1. Updated logging and tracing interface                           ---
  •   --                                                                      ---
  •   -- 19/02/2014, Fuyuncat:                                                ---
  •   --   1. Temp Restore and Recover tablespace & files                     ---
  •   --      will be created on temp folder                                  ---
  •   --   2. Handle tablespace has files located at diff folders             ---
  •   --   3. Handle tables on ASM                                            ---
  •   --                                                                      ---
  •   -- 05/03/2014, Fuyuncat:                                                ---
  •   --   1. Fixed bugs                                                      ---
  •   --   2. Use existing dirctory if applicable                             ---
  •   --   3. Recover data from offline files                                 ---
SQL代码
  1. create or replace package FY_Recover_Data is  
  2.   ---------------------------------------------------------------------------  
  3.   -- WWW.HelloDBA.COM                                                     ---  
  4.   -- Created By: Fuyuncat                                                 ---  
  5.   -- Created Date: 08/08/2012                                             ---  
  6.   -- Email: Fuyuncat@gmail.com                                            ---  
  7.   -- Copyright (c), 2014, WWW.HelloDBA.COM All rights reserved.           ---  
  8.   -- Latest Version: http://www.HelloDBA.com/Download/FY_Recover_Data.zip ---  
  9.   --                                                                      ---
  10.   ---------------------------------------------------------------------------  
  11.   
  12.   type r_cursor is REF CURSOR;  
  13.   type o_fileprop is record (  
  14.    file# number,  
  15.    status$ number);  
  16.   type t_fileprops is table of o_fileprop;  
  17.     
  18.   /************************************************************************  
  19.   ** recover truncated table  
  20.   **  
  21.   ** tgtowner: Owner of Target Table to be recovered;  
  22.   ** tgttable: Name of Target Table to be recovered;  
  23.   ** datapath: Absolute path of Data Files;  
  24.   ** fbks: block number to be filled in recovery table;  
  25.   ** offline_files: Offline data files that data should be recovered from;  
  26.   **    foramt: full_path_file1;full_path_file2...;  
  27.   ************************************************************************/  
  28.   procedure recover_truncated_table( tow varchar2,   
  29.                                      ttb varchar2,  
  30.                                      fbks number default 1,   
  31.                                      tmppath varchar2 default null,  
  32.                                      offline_files varchar2 default null);  
  33.   
  34.   /************************************************************************  
  35.   ** dump a block in raw, for testing  
  36.   **  
  37.   ** hdfile: Data file name;  
  38.   ** srcdir: data file directory  
  39.   ** blknb: block number to be dumped;  
  40.   ** blksz: block size;  
  41.   ************************************************************************/  
  42.   procedure dump_seg_block_raw( hdfile varchar2,  
  43.                                 srcdir varchar2,   
  44.                                 blknb number,  
  45.                                 blksz number default 8192);  
  46.   /************************************************************************  
  47.   ** Set Initial parameters  
  48.   **  
  49.   ** tracing: trace the process for debug;  
  50.   ** logging: show logging information;  
  51.   ** repobjid: replace the data object id wiht the recover table data object id;  
  52.   ************************************************************************/  
  53.   procedure init_set( tracing boolean default true,  
  54.                       logging boolean default true,  
  55.                       repobjid boolean default true);  
  56. end FY_Recover_Data;  

点击此处:下载源代码

--- Fuyuncat ---

Top

Copyright ©2005,HelloDBA.Com 保留一切权利

申明
by fuyuncat