国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Truncate 表之恢復

2019-11-09 13:28:02
字體:
來源:轉載
供稿:網友

Truncate 表之恢復

1.     測試環(huán)境:

linux:172.28.145.21

DB:testdb01

2.     原理

Truncate 不會逐個清除用戶數據塊上的數據,而僅僅重置數據字典和元數據塊上的元數據(如存儲斷頭和擴展段圖)。

也就是說,此時,基本數據表并未破壞,而是被系統(tǒng)回收,等待被重新分配—因此,要恢復被truncate的數據,需要及時備份所在的數據文件。

3.     存儲過程包:

Fy_Recover_Data是利用Oracle表掃描機制、數據嫁接機制恢復TRUNCATE或者損壞數據的工具包。由純PLSQL編寫,從網上下載下來的:

 

4.     測試模擬:

創(chuàng)建表:

CREATETABLET_TRUNCATEASSELECT*FROM TAB;

Truncate 表數據:

truncatetableshiyu.T_TRUNCATE;

恢復:執(zhí)行FY_Recover_Data.SQL 存儲過程

開始恢復:執(zhí)行下面語句:

declare

     tgtowner varchar2(30);

     tgttable varchar2(30);

     datapath varchar2(4000);

     datadir varchar2(30);

     rects varchar2(30);

     recfile varchar2(30);

     rstts varchar2(30);

     rstfile varchar2(30);

     blksz number;

     rectab varchar2(30);

     rsttab varchar2(30);

     copyfile varchar2(30);

   begin

     tgtowner :='SHIYU';--table owner

     tgttable :='T_TRUNCATE'; --table name

     datapath :='/data/oradata/test01/';  --必須和T_TRUNCATE表所在的數據文件目錄相同

     datadir :='DUMP_DIR'; -oracle中目錄的名字,可以修改

     Fy_Recover_data.PRepare_files(tgtowner,tgttable, datapath,datadir, rects,recfile, rstts,rstfile, blksz);

     Fy_Recover_data.fill_blocks(tgtowner,tgttable, datadir,rects, recfile,rstts,8,tgtowner, tgtowner,rectab, rsttab,copyfile);

     Fy_Recover_data.recover_table(tgtowner,tgttable, tgtowner,rectab, tgtowner,rsttab, datadir,datadir, recfile,datadir,copyfile, blksz);

   end;

   /

    注:執(zhí)行上面的SQL產生2個表空間(2個數據文件),還有1個copy文件。

 

如下截圖:

--把恢復的數據從shiyu. TRUNCATE$$ 中插入到shiyu. TRUNCATE表(shiyu. TRUNCATE$$ 中是shiyu. TRUNCATE表truncate之前的數據)

insertintoshiyu.T_TRUNCATEselect*from shiyu.T_TRUNCATE$$;

 

這時在查詢剛才truncate掉的表

5.     收尾:

數據恢復后,把恢復時產生的2個表空間刪除,再刪除對應數據文件

 

DROPTABLESPACEFY_REC_DATAINCLUDINGCONTENTSANDDATAFILES;

 

DROPTABLESPACEFY_RST_DATAINCLUDINGCONTENTSANDDATAFILES;


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 芜湖市| 安平县| 芜湖县| 呼伦贝尔市| 镇沅| 中阳县| 阿鲁科尔沁旗| 静乐县| 翁源县| 江门市| 漯河市| 团风县| 阿巴嘎旗| 开封县| 桑植县| 汶上县| 阳谷县| 长治县| 墨脱县| 南昌市| 新和县| 海城市| 古丈县| 宕昌县| 双辽市| 凤阳县| 甘肃省| 宁陵县| 竹溪县| 通江县| 石阡县| 宾川县| 龙州县| 汕头市| 望奎县| 湖南省| 临颍县| 县级市| 盐池县| 南平市| 荔浦县|