WR blog

about Enterprise IT, Oracle Database, Jazz/Fusion Music, etc…

WR blog RSS Feed
 
 
 
 

Posts tagged プロとしてのOracleアーキテクチャ入門

Developers Summit 2009 発表資料ダウンロード開始

ちょっと時間がたってしまいましたが・・・

Developers Summit 2009でのセッションは無事終了することができました。 聴講していただいた方、ありがとうございます。何かしらお役に立つ情報をご提供 できたのなら光栄です。

さて、発表資料の方もSlideShareで公開されています。

Developers Summit 2009 セッション資料ダウンロードサイト

【13-D-3】 プロとしてのOracleアーキテクチャ入門 ~ 番外編 ~

おそらく期間限定と思いますので、ご入用のかたはダウンロードしてみてください。

CHAPTER 03 データファイルと関連する構成要素

今回のentryでは、「SECTION I Oracleアーキテクチャ概要」の 「CHAPTER 03 データファイルと関連する構成要素」について補足説明します。 この章では、データを格納するファイルである「データファイル」 と1つ以上のデータファイルをグループ化した記憶領域である「表領域」、データファイルへのI/Oのバッファ/キャッシュとして機能する「データベースバッファキャッシュ」について説明しています。

書籍では、いわゆる通常の表領域である「SMALLFILEタイプの表領域」についてのみ説明 しています。ターゲットの観点から書籍では説明していませんでしたが、 Oracle 10gからは新しい表領域のタイプである「BIGFILEタイプの表領域」が導入されています。

BIGFILEタイプの表領域

SMALLFILEタイプの表領域、すなわち従来の表領域が存在した目的の1つに、 複数のデータファイルを束ねた仮想的な記憶域として表領域という概念を用意することで、 Oracleから意識する対象を表領域のみとすること、すなわち、 具体的なファイルの構造や、ファイルが配置されてている ドライブ/パーティション/ファイルシステムを隠蔽して、いわば物理的なストレージを 仮想化することがあったと考えられます。 具体的には、すでにデータファイルを配置しているC:ドライブの空き容量が不足しているときに、D:ドライブに追加のデータファイルを配置することにより、実際のドライブ空き容量に依存せず、表領域のサイズを拡張できるようなメリットを得られるようにしていると いえるでしょうか。

しかし、ストレージ技術の進展により、このようなストレージの仮想化はアプリケーション レベルではなく、それよりも下のレイヤであるストレージやOSのレイヤで実現するケースが増えています。 ストレージのレイヤでは、RAID装置を用いて複数の物理的なディスクを束ねて、1つのボリュームとすることができます。OSのレベルでは、Windowsのダイナミックディスク、UNIX/Linuxでは論理ボリュームマネージャとよばれるソフトウェアにより、複数のパーティションを 1つのボリュームにまとめることができます。

このような背景もあり、表領域のサイズが極めて大きい環境では、Oracleレベルで ストレージを仮想化するのではなく、Oracleよりも下位のレイヤでストレージを仮想化 することが適切な場面が増えてきました。このような状況に適用できる仕組みがBIGFILEタイプの表領域です。

BIGFILEタイプの表領域では、1つの表領域は、1つのデータファイルのみから構成され、 1つのデータファイルの最大サイズは約32TBです。すなわち、表領域の最大サイズは約32TBとなります。 一方、SMALLFILEタイプの表領域では、1つの表領域に最大1022のデータファイルで構成 することができ、1つのデータファイルの最大サイズは約32GBです。すなわち、 表領域の最大サイズは約32TBとなります。 単に表領域全体のサイズから見れば、SMALLFILEタイプとBIGFILEタイプの表領域に 大きな差は無いですが、ファイル管理という面では大きな差があります。 SMALLFILEタイプの表領域で大きなサイズを確保すると、 データファイル数が増えるため管理が非常に煩雑になります。 一方、BIGFILEは1つのデータファイルのみで構成されますから、管理は容易です。

BIGFILEタイプの表領域の作成方法

