oracle备份统计信息,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;

你可能感兴趣的:(oracle备份统计信息)