Exchange Serverのメールなどを格納するデータベース(ストア)、障害復旧を可能にするトランザクション・ログの仕組みと構成。
前回はExchange Server 2003(以下、特にバージョンを明記せず“Exchange Server”と表記した場合はExchange Server 2003を指すものとする)の予定表の共有と会議室予約について説明した。今回はExchange Serverの安定稼働とバックアップには欠かせない知識となる「データベース」や「ストレージ・グループ」「ESE(Extensible Storage Engine)バッファ」「トランザクション・ログ」など、Exchange Serverのデータベースの仕組みについて説明する。データベース関連で使われる用語は、SQL ServerやOracle、DB2といった一般的なデータベース・サーバの用語とほとんど同じなので、データベース・エンジニアにとっては比較的理解しやすいだろう。
Exchange Serverでやりとりされるメールやパブリック・フォルダに投稿されたアイテムは、Exchange Serverの持つデータベース内に格納される。データベースは、ストアとも呼ばれ、メールを格納するための[メールボックス・ストア]とパブリック・フォルダのデータを格納するための[パブリック・フォルダ・ストア]がある。ストア(Store)は「蓄える」「保存する」という意味である。
データベースは、次のように[Exchange システム マネージャ]を利用して確認できる。
■ストレージ・グループ
データベース(ストア)は、「ストレージ・グループ」という単位で管理され、各データベースは[ストレージ・グループ]の中に含まれる。Exchange Serverのインストール直後は、上の画面のように[最初のストレージ・グループ]という名前の[ストレージ・グループ]が1つだけ作成される。[ストレージ・グループ]は、Enterprise Editionでは最大4つまで作成できるが、Standard Editionでは複数作成することはできない。[ストレージ・グループ]を複数作成することのメリットについては、第1回の記事を参考にしてほしい。また、1つの[ストレージ・グループ]の中には最大5つのデータベースが作成可能である。[ストレージ・グループ]とデータベースの関係は次のようになる。
■データベースを構成するファイル
データベースは、内部的には次の2つのファイルから構成される。
拡張子 | 名前 | 役割 |
---|---|---|
.edb | Exchangeデータベース | Outlookで作成されたメールやアイテムなどが格納される(添付ファイルも含む) |
.stm | Exchangeストリーミング・データベース | Outlook Web AccessやPOP3、IMAP4など、Outlook以外のクライアントによって作成されたメールやアイテムの添付ファイルが格納される |
メールボックス・ストアのデフォルトのファイル名は「priv1.edb」と「priv1.stm」、[パブリック・フォルダ・ストア]は「pub1.edb」と「pub1.stm」である。これらは、Exchange Serverがインストールされたフォルダ(C:\Program Files\Exchsrvr)配下のmdbdataフォルダに作成される。データベースのファイル名や作成場所を確認および変更するには、次のようにシステム・マネージャを操作する。
■単一のインスタンス(実体)
Exchange Serverでは、複数のユーザーに送信されたメールは、各ユーザーのメール・ボックスへ格納されるのではなく、1つのインスタンス(実体)だけがデータベース内へ格納される。これにより、ディスク領域が大量に消費されないようにしている。例えば、1Mbytesの大きさのメールを100人の社員に送信した場合を考えてみる。もし、各ユーザーのメール・ボックスにメールを保存する仕組みだと、100Mbyteのデータベース領域が必要になるが、1つのインスタンスだけがデータベースに作成されるのであれば、データベース領域は1Mbytesで済むのである。
■ESEバッファ
次にデータベースに格納されたデータ(メールやアイテム)が読み取られる際に使用される「ESEバッファ」について説明する。ESEバッファは、ストア・データベース・キャッシュとも呼ばれ、メモリ上に作成される領域である、一般的なキャッシュと同様、ディスクから読み取ったデータをメモリ内に保存し、2回目以降の同じデータへのアクセスを高速化するためのものである。これについて、メールを参照するときの動作を例に説明する。
ESEバッファ(ストア・データベース・キャッシュ)は、OracleやSQL Server、DB2など一般的なデータベース・サーバでは、データベース・バッファ・キャッシュや単にバッファ・キャッシュなどと呼ばれる領域と同じ役割である。データベースにとっては、パフォーマンスに最も影響のある領域であり、いかにバッファ・キャッシュを大きく取り、できる限りメモリ内へデータを保持しておけるかは性能を大きく左右する。なお、Exchange Serverのバッファ・キャッシュにESEと名前が付くのは、Exchange Serverのデータベース・エンジンがESE(Extensible Storage Engine:拡張ストレージ・エンジン)と呼ばれるためである。
ESEバッファのデフォルトのサイズは、次のとおりである。
boot.iniファイル | ESEバッファのデフォルト値 |
---|---|
[/3GBスイッチ]なし | 576Mbytes |
[/3GBスイッチ]をオン | 896Mbytes |
boot.iniファイルで[/3GBスイッチ]をオンにしている場合は、ESEバッファを最大1.2Gbytesまで大きくすることができる。サイズを変更するには、Windows Server 2003のSupport Toolsに含まれる「ADSI Edit」ツールを使用し、次のようにInformation Storeのプロパティで「msExchESEParamCacheSizeMax」の値を変更する。
なお、ESEバッファのサイズを大きくしすぎると、過度なページングが発生し(ディスク上のpagefile.sysとの頻繁なやりとりが発生)、逆にパフォーマンスが悪くなるケースもあるので注意してほしい。例えば、搭載メモリが少ない場合やExchange Server以外のほかのアプリケーションを同時に実行している場合などである。これはOWA(Outlook Web Access)を利用するユーザー数が多い場合にも該当し、IISのメモリ使用量が増えることでExchange Serverのメモリ使用量を圧迫し、ページングが多発することになるのである。これを回避するには、OWA用のフロントエンド・サーバを立てるようにする。いずれにしても最適なパフォーマンスを保ち、安定稼働させるには、[システム・モニタ]ツールなどを使ってメモリ使用量およびページングの発生頻度を定期的に調べることが重要であり、物理メモリの空き容量を基にESEバッファの大きさを判断してほしい。
Copyright© Digital Advantage Corp. All Rights Reserved.