BIGFILEタイプの表領域は、BIGFILE句を付加したCREATE TABLESPACE文で作成できます。

CREATE BIGFILE TABLESPACE big_ts DATAFILE ‘/path/to/dbf’ size <size>;

表領域のタイプはDBA_TABLESPACESのBIGFILE列で確認できます。

BIGFILEタイプの表領域の注意点

BIGFILEタイプの表領域は、OS/ストレージレベルで複数をディスクを束ねる仮想化の 仕組みが存在していることを前提としています。

BIGFILEタイプの表領域が必要なような超大容量データベースでは、パラレル処理を 使う機会も多いため、OS/ストレージレベルでパラレル処理を効率的に実行できる必要が あります。具体的には、ストレージをストライプ化し、多重化されたストレージI/O要求を 効率的に処理できるようにするなどです。

BIGFILE表領域という技術を、管理すべきデータファイル数を削減するという点で見る のではなく、従来の表領域で担っていた部分である、ストレージの分散などの機能を OS/ストレージ側に任せるようになったという点で見ることが重要です。

Developers Summit 2009でお話させていただきます!

Development Style(DB)

なんとDevelopers Summit 2009(2/13(金) 13:10~14:00 at 目黒雅叙園)にてお話させていただくことになりました! 講演のタイトルは「プロとしてのOracleアーキテクチャ入門 ~番外編~」です。 来場される方の担当業務としては、DBA、インフラ設計よりはむしろ SQL/プログラム開発の方が多いのかなという判断で、 SQL実行/チューニングにまつわる Oracleアーキテクチャについてお話させていただきます。 書籍「プロとしてのOracleアーキテクチャ入門」でいうと、 「CHAPTER 13 問い合わせ処理の仕組み」+αの内容になると思います。

「テクノロジーの変化を体感するためのDevelopmentStyle 2.0」というテーマに 沿うよう、11g新機能や知られていないテクノロジを紹介できるように準備を進めてい ますが、SQL/プログラム開発の方にターゲットを絞っている関係上、 内容的には基本的/基礎的なものになるかと思いますので、この点、あらかじめご了承 ください。

さて、具体的には、以下の内容についてお話させていただく予定です。

SQL実行のためのOracleアーキテクチャ 実行計画とCBO ヒストグラムと最適なアクセスパス SQL開発におけるOracleアーキテクチャ特有の注意点

オプティマイザ統計の重要性 共有プールのflush バインドピーク

それでは、当日会場でお会いできることを楽しみにしています。

CHAPTER 02 クライアントアプリケーションとサーバープロセス - プロとしてのOracleアーキテクチャ入門

今回のentryでは、「SECTION I Oracleアーキテクチャ概要」の「CHAPTER 02 クライアントアプリケーションとサーバープロセス」について補足説明します。 この章では、SQL*PlusなどのOracleに接続するアプリケーションである「クライアントアプリケーション」 とクライアントから指示に従い実際に処理を実行する「サーバープロセス」について説明しています。

あるクライアントアプリケーションがOracleに接続すると、そのクライアントアプリケー ション専用のサーバープロセスが起動します。 ここで、クライアントアプリケーションとサーバープロセスの間に設定されるコネクションを、 Oracleではセッションと呼びます。 これらについては、書籍で説明したとおりですが、このentryでは、 Linux上でクライアントアプリケーションとしてSQL*PlusでOracleに接続した場合を例に、 クライアントアプリケーションとサーバープロセスの関係について、 プロセスの相互関係、セッションの観点から確認してみます。

まず、SQLPlusを起動して、connectコマンドでOracleに接続すると、サーバープロセス が起動します。 これは、SQLPlusにおいて、fork()、exec()システムコールを実行することで、 プロセスが複製され、複製されたプロセスの実体がoracleプログラムに変わるためです。 このような処理を行うことで、サーバープロセスに対応したプロセスが新規に作成されます。 そして、このサーバープロセスはSQLPlusの子プロセスとなり、 サーバープロセスとSQLPlusは子プロセス、親プロセスの関係をもちます。 そして、2つのプロセス間にパイプと呼ばれるプロセス間通信路を設定します。 すなわち、セッションはパイプにより実現されるわけです。

