数週間前に、パラメーター設定(隠しパラメーターを含む)に関する記事を書いたのですが、社内の議論に基づき(ちなみにまだ議論は続いています)その記事は削除し、内容を分けて書くことにしました。内容の一部についてはオプティマイザチームで担当し、記事が投稿され次第私のほうでもアップデートを投稿していきます
はじめに
まずご注意いただきたいのは、下記のパラメーターのリストは基本的に私の個人的な経験に基づくものです。いくつかはオラクルのサポートによって公式に推奨されてもいます。必ず適切な手法でテストを行うようにしてください
我々としてはSQL Performance Analyzerを使ってこれらのパラメーターの変更による影響をテストすることを強くおすすめします。
この投稿内容をどう読むべきか?
「誰かが行った」とか「誰かがブログ(このブログも含みます!)で書いていた」とか「わが国には世界的にも優秀なチューニングエキスパートがいるから」などといった理由で、盲目的にこれらの隠しパラメーター(アンダースコアパラメーター)をセットしては絶対にいけません。信頼すべきは、オラクルのサポート(MOS Noteに書かれている内容)や、オラクルの公式ホワイトペーパーや、皆さんの環境を良く知っていて長く一緒に仕事をしているサポートエンジニアやコンサルタントがいる場合はそういった人々です。
.
重要なパラメーター設定
- _kks_obsolete_dump_threshold
- これは何?
- 問題点:
- カーソルの無効化によりトレースファイルが巨大キノコのように大きくなる
- 解決法:
- MOS Note:1955319.1; Huge Trace Files Created Containing "----- Cursor Obsoletion Dump sql_id=%s -----":
の推奨、設定値範囲、オプションを参照 - また、こちらを読むのもよいでしょう:
Where do these large trace files come from in Oracle 12c? - パッチ:
- 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
- 問題点:
- Oracle Database 12cの複数LGWR機能はインスタンスリカバリの失敗や予期せぬ停止をまねく可能性がある
- 解決法:
- 次のような問題を意識しておきましょう:
MOS Note:1957710.1 - ALERT: Bug 21915719 Database hang or may fail to OPEN in 12c IBM AIX or HPUX Itanium - ORA-742, DEADLOCK or ORA-600 [kcrfrgv_nextlwn_scn] ORA-600 [krr_process_read_error_2] ) - MOS Note:1957710.1 でもこのパラメーターをどのようにセットすべきかについて推奨が書かれています
- 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
-
既知の問題
MOS Note:1683799.1 - 12.1.0.2 Patch Set - Availability and Known Issues
-
SQL計画管理(SQL Plan Management)
MOS Note: 2035898.1 - Patches to Consider for 12.1.0.2 to Avoid Problems with SQL Plan Management (SPM))
-
結果不正とパフォーマンス劣化MOS Note:2034610.1 - Things to Consider to Avoid Poor Performance or Wrong Results on 12.1.0.2
-
プロアクティブなチューニングとパフォーマンス問題の回避
MOS Note:1482811.1 - Best Practices: Proactively Avoiding Database and Query Performance Issues - Oracle 12.1.0.2へのマニュアルアップグレード時のコンプリートチェックリストMOS Note: 1503653.1 - Complete Checklist for Manual Upgrades to Oracle Database 12c Release 1 (12.1)
0 件のコメント:
コメントを投稿