Oracleでは統計情報のバックアップやインポートが可能ですが、別のユーザー(スキーマ)のDBに入れるとなると正攻法では不可となっていました。例えば本番ではユーザー hoge に対して、開発用DBでは hoge_deve になってる場合に統計情報を移行したいというシチュエーションです。
そこで今回、いろいろ試行錯誤してみたら上手く移行できたのでその方法をメモ的に残しておきたいと思います。
ただあくまで「開発環境などへの移行目的」として紹介していますので、本番での利用はおすすめしません。。。
統計情報をエクスポートする
まずは元DBから統計情報をエクスポートします。
統計情報を格納したテーブルからエクスポートします。
統計情報をインポートする
続いて移行先のDBサーバにログインして統計情報をインポートします。
先ほど取得したバックアップは事前にアップロードしといてください。
続いてSQLコマンドで統計情報を仮インポートしているテーブルのデータをアップデートしておきます。これが異なるユーザーに移行する際に必要な作業です。
あとは仮テーブルから統計情報をインポートします。
これで完了です。
無事に移行できたかどうか・・・・ 統計情報の状況を確認するSQLで確認してみてください。
では。