Oracle

  (最終更新日:2017.07.14)

【Oracle】統計情報のバックアップとリカバリの方法

Oracleの統計情報をユーザー単位でバックアップする方法と、バックアップファイルからリカバリする方法です。バックアップには旧来のexpコマンドを利用します。(expdpではないです)

今回は対象のDBユーザーを dbhoge とし、保存用のテーブルを SAVE_STATS_HOGE としています。

またテーブル単位でのバックアップとインポートは下記で紹介中です。



全ての統計情報をバックアップする

全ての統計情報をバックアップし、ファイルとして出力します。

# su - oracle
$ sqlplus sys as sysdba

SQL> exec DBMS_STATS.DROP_STAT_TABLE (ownname => 'DBHOGE',stattab => 'SAVE_STATS_HOGE');
SQL> exec DBMS_STATS.CREATE_STAT_TABLE('DBHOGE', 'SAVE_STATS_HOGE');
SQL> exec DBMS_STATS.EXPORT_SCHEMA_STATS('DBHOGE', stattab =>'SAVE_STATS_HOGE');
SQL> quit

$ exp dbhoge/dbhoge_pass@orcl file=>(gzip > /tmp/stat_table.exp.gz ) tables=SAVE_STATS_HOGE statistics=none

これで stat_table.exp.gz というバックアップファイルが出力されます。

バックアップファイルからインポートする

出力されたバックアップファイルから統計情報をインポートします。

# su - oracle
$ sqlplus sys as sysdba

// 既にバックアップ用に作成された統計情報テーブルが存在していれば事前に削除
SQL> exec DBMS_STATS.DROP_STAT_TABLE (ownname => 'DBHOGE',stattab => 'SAVE_STATS_DBHOGE');
SQL> quit

// impコマンドから統計情報テーブルをインポート
$ imp dbhoge/dbhoge_pass@orcl file=<(gunzip -c /tmp/stat_table.exp.gz) IGNORE=Y FULL=Y

$ sqlplus sys as sysdba

// バックアップ用の統計情報テーブルから統計情報をインポート(事前に削除してから)
SQL> EXECUTE DBMS_STATS.DELETE_SCHEMA_STATS('DBHOGE');
SQL> exec DBMS_STATS.IMPORT_SCHEMA_STATS(ownname => 'DBHOGE' ,stattab => 'SAVE_STATS_DBHOGE');
SQL> quit

これで完了です。

スポンサーリンク
スポンサーリンク

関連記事

  1. Oracle

    Oracleで統計情報を別のユーザー(スキーマ)に移行する方法

    Oracleでは統計情報のバックアップやインポートが可能ですが、別のユ…

  2. Oracle

    Impdp時にtablesを使うとファンクションやストアドは作成されない

    OracleのDataPumpコマンド『impdp』の利用時に tab…

  3. Oracle

    Oracleのプロファイルを参照作成(コピー)するなら類似作成が便利

    Oracleでパスワードの有効期限などを独自に設定したプロファイルを作…

  4. Oracle

    アーカイブログを削除する方法

    アーカイブログ・モードの時にガンガン作成されるアーカイブログ・…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

最近の記事

  1. さくらのVPSにCentOS 5をインストールする方法
  2. PHP PhantomJSでFatal error: Unc…
  3. 【Oracle】DataPumpの対話式コマンドモードを抜け…
  4. CentOS7のPHP5.6にPhpSpreadsheetを…
  5. Azure仮想マシン(CentOS 7)のStandardデ…
PAGE TOP