ablog

不器用で落着きのない技術者のメモ

RDS Oracle で Statspack を使う

RDS Oracle で Statspack を使えるようにする手順をメモ。

オプショングループを作成する

  • AWSマネジメントコンソールで RDS を選択する。
  • [オプショングループ]-[グループの作成]を選択し、任意の名前と説明を入力し、エンジンは oracle-eeを選択して、メジャーバージョンを選択する。

  • 作成したオプショングループを選択して[オプションの追加]を選択する。

  • STATSPACK を選択して[オプションの追加]を選択する。

DBインスタンスを作成する

  • DBインスタンス作成時に作成したオプショングループを選択する。

Statspack で定期的にスナップショットを取得するよう設定する

  • perfstat ユーザーのパスワードを設定してログインできるようにする。
$ sqlplus awsuser/******@orcl1210.*******.ap-northeast-1.rds.amazonaws.com:1521/ORCL
SQL> ALTER USER perfstat IDENTIFIED BY <new_password> ACCOUNT UNLOCK;
  • perfstat ユーザーでログインする
$ sqlplus perfstat/******@orcl1210.*******.ap-northeast-1.rds.amazonaws.com:1521/ORCL
  • 1時間間隔で Statspack のスナップショットを取得するよう設定する。
SQL> variable jn number;
SQL> execute dbms_job.submit(:jn, 'statspack.snap;',sysdate,'trunc(SYSDATE+1/24,''HH24'')');
SQL> commit; 

Statspack レポートを出力する

  • スナップショットを確認する。
SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
SQL> select snap_id, snap_time from stats$snapshot order by 1;

   SNAP_ID SNAP_TIME
---------- -------------------
	 1 2017-12-21 09:47:04
	 2 2017-12-21 09:52:15
	 3 2017-12-23 01:13:53
	 4 2017-12-23 01:18:55
	 5 2017-12-23 01:26:35
	 6 2017-12-23 01:31:39
	 7 2017-12-23 04:07:37
	 8 2017-12-23 04:13:04
	 9 2017-12-23 05:35:21

9 rows selected.
  • レポートを出力する
SQL> exec RDSADMIN.RDS_RUN_SPREPORT(8,9);

  • 「spreport」でフィルタして、「ダウンロード」をクリックして Statspack レポートをダウンロードする。