結構損壞檢查指令碼
export ORACLE_SID=DWTH
sqlplus / as sysdba <<EOF
set feedback off
set serveroutput on
declare
v_sql varchar2(4000);
v_sqlerrm varchar2(4000);
cursor cur_tab is
select dt.owner,dt.table_name from dba_tables dt
where dt.owner in ('ODS_BUFF_KKX','SGDM','ZS_OUTPUT','NOVELL_IAS','ODS_BUFF_GJHZ','EIC','ODS_UNV','SGDW','ERPPSUSER','ODS_BUFF_JJFL','ODS_ZCQSM','EPBI_SG','ODS_BUFF_JRGK','ODS_BUFF_ZDC','ODS_BUFF_TGYERP','ODS_ZHTJ_VIEW','SGODSESA','EIC_SJZX','ODS_BUFF_CWGK','ODS_BUFF','SGDC','OWB_OWNER','SGODS_JY','SGDC_DXP','NOVELL','PSDSS_DCHK','PSDSS_YXYWGKPT','PSDSS_JLSCDDPT','DATAVIEWER','YXYQ','PSDSS_MID','OMAC','EPBI','EPBI_DXP','PSDSS_SGDC','PSDSS_BUFF_SG','PSDSS_BUFF','PSDSS_SJTS','PSDSS_BUSI','SG_EESMP')
minus
(
select owner,table_name from crpt_check.crpt_check_err_log
union all
select owner,table_name from crpt_check.crpt_check_log
);
begin
dbms_output.enable(buffer_size=>null);
for cur_1 in cur_tab loop
begin
dbms_output.put_line(cur_1.owner||'.'||cur_1.table_name);
v_sql:='analyze table '||cur_1.owner||'.'||cur_1.table_name||' validate structure cascade';
dbms_output.put_line(v_sql);
execute immediate v_sql;
dbms_output.put_line(cur_1.owner||'.'||cur_1.table_name||' analyzed');
insert into crpt_check.crpt_check_log(correct_log,exec_date,owner,table_name) values (cur_1.owner||'.'||cur_1.table_name||' analyzed',sysdate,cur_1.owner,cur_1.table_name);
commit;
exception
when others then
v_sqlerrm:=sqlerrm;
dbms_output.put_line('error:'||cur_1.owner||'.'||cur_1.table_name||' not analyzed,'||sqlerrm);
insert into crpt_check.crpt_check_err_log(error_log,exec_date,owner,table_name) values ('error:'||cur_1.owner||'.'||cur_1.table_name||' not analyzed,'||v_sqlerrm,sysdate,cur_1.owner,cur_1.table_name);
commit;
end;
end loop;
end;
/
set feedback on
set serveroutput off
quit;
EOF
echo "over"
其中:
crpt_check.crpt_check_err_log、crpt_check.crpt_check_log為兩張配置表,用於檢視資料和排除資料使用
結構如下:
log varchar2(4000);
insert_date sysdate;
owner varchar2(30);
table_name varchar2(30);
sqlplus / as sysdba <<EOF
set feedback off
set serveroutput on
declare
v_sql varchar2(4000);
v_sqlerrm varchar2(4000);
cursor cur_tab is
select dt.owner,dt.table_name from dba_tables dt
where dt.owner in ('ODS_BUFF_KKX','SGDM','ZS_OUTPUT','NOVELL_IAS','ODS_BUFF_GJHZ','EIC','ODS_UNV','SGDW','ERPPSUSER','ODS_BUFF_JJFL','ODS_ZCQSM','EPBI_SG','ODS_BUFF_JRGK','ODS_BUFF_ZDC','ODS_BUFF_TGYERP','ODS_ZHTJ_VIEW','SGODSESA','EIC_SJZX','ODS_BUFF_CWGK','ODS_BUFF','SGDC','OWB_OWNER','SGODS_JY','SGDC_DXP','NOVELL','PSDSS_DCHK','PSDSS_YXYWGKPT','PSDSS_JLSCDDPT','DATAVIEWER','YXYQ','PSDSS_MID','OMAC','EPBI','EPBI_DXP','PSDSS_SGDC','PSDSS_BUFF_SG','PSDSS_BUFF','PSDSS_SJTS','PSDSS_BUSI','SG_EESMP')
minus
(
select owner,table_name from crpt_check.crpt_check_err_log
union all
select owner,table_name from crpt_check.crpt_check_log
);
begin
dbms_output.enable(buffer_size=>null);
for cur_1 in cur_tab loop
begin
dbms_output.put_line(cur_1.owner||'.'||cur_1.table_name);
v_sql:='analyze table '||cur_1.owner||'.'||cur_1.table_name||' validate structure cascade';
dbms_output.put_line(v_sql);
execute immediate v_sql;
dbms_output.put_line(cur_1.owner||'.'||cur_1.table_name||' analyzed');
insert into crpt_check.crpt_check_log(correct_log,exec_date,owner,table_name) values (cur_1.owner||'.'||cur_1.table_name||' analyzed',sysdate,cur_1.owner,cur_1.table_name);
commit;
exception
when others then
v_sqlerrm:=sqlerrm;
dbms_output.put_line('error:'||cur_1.owner||'.'||cur_1.table_name||' not analyzed,'||sqlerrm);
insert into crpt_check.crpt_check_err_log(error_log,exec_date,owner,table_name) values ('error:'||cur_1.owner||'.'||cur_1.table_name||' not analyzed,'||v_sqlerrm,sysdate,cur_1.owner,cur_1.table_name);
commit;
end;
end loop;
end;
/
set feedback on
set serveroutput off
quit;
EOF
echo "over"
其中:
crpt_check.crpt_check_err_log、crpt_check.crpt_check_log為兩張配置表,用於檢視資料和排除資料使用
結構如下:
log varchar2(4000);
insert_date sysdate;
owner varchar2(30);
table_name varchar2(30);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29802484/viewspace-2127002/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢查資料塊損壞(Block Corruption)BloC
- oracle 資料庫中壞塊概念和檢查指令碼Oracle資料庫指令碼
- RAC指令碼檢查指令碼
- 如何查詢損壞塊
- 使用dbverify檢測物理損壞
- 如何查詢和顯示網站的損壞連結?網站
- 固態硬碟損壞如何檢測?硬碟
- 記憶體檢查指令碼記憶體指令碼
- 檢查 oracle 壞塊Oracle
- 用 Python 批量檢查 sqlite/db3 檔案是否損壞(qbit)PythonSQLite
- 【SCN】Oracle檢查scn值指令碼Oracle指令碼
- Linux系統檢查指令碼Linux指令碼
- process不釋放,檢查指令碼指令碼
- 外來鍵缺索引檢查指令碼索引指令碼
- dataguard 手動切換,檢查指令碼指令碼
- 檢查備份情況的指令碼指令碼
- CVE-2016-0189 vbs指令碼引擎損壞漏洞分析指令碼
- 資料庫的常規檢查指令碼資料庫指令碼
- 巧用shell生成資料庫檢查指令碼資料庫指令碼
- 資料庫的檢查步驟指令碼資料庫指令碼
- oracle 資料庫效能健康檢查指令碼Oracle資料庫指令碼
- 每天檢查正式Server的一個指令碼Server指令碼
- Oracle效能問題檢查 - 常用查詢指令碼(final)Oracle指令碼
- Oracle表結構轉換SqlSERVER表結構 指令碼OracleSQLServer指令碼
- Oracle REDO損壞Oracle Redo
- 指令集體系結構_計算機體系結構:指令程式碼計算機
- 檢查外來鍵是否有索引的指令碼索引指令碼
- (轉)oracle 資料庫效能健康檢查指令碼Oracle資料庫指令碼
- 【Oracle】 檢查log fie sysnc 等待事件的指令碼Oracle事件指令碼
- 資料庫健康檢查 sqlplus 指令碼資料庫SQL指令碼
- 檢查CPU是否支援MMX指令的程式碼 (轉)
- 併發管理器常用的檢查指令碼指令碼
- nGrinder中快速編寫groovy指令碼01-指令碼結構指令碼
- golden gate同步的表結構修改檢查Go
- 【體系結構】SCN與checkpoint(檢查點)
- Oracle資料庫塊的物理損壞與邏輯損壞Oracle資料庫
- 資料塊損壞ORA-1578(發現損壞塊)
- 檢查儲存結構-控制、REDO日誌、表空間使用情況、資料檔案等資訊指令碼--HTML指令碼HTML