Top 2 things about Oracle Database - askTom Live Session

先月の16日の話になりますが、OTN-Japanで Oracle Database 11g Release 2に関する10の重要なこと - askTom Live - が公開*1されました。
そして

ラクル・データベースのエキスパートの方も、これから目指す方にとっても、本セミナーにより今後の行動指針の一助となることを切望いたします。この機会を見逃さず、オラクル・データベースのアーキテクトであるトム・カイトに、データベース技術に関する質問を行い疑問を解消してください。

@IT Special PR:Oracleのことならトムに聞け! 濃密体験必至のDBAサミットを見のがすな

と質問が受け付けられ、当日 Thomas Kyte さんが答えてくれた askTom Live Sessionの内容も Oracle Database 11g Release 2に関する10の重要なこと – askTom Live - にあり、ビデオを見ながら思い出した当時のことを少し書きます。


私が askTom Live Session での公開質問へ応募するときに考えたのは、まず「彼が話したくなるようなことって何だろう ?」でした。そして、答えを想像しながら、今の自分が聞きたくて、みんなにもできれば聞いて欲しいような内容って何だろうなって。二通応募し、いずれも事務局の皆さんの手で、彼が話せるような、そして場にふさわしい内容に変わり、彼から答えを生で聞くことが出来ました。

応募用メールアドレスへ送信*2した一通目の原文

長年Oracle Databaseのサポートをしている私からすると、Internal Errorとして ORA-00600を出力する実装が Oracle Databaseの素晴らしい点だと思います。

このような話をしても、一般的にはあまり ORA-00600 に良いイメージを持たれないのですが、重大障害を防止しかつ出力されるトレースだけで問題が解決するサポータビリティの高さは、他に代えがたいものがあります。

このように、ネガティブに捉われているけれど、実はこれは昔から他の製品にはない誇るべき機能と呼べるものが他にあれば、一つ教えてください。

いただいた答え

最初にこの質問を読んだとき、思わず吹き出してしまいました。「ORA-600がオラクルの競争優位なポイント」「ORA-600はオラクルの強み」だと言っているわけですから、「おかしな見方だなあ」と困惑したのです。
しかし、よく読んでみると、実際にそのとおりだと思えてきました。
確かに、ORA-600が出力されるのはありがたくない事態です。しかし、それにより膨大な情報が得られ、原因を調べることができるのですから、その意味ではいいことだともいえます。
ORA-600は、V$TABLEと同様に重要かつ必要です。ORA-600の内容は、アプリケーションがどう動いているかを見るためのSQLトレースのようなものです。
ORA-600は、問合せを処理しているわけではなく、何かを表示しているにすぎません。何かがうまくいっていないことを示し、私たちが何かをおこなった回数を数えています。これらの情報によって、データベースを調査し、どこにボトルネックがあるかを突き止められるのです。
Oracle Database 11g R1やR2などの最近のバージョンでは、ORA-600の情報を使って一歩先に進むことができます。Oracle Database 11gには、Automatic Diagnostic Repository(ADR)という新しい機能があります。これは、ORA-600が発生した場合などに、インシデントに関連する情報をパッケージすることができ、関連するトレースやログ情報など、インシデント中に記録されたすべての情報などがパッケージされるのです。
Oracle Database 11g R1やR2に付属するADRによって、ORA-600も便利な機能になりました。言い換えれば、Oracle Database 11gではORA-600が新たな機能に生まれ変わったともいえます。
ORA-600のために追加料金を払う必要はありません。私たちは、ORA-600が発生した時には、関連する診断情報をパッケージして、すぐサービスリクエストをオープンしてサポートサービスに連絡できるように改良し、使いやすくしたのです。

Oracle Database 11g Release 2に関する10の重要なこと – askTom Live - Q&A

この Question 4 は YouTube - AskTom Live : Session 3 (2/5) の 0:38 から 3:58 が該当します。

このQ&Aで、うれしかったのは、彼が笑って*3、共感し、その上で話をしてくれたことと、想像していた答えよりもたくさんの話を彼がしてくれたことです。

ORA-00600を出力する実装に対する思いは、このときに思いついたわけではなく、過去に何度か口にしてきたこともあるのですが、彼にして『困惑し』このとき『よく読んでみると、実際にそのとおり』なんですよね。

彼の言う『調査』そして『突き止められる』という結果を期待されたインシデント・パッケージを受け取り続け、「問題が解決する」と明示したのは自分だと心に刻み、また『改良し、使いやすくした』って言えるように行動していかないとなと思いました。

応募用メールアドレスへ送信*4した二通目の原文

製品ドキュメント Oracle Database Concepts, 11g Release 2 (11.2) のPrimary Authorsのお一人でもありますよね。
Conceptsの理解はとても大事な製品を知る一歩なので、新リリースが出るたびに必ず目を通すようにしています。
もちろんConceptsの正しい理解が必要な時は何度も見ます。

