2016年3月22日火曜日

Oracle Database 12cでおさえておきたいパラメーター - パート1

原文:Parameter Recommendations for Oracle Database 12c - Part I 

数週間前に、パラメーター設定(隠しパラメーターを含む)に関する記事を書いたのですが、社内の議論に基づき(ちなみにまだ議論は続いています)その記事は削除し、内容を分けて書くことにしました。内容の一部についてはオプティマイザチームで担当し、記事が投稿され次第私のほうでもアップデートを投稿していきます


はじめに

まずご注意いただきたいのは、下記のパラメーターのリストは基本的に私の個人的な経験に基づくものです。いくつかはオラクルのサポートによって公式に推奨されてもいます。必ず適切な手法でテストを行うようにしてください
我々としてはSQL Performance Analyzerを使ってこれらのパラメーターの変更による影響をテストすることを強くおすすめします。


この投稿内容をどう読むべきか?

「誰かが行った」とか「誰かがブログ(このブログも含みます!)で書いていた」とか「わが国には世界的にも優秀なチューニングエキスパートがいるから」などといった理由で、盲目的にこれらの隠しパラメーター(アンダースコアパラメーター)をセットしては絶対にいけません。信頼すべきは、オラクルのサポート(MOS Noteに書かれている内容)や、オラクルの公式ホワイトペーパーや、皆さんの環境を良く知っていて長く一緒に仕事をしているサポートエンジニアやコンサルタントがいる場合はそういった人々です。
.

重要なパラメーター設定
    • _kks_obsolete_dump_threshold
      • これは何?
        • カーソルシェアリングの診断を改善するためにOracle 12.1.0.2で導入された改良で、親カーソルがN回無効になった際に無効な親カーソルとその子カーソルの情報をダンプするというものです
      • 問題点:
        • カーソルの無効化によりトレースファイルが巨大キノコのように大きくなる
      • 解決法:
      • パッチ:
        • DB BP 12.1.0.2.160216に修正が含まれています
        • 12.1.0.2.13DBEngSysandDBIMに対する修正が作成されています
        • 2016年2月13日以降個別パッチが出ていますが、これはLinuxのみで、また12.1.0.2(パッチ無し)に対するもののみです 
      • コメント:
        • つねに、根本にあるカーソル共有の問題を調査する必要があります。もしカーソル共有に何らかの問題を抱えている場合、このパラメーターを高めの値にすることで、一つ一つの無効化がダンプにつながらないようにします。そして問題自体を調査、解決してからこのパラメーターを0にします。このパラメーターを0にセットすると、カーソルの無効化が発生した際に診断情報が得られなくなることに注意してください
    • _use_single_log_writer
    • memory_target
      • これは何?
      • 問題点:
        • memory_target が 1GB 以下の際にデータベースのアップグレードが予期せず失敗することがあります。同サイズの設定を sga_target と pga_aggregate_target でおおなった場合は問題は起こりません 
        • 重要な機能である HugePages (訳注:日本語版)の使用をさまたげます
      • 解決法:
        • memory_target の使用は避けましょう
        • 代わりに sga_target と pga_aggregate_target を使用するほうが良いです
    • pga_aggregate_limit
      • これは何?
        • PGAヒープの全体的なサイズを制限します
        • See the Oracle Documentation for further details
      • 問題点:
        • 本当の意味で制限ではありません。Frits Hoogland (Enkitec社) のDOAGカンファレンスでのプレゼンテーションによると、たしかにPGAを制限するものの、それは設定した制限を超えてからとなります。  ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT gets のエラーが、設定した制限を超えてから発生します
        • 詳細はFritsのブログに大変詳しく書かれており、テストスクリプトもあります(Stefanさん、ご教示ありがとうございます):
          https://fritshoogland.wordpress.com/2014/12/15/oracle-database-operating-system-memory-allocation-management-for-pga/
      • 解決法:
        • 真の意味での制限では無いということを意識しておきましょう。
          pga_aggregate_limitに完全に頼ることなく、PGAの使用量増加を監視しましょう
          .

    Oracle Database 12.1.0.2に関する重要な MOS Note

    0 件のコメント:

    コメントを投稿