非本番システムでのシャーディング・アドバイザの実行

稼働中の本番システムへの影響を最小限に抑えるには、本番システムとは別のサーバーに配置されたデータベース・スキーマおよびワークロードのコピーに対して、シャーディング・アドバイザを実行します。

稼働中の本番システムと同様の結果を得るために、Oracle Data Pumpユーティリティを使用して本番データベースのスキーマおよびワークロードをエクスポートし、別のサーバーにコピーできます。その後、インポートされたスキーマに対してシャーディング・アドバイザを実行できます。

データベース・スキーマおよびシステム表のみをエクスポートします。実際のデータをエクスポートする必要はありません。

次の手順では、例としてHRスキーマを使用します。

ソース(本番)データベース・サーバーで次のステップを実行します。

  1. データ・ポンプ・エクスポートを使用してスキーマをエクスポートします。
    > expdp system/password SCHEMAS=HR DIRECTORY=HR_DIR CONTENT=METADATA_ONLY
     DUMPFILE=hr_metadata.dmp LOGFILE=hr_exp.lst
  2. 自動ワークロード・リポジトリ(AWR)のスナップショットをエクスポートします。
    SQL> @$ORACLE_HOME/rdbms/admin/awrextr.sql

ターゲット・データベース・サーバーで次のステップを実行します。

  1. ダンプ・ファイルをソースからターゲットにコピーします。

    たとえば、ダンプ・ファイルを/scratch/dumpにコピーします。

  2. スキーマに対してシャーディング・アドバイザを実行できるユーザーを作成します。
    SQL> CREATE USER hr IDENTIFIED BY password;
  3. データ・ポンプ・インポートが参照できるダンプ・ファイル・ディレクトリ変数を作成(または置換)します。
    SQL> CREATE DIRECTORY HR_DIR AS '/scratch/dump'
    
    SQL> CREATE OR REPLACE DIRECTORY  HR_DIR AS '/scratch/dump'
  4. スキーマをインポートします。
    > impdp system/password DIRECTORY=HR_DIR DUMPFILE=hr.dmp LOGFILE=imp.lst SCHEMAS=HR
  5. AWRデータをロードします。
    SQL> @$ORACLE_HOME/rdbms/admin/awrload.sql
  6. ターゲットの非本番のデータベースのコピーに対して、作成したユーザーでシャーディング・アドバイザを実行できるようになりました。
    > gwsadv –u hr –p password –c -awr_snap_begin begin_timestamp –awr_snap_end end_timestamp -w