當前位置:成語大全網 - 新華字典 - Oracle統計數據的遷移

Oracle統計數據的遷移

 自從 iR 開始 可以利用DBMS_STATS對統計數據進行數據庫間的遷移 如果要遷移schema或database級別的統計數據 還需要DBA權限

  G開始 Oracle默認情況下可以自動保存最近 天的統計數據 Table級的統計數據存儲在[DBA|ALL|USER]_TAB_STATS_HISTORY視圖中 而schema database級的統計數據保存在DBA_OPTSTAT_OPERATIONS視圖中 當STATISTICS_LEVEL參數設置成ALL或TYPICAL時 Oracle會在最近壹次的統計數據收集時自動刪除舊的統計數據 也可以通過DBMS_STATS PURGE_STATS手動清楚指定時間之前的歷史數據 (統計數據的保存周期用DBMS_STATS ALERT_STATISTICS_HISTORY_RETENTION進行調整)

 記錄壹下 統計數據的導出過程

  源庫導出統計數據

 創建保存統計數據的中間表

 中間表用來存儲要遷移的統計數據 統計數據都存儲在數據字典中 所以在遷移前必須導出到壹張中間表 中間表的創建用DBMS_STATS CREATE_STAT_TABLE

 BEGIN

 DBMS_STATS CREATE_STAT_TABLE(ownname=> SYSTEM stattab=> STAT_TAB tblspace=> TOOLS );

 DBMS_OUTPUT PUT_LINE( Create table plete! );

 END;

 /

 導出統計數據到中間表

 用DBMS_STATS EXPORT_*_STATS系列方法導出統計數據 這裏演示導出壹個schema的統計數據

 BEGIN

 dbms_stats export_schema_stats(ownname=> IQUEWEB stattab=> STAT_TAB statid=> IQUEWEB_ statown=> SYSTEM );END;

 /

 將iqueweb的統計數據導出中間表system stat_tab表中

 Export表STAT_TAB

 用exp或expdp導出STAT_TAB

 expdp system/****@**** tables=(stat_tab) directory=export dumpfile=expdat dmp logfile=iqueweb_stat _e log

 將導出的expdat dmp文件傳入遠程的目標數據庫

  目標庫導入統計數據

 Import STAT_TAB

 導入傳入的expdat dmp文件 這裏註意權限 用system導入

 impdp system/****@**** tables=(stat_tab) directory=dbaexport dumpfile=expdat dmp logfile=import log

 Import 統計數據

 從STAT_TAB表中Import iquewb統計數據到數據字典 這裏要用到DBMS_STATS IMPORT_SCHEMA_STATS

 BEGIN

 dbms_stats import_schema_stats(ownname=> IQUEWEB stattab=> STAT_TAB statid=> IQUEWEB_ statown=> SYSTEM force=>FALSE);

 END;

 /

 這個導入過程是這樣的 首先會將導入的統計數據保存在DBA_OPTSTAT_OPERATIONS視圖中 同時讓數據庫應用最新的統計數據 也就是說這個Import完成後 我們因該看到iqueweb下的表應用了剛才導入的新統計數據

 查看新的統計

 確認新的統計數據是否導入

 alter session set nls_timestamp_tz_format= yyyy mm dd hh :mi:ss ;

 col start_time format a

 col end_time format a

 col operation format a

 col target format a

 set linesize

 select operation target start_time end_time from dba_optstat_operations;

 gather_database_stats(auto)? : :

  : ? :

 OPERATION? TARGET START_TIME END_TIME

 

 import_schema_stats IQUEWEB : :

  : ? :

 統計數據已經導入了 同時去看看具體的iqueweb下的表有沒有應用新的統計數據

 select table_name num_rows blocks empty_blocks avg_row_len last_ *** yzed from dba_tables where owner= IQUEWEB ;

lishixinzhi/Article/program/Oracle/201311/18490