一、清理日常備份的數(shù)據(jù)表
1、背景:系統(tǒng)表空間占用率已經(jīng)超過90%。于是做了一個相關的垃圾數(shù)據(jù)進行清理的工作。
2、查詢需清理表清單:因為日常在數(shù)據(jù)庫操作的時候,經(jīng)常會進行一些表的備份。咨詢前任系統(tǒng)管理員,他們在備份表的時候一般是在原表上加日期或者使用bak進行標識。于是使用
select owner, num_rows * avg_row_len,table_name from dba_tables where table_name like '%bak%' and regexp_like(table_name,'/d+') and (table_name not like 't_im_inventory%' and table_name not like 'vt%' and table_name not like 'ncm%' and table_name not like 't_hr_schm%' and table_name not like 'sys%' and owner='jingya');
查詢出相關可能性的表占用的空間,排除其他可能表之后,合計占用空間接近100g。
3、測試:在測試系統(tǒng)中將已經(jīng)初步確定的表進行刪除,進行相關業(yè)務的測試。沒有問題。
4、正式操作:依照公司的變更流程,對正式系統(tǒng)進行操作;
二、誤刪除表的恢復
在做完一的工作之后,業(yè)務運行了2天無故障,第三天的時候,財務報修說財務合并報表自動抵消項生成分錄少一項。分析后確定是誤刪除了一張報表使用到的數(shù)據(jù)表。需要對該表進行恢復。
恢復的代碼如下:
--1 從閃回中查詢誤drop的表select object_name, original_name, partition_name, type, ts_name, createtime, droptime from recyclebin where original_name = 't_csl_itemdataentry001'; --2 恢復到刪除前flashback table bin$ap6v8ohdaalgu8cozgebog==$0 to before drop; --3 查詢數(shù)據(jù)select count(*) from t_csl_itemdataentry001
確定問題解決。
更多信息請查看IT技術專欄