2014年12月17日水曜日

Oracle DBA & Developer Days 2014の資料が公開されたようです。

JPOUG Advent Calendar 2014の13日目のエントリです。
だいぶ遅れたプレゼントになりすみません。
ちょっと欲張ってJPOUG Advent Calendar 2014 二回目の登場になります。
1回目はこちら
今回も1nmくらい役に立つプレゼントになればと思ってエントリします。


さて、本記事のタイトルにあるように、
「Oracle DBA & Developer Days 2014 (DDD 2014)」の資料が公開されたようです。
以下サイトから資料がダウンロード出来るようです。

http://eventreg.oracle.com/profile/web/index.cfm?PKWebId=0x14073486e5

役立つ資料が山ほど入手出来るので、
サイトを紹介してこの記事を終わってもいいかなと思いましたが、
人の褌でうんぬんと言われそうなので、
私が担当したセッション内容についてポイントを説明しようと思います。


私が担当したセッションは
B1-4「クラウド:事例から見えてきたマルチテナント・アーキテクチャとOracle Database 12c新機能の活用ポイント」の
後半パート「Oracle Database 12c新機能の活用ポイント」になります。
39スライド辺りからです。

はじめに、41スライドの注意事項を読んで資料を活用頂きたいと思います。
この資料の内容や以下に記載する内容も、
PSUや個別パッチを適用することにより動作が変わるかもしれないので
気をつけて下さい。

まずFlex ASMについて話しをしました。
・Oracle Database 12c リリース1 (12.1.0.1)から、Oracle DatabaseやClusterwareにおいて、
 RAWストレージ・デバイスの直接の使用がサポートされなくなった※1
・ASMインスタンスの使用メモリはデフォルトで約1GB、推奨は1.5GBほど。
・Flex ASMを使用していれば、接続先のASMインスタンスが停止しても
 他ノードのASMインスタンスに自動的に接続してくれて、
 DBのダウンやエラーを返さず業務を継続できる。
・2ノードRACで(カーディナリティ)をALLに設定するとASMインスタンスは2つになります。
 ※デフォルトではASMインスタンスが3つリソース登録されます。
・10.1~のDBと共存できるが、12.1以前のリリースのインスタンスはFlex ASM機能に対応していないので、
 その場合はカーディナリティ数をALLに設定する必要がある

次にCHMですが
・Oracle Database 12c リリース1 (12.1.0.2)から、管理者管理のRACでもMemoryGuardが動作する。
・MemoryGuardはノードの空きメモリが少ない状態になった場合などに、
 データベース・サービスリソースを自動的に停止する動きをする。
・リポジトリDBを停止してもMemoryGuardの動作は停止しない。
・メモリの設計に注意しよう。
・CHMの停止でMemoryGuardは停止する
・リポジトリDBやCHMを停止して良いかは念のためサポートに問い合わせて
 ⇒その結果を誰かフィードバックしてほしい。

ADOについては書いてある内容通りを説明しました。
ADOを実装するのに必要となったのであろう以下機能を説明しました。
・オンラインデータファイル移動
 処理中は領域が2倍必要になるので注意。
 また、オラクル社でオンラインと名のつく機能はだいたい、、※2
・オンラインパーティション移動
 移動処理中に対象のパーティションに更新処理が実行されても、
 更新処理は待機しない。
 逆に、移動処理は更新処理がcommitやrollbackされるまで、
 enq:TX -row lock contentionで待機する。
 オンラインで実行出来るからと言っても、実行タイミングの考慮は必要。

コントロールグループ(プロセッサ・グループ)/
初期化パラメータPROCESSOR_GROUP_NAME※3
・OS(カーネル)の機能を利用している
・L1~L2キャッシュを特定インスタンスで占有できる?
・NUMA nodeも指定出来るようなので、遠くのRAMを見に行かなくていいかも。
・JPOUGのボードメンバーでもある新久保氏は、I/O制御も検証していた。※4
 夢が広がる。
・Standard Editionでも使える
・マルチスレッドアーキテクチャはNUMA nodeを指定してインスタンスとRAMを固定化した際に、
 固定化されたRAMを有効活用するために作られたのではないかと妄想している。

オプティマイザ周りの新機能については、スライド75のイメージで全体像で覚えることが
大切だという話をしました。※5
・適応計画
 バインド依存カーソルや述語(where句)が複雑な場合に非効率な実行計画を選択してしまっても、
 ましな実行計画に変更してくれる。
 駆動表からの取得行数が多い場合にネステッドループ結合が発生すると悲惨だが、
 この機能が動作するとハッシュ結合に変更してくれてまだましな状況となる。
・動的統計については前回の投稿に書いたような内容を説明
・自動再最適化
 統計が不正確である、述語が複雑な場合に統計情報を補ってくれる
 カーディナリティ・フィードバックの進化機能
・SQL計画ディレクティブ
 統計情報を取得してもディレクティブは残るが動作しない。(再解析、ディレクティブ評価後)
 ディクショナリにディレクティブが山ほどついていることがある
 OPTIMIZER_ADAPTIVE_FEATUREをFALSEにしても動的統計は無効化されないので注意
・オプティマイザ機能使用方針検討ポイント
 システムの要件に合わせて、これら機能を使うか止めるかを判断するのが良い
 適応計画はEEライセンスが必要だ
・バルク・ロードのためのオンライン統計収集
 CTASや空テーブルへのダイレクト・パス・インサートでも取得されるようになった。
 (索引は作成時に自動的に統計情報が取得されるのと似た動作だ)
 インデックス統計、ヒストグラムは収集されないので注意。
 あくまでも統計情報取得時間を短縮するための動作だ。

参考情報
※1:Oracle® Databaseプラットフォーム共通日本語README12cリリース1 (12.1)
    2.3 Oracle Databaseで非推奨またはサポート終了となった機能
※2:Oracle® Databaseライセンス情報 12cリリース1 (12.1) エディション別の使用可能な機能
※3:設定方法等は以下ドキュメントが参考になります。
  My Oracle SupportドキュメントID 1585184.1
    「Using PROCESSOR_GROUP_NAME to bind a database instance to CPUs or NUMA nodes on Linux」
※4:10046 trace name context foreverブログ
    12cでリソースの共有と非共有のはざまで... その3 
   JPOUG Advent Calendar 2013のネタです
※5:Oracle® Database SQLチューニング・ガイド12cリリース1(12.1) 適応問合せ最適化について


JPOUG Advent Calendar 2014
明日の扉はsabotage さんです。よろしくお願いします。

0 件のコメント:

コメントを投稿