この(pdfで)446ページある大作の中、この部分は特に何度でも見直してほしいとか、実はリリース11.2でここを書くのが困ったとか、もし思い出がありましたら教えてください。

いただいた答え

私は、最新のOracle Database概要マニュアルを執筆した2人のうちの1人です。
Oracle Database 11g R2のマニュアルは、以前のバージョンのマニュアルを改訂したものです。その際に、私たちがもっとも時間をかけたのは目次、つまりアウトラインです。
Oracle8i DatabaseやOracle9i Database、Oracle Database 10gのマニュアルには、アーキテクチャのコンセプトに関する情報だけでなく、機能に関する情報もたくさん書かれています。これらは徐々に追加されたため、わかりにくくなり、すべての読者に役立つものとはいえませんでした。「Oracleデータベースを使うことになったときに、まず読むべきもの」ではなくなっていたのです。
私たちに与えられた課題は、「もともとコンセプトを説明していたものが機能説明書になってしまったので、再びコンセプトを説明するマニュアルに戻す」ことでした。
私たちは、情け容赦なく章立てを分解し、文章を削りました。その結果、500〜700ページに及ぶ分厚い文書ではなく、400ページ強程度の比較的コンパクトなマニュアルになりました。
その一方で、内容面では「厚み」のある文書です。カバーしている範囲は狭くなったものの、その分詳しく説明しているからです。説明はよりわかりやすくなり、無駄な表現が減ったはずです。
私にとって一番嫌だったのは、講演で「これは絶対にやってはいけません」と説明したあと、参加者から「でも、オラクルのマニュアルには『こうするように』と書いてありました」と言われることです。こういったことは、以前はよくありました。現在のマニュアルには、このような矛盾した記述はなくなり、オラクルのコンセプトを表現した技術的に正確な文書になっています。
まさに、初出勤した新人スタッフに手渡すべき文書といえます。開発者やDBAにとっては、データベースがどう動くかの概要を知るための手引きになるでしょう。

Oracle Database 11g Release 2に関する10の重要なこと – askTom Live - Q&A

この Question 2 は YouTube - AskTom Live : AskTom Live : Session 3 (1/5) の 3:30 から 6:23 が該当します。

大昔の話ですが、ある方に質問をしたときに「概要百回くらい読んでから質問しないと駄目だよ」と言われました。その方は冗談で言ったのですが、その方が聞いている私の様子を見て驚くほどに面食らったことを今でも覚えています。
さすがに新しくなるたびに百回端から端まで読むほどではないですが、Oracle Databaseのコンセプトを理解するために最も読む機会の多いドキュメントです。
質問を考えるとき、リリース直後の*5初見で、今回は見ておかないとまずいと感じていたことを思い出しました。
さらに何回か読むにしても、ポイントがあったら書いた本人に聞いてみたいなと思い、また大幅に変えたってことをみんなに話してみて欲しいなーとか、話したいこともあるんじゃないかなーと思って、こんな質問をしてみました。
このQ&Aでは、彼がこの思い通りに答えてくれましたが、コンセプトのコンセプトを語り、無駄や矛盾をなくしたコンパクトなものと明言してくれたことで、経験や思い込みを頼りにしすぎることなく、彼の手引きを何度でも読もうと思いました。


実はこの二つの質問と応募することに、ひとつの共通の思いがありました。

  • ORA-00600を見たら何か内部的なことだからと調査することを諦めていませんか ?
  • Oracle Databaseは機能が多いからと理解することを諦めていませんか ?
  • 何百人と集まる場で疑問を解消したり行動指針になるようなヒントを見つけられることがあるわけがないと諦めませんでしたか ?

そう、ひとつの共通の思いとは、諦めないということです。

そして、毎日新しいことを学び、成長し、諦めないことが重要なことなんだと、 Ask Tom で Questionに回答し続けている Thomas Kyte さんと Oracle Database 11g Release 2に関する10の重要なこと - askTom Live - を OTN-Japanのコンテンツにしてくださった方々に言われているような気がして、その方々への感謝の意もこめて、ちょっと書いてみました。*6

*1:データベース・アーキテクト・サミット - askTom Live│日本オラクルで動画や資料は公開されていました

*2:Thomas Kyteさんがやってくる! データベース・アーキテクト・サミット - askTom Live - wmo6hash::blogを書く前日の夜に

*3:イベント終了後、ご挨拶に伺い、この質問したのは自分ですとお話して、また返ってきた笑顔の中で何人かの方と一緒に記念に写真を撮ってもらいました。

*4:開催の三日くらい前に

*5:Wataru Morohashi on Twitter: "良い子はまず Oracle Database 11g Release 2 (11.2) Documentation Library [http://www.oracle.com/pls/db112/homepage]"なんてささやきながら

*6:あとがき: OTN-JapanのリニューアルにあわせてURLなど変更しました