...

Oracle Direct 無償支援サービス ヒアリング・シート利用手順

by user

on
Category: Documents
0

views

Report

Comments

Transcript

Oracle Direct 無償支援サービス ヒアリング・シート利用手順
パフォーマンス・クリニック・サービス
パフォーマンス診断ツール Statspackの使い方
日本オラクル株式会社
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提
供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項
は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないた
め、購買決定を行う際の判断材料になさらないで下さい。
オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の
裁量により決定されます。
Oracleは、米国オラクル・コーポレーション及びその子会社、関連会社の米国及びその他の国における登録商標
または商標です。他社名又は製品名は、それぞれ各社の商標である場合があります。
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
2
はじめに
サービスのご利用にあたって
• パフォーマンス・クリニックを実施される際には、
ヒアリングシートおよびStatspackレポートの情報が必要になります。
• Statspackについて
– 可能であれば、1日分のレポートを取得してください。
(難しければ、それより少ない回数でも分析可能です)
– スナップショットの取得間隔は60分で取得し、
間にデータベースの再起動を行わないでください
• データベースの設定について
– 以下の初期化パラメータを変更している場合にはご注意ください。
• 9iR1までのバージョンの場合は、初期化パラメータTIMED_STATISTICSがTRUEに
設定されていることをご確認ください。
• 9iR2以降のバージョンでは、初期化パラメータSTATISTICS_LEVELがTYPICALに
設定されていることをご確認ください。
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
3
Statspack概要
Statspackとは
Statistics Package
パフォーマンス・チューニングに役立つ情報を
レポートという形で提供するツール
Statspackを利用すると、ある期間で行われた処理の統計情報を取得できます
メモリの
ヒット率
トランザクション
の傾向
データベースの
待機状況
上記のような情報を利用して性能劣化の原因を分析します
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
4
Statspack概要
Statspackとは
Statspackでは、まずある1時点での累積統計情報を取得します。
(これをスナップショットとよびます)
その後、ある2時点で取得した内部統計データ(スナップショット)の差分を元に、
その間のパフォーマンス統計データを結果レポートに出力します。
累
積
統
計
情
報
A時点から
B時点までの
パフォーマンス
統計データ
スナップ
ショットA
A時点
スナップ
ショットB
B時点
経過時間
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
5
Statspack概要
スナップショットとは
• 「スナップショット」とは
– ある時点に収集されたパフォーマンス統計データの集合です
これらの情報は、内部表(V$ビュー)から取得されます
– 取得される情報は、スナップショットのレベルによって異なります。
パフォーマンス・クリニックでは、「Level5 (デフォルト値) 」のスナップショットを取得して
ください。
レベル
基本統計
情報
アドバイス
情報
SQL
統計情報
SQL
詳細情報
セグメント
統計情報
level 0
〇
〇
level 5
〇
〇
〇
level 6
〇
〇
〇
〇
level 7
〇
〇
〇
〇
〇
level 10
〇
〇
〇
〇
〇
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
ラッチ
統計情報
〇
6
Statspack概要
スナップショットの取得期間
【よくあるご質問】
スナップショットはどのくらいの間隔で取得するのがいいでしょうか?
60分
スナップショット
60分
スナップショット
60分
スナップショット
60分
スナップショット
スナップショット
【回答】
30分~1時間程度の間隔で、常時取得をするのがよいでしょう。
長すぎると、統計データが平均化されて、特定の問題が検知しにくくなります。
また、問題発生時のみ取得しても、状況判断がしにくいため、「通常の状態」も取得しておくことをお勧めしま
す。 保存期間を決めて古くなったものは定期的に削除するようにしてください。
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
7
Statspack概要
スナップショット取得時の負荷について
【よくあるご質問】
Statspack自体が負荷になることはないのでしょうか?
【回答】
Statspackの実態はプロシージャと実行スクリプトですので、インストールしたのみで、サーバの負荷に影響を
与えることはありません。またスナップショットの取得も、通常はそれほど負荷がかかることはありません。
(Level10のスナップショットでは負荷がかかる可能性があります)
スナップショット取得時には、内部表(V$ビュー)から情報を取得します
この際、主にCPUリソースを使用するため、
CPU負荷の高い時間を避けるなどの工夫が必要です
負荷高
負荷少
• 高負荷な時間を挟んで取得
• レポートの作成は負荷が低い時に実行
スナップショット
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
負荷少
スナップショット
レポート作成
8
Statspackのインストール
Statspackの
インストール
スナップ
ショット
の取得
Statspack
レポート
の作成
インストール・ガイド
• Statspackのインストール・ガイドとしては以下のものがあります
– マニュアル
「Oracle9i データベース・パフォーマンス・チューニング・ガイド
およびリファレンス リリース2(9.2)」
21. Statspackの使用方法
http://otndnld.oracle.co.jp/document/oracle9i/920/generic/
server/J06248-02.pdf
自動診断機能の強化に伴い、10g以降のマニュアルからはStatspackの内容に関
する説明が省かれています。
Statspackは10g以降でも9iR2のものと変わりませんので、上記のマニュアルをご確
認ください。
– SPDOC.TXTファイル
• ORACLE_HOME/rdbms/adminに用意されています
• Statspackパッケージに関する説明(英語)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
9
Statspackのインストール
Statspackの
インストール
スナップ
ショット
の取得
Statspack
レポート
の作成
インストール作業を行う前に
• 既にStatspackがインストールされている場合はページ10~ページ12の
作業は行わずに、ページ13「Statspackの実行」へ進んでください
※Statspackが既にインストールされている状態で再度spcreate.sqlを実行して
インストールを行うとエラーが発生します
• 既にStatspackがインストールされているかどうかの確認は、
以下の方法で「PERFSTAT」ユーザーが存在しているか確認してください
存在する場合は既にインストールがされています
SQL*PLUSに管理者権限を持つユーザーでログインし、以下のSQLを実行
SQL>
SELECT user_id, username FROM dba_users
WHERE username = ‘PERFSTAT’;
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
10
Statspackの
インストール
Statspackのインストール
USERS表領域
インストール前の準備
• Statspack情報格納用の表領域を作成
例)「Tools」表領域を作成します
スナップ
ショット
の取得
Statspack
レポート
の作成
Tools表領域
ファイルのパスを指定
SQL> CREATE TABLESPACE tools
DATAFILE ‘D:¥oracle¥・・・¥tools.dbf’ SIZE 500M;
【よくあるご質問】
既存の表領域を使っても良いのでしょうか?
【回答】
はい、可能です。ただし管理上の理由から、ユーザーデータと分離することをお勧めします。
専用の領域を用意しておけば、不要になったときに、領域をまとめて削除することが可能です。
(既存の表領域を使う場合、SYSTEM表領域を指定しないでください。
SYSTEM表領域を指定すると、インストールエラーで終了します)
【よくあるご質問】
領域はどの程度を見積もればよいですか?
【回答】
Statspackをインストールするには、最低約64MBが必要です。
スナップショット保存用に必要な領域のサイズは、スナップショットの回数、データベースの処理量などによって異なりますが、
まずは300MB~500MB程度を用意しておくとよいでしょう。
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
11
Statspackのインストール
Statspackの
インストール
スナップ
ショット
の取得
Statspack
レポート
の作成
インストール・スクリプトの実行
• スクリプトを実行してStatspackをインストールします
– スクリプトはデータベースのインストール時に配布済みです
ORALCE_HOME/rdbms/admin/spcreate.sql
• インストール手順
– SQL*PLUSにSYSDBA権限を持つユーザーでログインします
– spcreate.sqlを実行します
SQL> connect / as sysdba
SQL> @?/rdbms/admin/spcreate.sql
– 対話型のスクリプトが実行されるので、指示に従って必要な項目を入力します
(詳細は次ページ)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
12
Statspackの
インストール
Statspackのインストール
スナップ
ショット
の取得
Statspack
レポート
の作成
インストール・スクリプトの実行
• Statspackのインストール・スクリプトを実行すると、Statspack用のユーザーとして
「PERFSTAT」が自動的に作成されます
• PERFSTATユーザーへの設定項目として、以下の項目を入力します
– PERFSTSTユーザーのパスワード
– デフォルト表領域
– 一時表領域
Choose the PERFSTAT user's password
perfstat_passwordに値を入力してください: ********
PERFSTATユーザーのパスワード
を設定
Choose the Default tablespace for the PERFSTAT user
default_tablespaceに値を入力してください: tools
Choose the Temporary tablespace for the PERFSTAT user
temporary_tablespaceに値を入力してください: temp
p10で作成した
表領域名を入力
一時表領域を指定
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
13
Statspackの
インストール
スナップショットの取得
スナップ
ショット
の取得
Statspack
レポート
の作成
• パフォーマンス・クリニックでは、一日分のStatspackレポートを分析することにより、シ
ステムのピークやボトルネックを把握することが可能です
• そのため、パフォーマンスクリニックを実施する際には、定期的に取得された複数のス
ナップショットが必要です。ここでは、スナップショットを取得する方法として以下の二
つの方法をご案内します
– スナップショット取得プロシージャを利用して手動で取得する方法
– ジョブを作成して自動的に取得する方法
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
14
Statspackの
インストール
スナップショットの取得
スナップ
ショット
の取得
Statspack
レポート
の作成
プロシージャによる手動取得
• PERFSTATユーザーで、スナップショット取得プロシージャ( statspack.snap )を
実行して、スナップショットを取得します。
SQL> connect PERFSTAT/********
SQL> execute statspack.snap
• 取得したスナップショットは、stats$snapshot表で確認することが可能です。
SQL> select snap_id,to_char(snap_time,‘yy-mm-dd hh24:mi:ss’) snap_time,
snap_level from stats$snapshot order by snap_id;
SNAP_ID SNAP_TIME
SNAP_LEVEL
---------- ----------------- ---------1 13-06-06 16:00:04
5
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
15
Statspackの
インストール
スナップショットの取得
スナップ
ショット
の取得
Statspack
レポート
の作成
ジョブによる自動取得
• ジョブとは
– ジョブとは、実行する必要がある内容(処理)と
実行時期(スケジュール)の組合せのことです。
ジョブを作成することにより、処理を
スケジュールに従って自動実行することが可能です。
スナップショット
10:00
スナップショット
11:00
• ジョブを作成する際には、以下の例を参考にして、
job_queue_processes初期化パラメータの値が0以上であることを確認してください。
※ job_queue_processesが0だと、ジョブが実行されません
SQL> show parameter job_queue_processes
NAME
TYPE
VALUE
------------------------------------ ----------- -------------------job_queue_processes
integer
1000
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
16
Statspackの
インストール
スナップショットの取得
スナップ
ショット
の取得
Statspack
レポート
の作成
ジョブによる自動取得
• ジョブの作成
– spauto.sqlスクリプトを実行すると、スナップショットを毎時取得するジョブが作成されます。
【perfstatユーザで下記を実行】
SQL> @?/rdbms/admin/spauto.sql
Job number for automated statistics collection for this instance
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作成したジョブの
JOBNO
---------番号を確認できます
44
0以上であることを
確認してください
Job queue process
~~~~~~~~~~~~~~~~~
NAME
TYPE
VALUE
------------------------------------ ----------- -----------------------------job_queue_processes
integer
1000
Next scheduled run
次に実行される日時が
~~~~~~~~~~~~~~~~~~
表示されます
JOB NEXT_DAT NEXT_SEC
---------- -------- -----------------------44 13-06-06 16:00:00
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
17
Statspackの
インストール
スナップショットの取得
スナップ
ショット
の取得
Statspack
レポート
の作成
ジョブによる自動取得
• ジョブによって取得されたスナップショットは、stats$snapshot表で確認できます
【perfstatユーザで下記を実行】
SQL> select snap_id,to_char(snap_time,’yy-mm-dd hh24:mi:ss’) snap_time,
snap_level from stats$snapshot order by snap_id;
SNAP_ID
---------10
11
12
13
SNAP_TIME
SNAP_LEVEL
----------------- ---------13-06-07 11:00:01
5
13-06-07 12:00:03
5
13-06-07 13:00:04
5
13-06-07 14:00:04
5
注)スナップショットを大量に取得すると、その分必要な領域が増加します。
そのため、古くなったスナップショットを削除するなど、
必要に応じて取得したスナップショットのメンテナンスを行ってください。
(スナップショットの削除はp21をご参考ください)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
18
Statspackの
インストール
スナップショットの取得
スナップ
ショット
の取得
Statspack
レポート
の作成
ジョブによる自動取得
• 目的のStatspackを取得した後はジョブを削除する必要があります
– 注)ジョブは明示的に削除や停止しない限り、動き続けています
• ジョブの確認
【perfstatユーザで下記を実行】
SQL> col 'what' format a20
SQL> select job,what where what='statspack.snap;';
JOB WHAT
---------- -------------------44 statspack.snap;
ジョブを削除する場合には
この番号を使用します
• ジョブの削除
上で確認したジョブ
番号を指定します
SQL> EXECUTE DBMS_JOB.remove( 44 );
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
19
Statspackの
インストール
レポートの作成
スナップ
ショット
の取得
Statspack
レポート
の作成
• PERFSTATユーザーで、レポート作成スクリプトを実行します
– スクリプトはデータベースインストール時に作成されています
ORACLE_HOME/rdbms/admin/spreport.sql
取得済みスナップショット
の一覧が
表示されます
SQL> connect PERFSTAT/********
SQL> @?/rdbms/admin/spreport.sql
Instance
DB Name
Snap Id
Snap Started
Level Comment
------------ ------------ --------- ----------------- ----- -------------------orcl
ORCL
9 07 Jun 2013 10:00
5
10 07 Jun 2013 11:00
5
11 07 Jun 2013 12:00
5
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 10
レポート期間の開始/終了の
Begin Snapshot Id specified: 10
Snap Idを指定します
Enter value for end_snap: 11
End
Snapshot Id specified: 11
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
Enter value for report_name: sp_10_11
レポートの名前を指定します。
指定しない場合、デフォルト値になります
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
20
レポートの作成
Statspackの
インストール
スナップ
ショット
の取得
Statspack
レポート
の作成
• SQL*Plusを起動したディレクトリ直下にStatspackレポートが作成されます
[oracle@xxxx ~]$ ls
sp_10_11.lst
• 前スライドの手順を繰り返して
必要な分だけレポートを作成し、
それらのレポートをご送付ください
結果レポート例
(テキスト形式)
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
21
Statspackのメンテナンス
不要になったスナップショットの削除
• スナップショット・データを削除する場合
– インストール時に作成済みのsppurge.sqlスクリプトを実行
ORACLE_HOME/rdbms/admin/sppurge.sql
SQL> connect PERFSTAT/********
SQL> @?/rdbms/admin/sppurge.sql
Enter value for losnapid: 1
Enter value for hisnapid: 5
• 全スナップショット・データをまとめて削除する場合
– インストール時に作成済みのsptrunc.sqlスクリプトを実行
ORACLE_HOME/rdbms/admin/sptrunc.sql
SQL> connect / as sysdba
SQL> @?/rdbms/admin/spdrop.sql
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
22
Statspackのメンテナンス
Statspackのアンインストール
• Statspackのアンインストールを行うケース
– 環境にStatspackが不要になった場合
– インストールに失敗し、やり直したい場合
• アンインストール・スクリプトを実行
– スクリプトはデータベースインストール時に作成済み
ORACLE_HOME/rdbms/admin/spdrop.sql
SQL> connect / as sysdba
SQL> @?/rdbms/admin/spdrop.sql
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
23
Copyright © 2016 Oracle and/or its affiliates. All rights reserved. |
24
Fly UP