Oracle 9i统计信息备份与恢复

统计信息备份及还原

一、备份生产库Siebel用户的统计信息:

 

      创建一个统计信息实体表CTZJ_STAT_BAK

Execute DBMS_STATS. create_stat_table(ownname=>'PERFSTAT',stattab=>'CTZJ_STAT_BAK', tblspace =>'PERFSTAT');

 

     统计信息导出至实体表

Execute  DBMS_STATS.export_schema_stats(ownname =>'SIEBEL',stattab =>'CTZJ_STAT_BAK', statid =>’N1’,statown=>'PERFSTAT');

 

导出实体表

Exp perfstat/perf1206stat@CMPR2 tables=CTZJ_STAT_BAK file= CTZJ_STAT_BAK.dmp log= CTZJ_STAT_BAK_export.log

 

二、BC库启动统计信息更新任务:

Execute DBMS_STATS.gather_schema_stats(ownname => 'SIEBEL',options => 'GATHER STALE',estimate_percent => 10,method_opt => 'for all columns size auto',cascade=>true,degree=>12,stattab=>'CTZJ_STAT',statown=>'PERFSTAT',statid=>’N1’);

 

三、BC库上的分析任务完成(按9号晚上12点前能够完成考虑),导出Siebel用户的统计信息:

 

创建一个统计信息实体表CTZJ_STAT_BC_BAK

Execute DBMS_STATS. create_stat_table(ownname=> ' PERFSTAT ' , stattab=> ' CTZJ_STAT_BC_BAK ' , tblspace => ' PERFSTAT ' )

 

     统计信息导出至实体表

Execute  DBMS_STATS.export_schema_stats(ownname =>'SIEBEL', stattab =>'CTZJ_STAT_BC_BAK', statid =>’N1’,statown=>'PERFSTAT');

 

导出实体表

Exp perfstat/perf1206stat@CMPR2 tables=CTZJ_STAT_BC_BAK file=CTZJ_STAT_BC_BAK.dmp log= CTZJ_STAT_BC_BAK_export.log

 

四、BC库统计信息导入到生产库:

Imp perfstat/perf1206stat@CMPR2 tables=CTZJ_STAT_BC_BAK file= CTZJ_STAT_BC_BAK.dmp log= CTZJ_STAT_BC_BAK_import.log ignore=y

 

update perfstat.CTZJ_STAT_BC_BAK set c5='SIEBEL';

 

Execute  DBMS_STATS.import_schema_stats

(ownname=>'SIEBEL',stattab=>'CTZJ_STAT_BC_BAK',statid=>’N1’, statown=>'PERFSTAT', no_invalidate=>true );

 

五、如果有执行计划异常,grant授权也未能生效的,将语句相关表的统计信息从备份导回:

 

select distinct('EXEC DBMS_STATS.IMPORT_TABLE_STATS(OWNNAME=>'||''''||object_owner||''''||','||'TABNAME=>'||''''||object_name||''''||','||'STATOWN=>'||''''||'PERFSTAT'||''''||','||'STATTAB=>'||''''||'CTZJ_STAT_BAK'||''''||','||'CASCADE=>TRUE'||','||'STATID=>''N1'''||','||'no_invalidate=>true'||')'||';') from v$sql_plan where object_owner='SIEBEL' and hash_value=&hash_value;


请使用浏览器的分享功能分享到微信等