ここで説明した動作を実際に確認してみましょう。 まず、SQL*Plusを実行して、Oracleに接続してみます。

[o11106@hp1 ~]$ sqlplus /nolog

SQL*Plus: Release 11.1.0.6.0 - Production on 日 11月 9 15:36:10 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.

SQL> connect / as sysdba 接続されました。 SQL>

このとき、pstreeコマンドを使用して、プロセスの親子関係を確認してみます。

[o11106@hp1 ~]$ pstree -p -a o11106 bash(9438) (略) sshd,9667 `-bash,9668 [...]

書籍 「プロとしてのOracleアーキテクチャ入門」を執筆しました

(なんと前回のエントリから3年近く間が空いてしまいました・・・) Oracle Database のアーキテクチャについて説明した書籍「プロとしてのOracleアーキテクチャ入門」を 執筆するお話をソフトバンククリエイティブ社様よりいただき、 同じ職場のOracle暦10年のベテランエンジニアの方と共同で執筆作業をすすめ、 2008/8/22に(なんとか)無事出版できました。

ソフトバンククリエイティブの本:プロとしてのOracleアーキテクチャ入門

Amazonのレビューでも好意的なコメントをいただけており、ほっと一安心といったところです。

執筆のお話を頂戴したのは、2007年の年末で、当初のプランでは ゴールデンウィーク前に執筆を終えるはずだったのですが、 紆余曲折あり執筆に半年以上の期間を要してしまいました・・・。 しかも、ページ数は(おそらくシリーズ最大の)400ページ。 長期間に渡る執筆において、大量の原稿に対して的確なフォローをしていただけた 編集の方にはとても感謝しております。ありがとうございました!

目次

INTRODUCTION なぜOracleのアーキテクチャを学ぶのか SECTION Ⅰ Oracleアーキテクチャ概要

CHAPTER 01 データベースとインスタンス CHAPTER 02 クライアントアプリケーションとサーバープロセス CHAPTER 03 データファイルと関連する構成要素 CHAPTER 04 REDOログファイルとREDOデータ CHAPTER 05 サーバーパラメータファイルと制御ファイル CHAPTER 06 Oracleのメモリ管理 CHAPTER 07 その他の構成要素

SECTION Ⅱ スキーマオブジェクトとデータ格納方式

CHAPTER 08 ユーザーと権限 CHAPTER 09 テーブルとデータ型 CHAPTER 10 索引の仕組み CHAPTER 11 その他のオブジェクト CHAPTER 12 オブジェクトの格納方式と記憶域

SECTION Ⅲ SQL処理の仕組み

CHAPTER 13 問い合わせ処理の仕組み CHAPTER 14 更新処理の仕組み

SECTION Ⅳ トランザクション処理

CHAPTER 15 トランザクションの概要とACID特性 CHAPTER 16 Oracleのトランザクションと隔離性 CHAPTER 17 Oracleのロック機能

SECTION Ⅴ 起動・停止とリカバリの仕組み

CHAPTER 18 インスタンスの起動と停止 CHAPTER 19 リカバリ処理の仕組み

SECTION Ⅵ Oracle Net [...]

Profile

Jazz/Fusion Musicを愛するIT技術者です。 現在、Oracle Database 関連の仕事をしています。

保有資格

  • Oracle Master 10g Platinum
  • Oracle Master 11g Gold
  • Oracle Master Expert 10g RAC
  • Oracle Master Expert Oracle on Linux
  • LPIC level2
  • 日商簿記3級

連絡先

ご連絡は、wrcsus4 _at_ gmail _dot_ com にお願いいたします。

 

March 2010
M T W T F S S
« Sep    
1234567
891011121314
15161718192021
22232425262728
293031  

Recent Posts

Recent Comments

Tags

Categories

Pages

Archives

Meta