連載
» 2005年10月28日 00時00分 公開

基礎から学ぶExchange Server 2003運用管理:第6回 Exchange Server 2003データベースの仕組み (1/3)

Exchange Serverのメールなどを格納するデータベース(ストア)、障害復旧を可能にするトランザクション・ログの仕組みと構成。

[松本美穂,エスキューエル・クオリティ]
基礎から学ぶExchange Server 2003運用管理
Windows Server Insider

 

「基礎から学ぶExchange Server 2003運用管理」のインデックス

連載目次

 前回はExchange Server 2003(以下、特にバージョンを明記せず“Exchange Server”と表記した場合はExchange Server 2003を指すものとする)の予定表の共有と会議室予約について説明した。今回はExchange Serverの安定稼働とバックアップには欠かせない知識となる「データベース」や「ストレージ・グループ」「ESE(Extensible Storage Engine)バッファ」「トランザクション・ログ」など、Exchange Serverのデータベースの仕組みについて説明する。データベース関連で使われる用語は、SQL ServerやOracle、DB2といった一般的なデータベース・サーバの用語とほとんど同じなので、データベース・エンジニアにとっては比較的理解しやすいだろう。

Exchange Serverのデータベース(ストア)とは

 Exchange Serverでやりとりされるメールやパブリック・フォルダに投稿されたアイテムは、Exchange Serverの持つデータベース内に格納される。データベースは、ストアとも呼ばれ、メールを格納するための[メールボックス・ストア]とパブリック・フォルダのデータを格納するための[パブリック・フォルダ・ストア]がある。ストア(Store)は「蓄える」「保存する」という意味である。

 データベースは、次のように[Exchange システム マネージャ]を利用して確認できる。

Exchangeシステム・マネージャでのデータベースの確認
Exchange Serverでやりとりされるメールやパブリック・フォルダに投稿されたアイテムは、Exchange Serverのデータベース([メールボックス・ストア]、[パブリック・フォルダ・ストア])に格納される。
 (1)メールを格納するための[メールボックス・ストア]を展開しているところ。
 (2)ユーザーごとにメール・ボックスの使用サイズの合計やアイテム数(受信メール、削除済みメール、送信済みメールなどの総数)の確認が可能。
 (3)[ストレージ・グループ](後述)を新たに作成し、その中に[メールボックス ストア]を3つ追加したときの様子。

■ストレージ・グループ
 データベース(ストア)は、「ストレージ・グループ」という単位で管理され、各データベースは[ストレージ・グループ]の中に含まれる。Exchange Serverのインストール直後は、上の画面のように[最初のストレージ・グループ]という名前の[ストレージ・グループ]が1つだけ作成される。[ストレージ・グループ]は、Enterprise Editionでは最大4つまで作成できるが、Standard Editionでは複数作成することはできない。[ストレージ・グループ]を複数作成することのメリットについては、第1回の記事を参考にしてほしい。また、1つの[ストレージ・グループ]の中には最大5つのデータベースが作成可能である。[ストレージ・グループ]とデータベースの関係は次のようになる。

ストレージ・グループとデータベースの関係
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フォルダに作成される。データベースのファイル名や作成場所を確認および変更するには、次のようにシステム・マネージャを操作する。

データベースのファイル名と作成場所の確認
データベースのファイル名や作成場所の確認をするには、システム・マネージャでストアのプロパティを開く。
 (1)ファイル名を確認したい[データベース](データベース・ストア)を右クリックして[プロパティ]を選択する。
 (2)[データベース]タブをクリックする。
 (3)Exchangeデータベース(.edb)のファイル名。
 (4)Exchangeストリーミング・データベース(.stm)のファイル名。

Windowsエクスプローラでファイルを確認
デフォルトでは、Exchange Serverがインストールされたフォルダ(C:\Program Files\Exchsrvr)配下のmdbdataフォルダにデータベースの実体となるファイルが作成される。[メールボックス・ストア]のデフォルトのファイル名は「priv1.edb」と「priv1.stm」、[パブリック・フォルダ・ストア]は「pub1.edb」と「pub1.stm」である。なお、画面内にあるE00で始まるファイルは後述するトランザクション・ログ・ファイルとチェックポイント・ファイルである。これらのファイルをどのようにバックアップするかは、次回詳しく解説する。

■単一のインスタンス(実体)
 Exchange Serverでは、複数のユーザーに送信されたメールは、各ユーザーのメール・ボックスへ格納されるのではなく、1つのインスタンス(実体)だけがデータベース内へ格納される。これにより、ディスク領域が大量に消費されないようにしている。例えば、1Mbytesの大きさのメールを100人の社員に送信した場合を考えてみる。もし、各ユーザーのメール・ボックスにメールを保存する仕組みだと、100Mbyteのデータベース領域が必要になるが、1つのインスタンスだけがデータベースに作成されるのであれば、データベース領域は1Mbytesで済むのである。

複数のユーザーへ送信されたメールの格納のされ方
Exchange Serverでは、複数のユーザーへ送信されたメールは、各ユーザーのメール・ボックスへ格納されるのではなく、インスタンス(実体)としては1つだけがデータベースへ格納される。

■ESEバッファ
 次にデータベースに格納されたデータ(メールやアイテム)が読み取られる際に使用される「ESEバッファ」について説明する。ESEバッファは、ストア・データベース・キャッシュとも呼ばれ、メモリ上に作成される領域である、一般的なキャッシュと同様、ディスクから読み取ったデータをメモリ内に保存し、2回目以降の同じデータへのアクセスを高速化するためのものである。これについて、メールを参照するときの動作を例に説明する。

ESEバッファの使われ方
ESEバッファは、ディスクから取り出したデータをメモリ内に格納し、2回目以降の同じデータへのアクセスを高速化するための領域である。この図では、AさんとBさんに同じメールが受信されている場合を想定し、Aさんが先に参照したときの動作である。Aさんの参照時は、ディスクからのアクセスが発生するが、後から参照したBさんの場合は、ESEバッファ(キャッシュ)から参照するので高速にアクセスできる。

 ESEバッファ(ストア・データベース・キャッシュ)は、OracleやSQL Server、DB2など一般的なデータベース・サーバでは、データベース・バッファ・キャッシュや単にバッファ・キャッシュなどと呼ばれる領域と同じ役割である。データベースにとっては、パフォーマンスに最も影響のある領域であり、いかにバッファ・キャッシュを大きく取り、できる限りメモリ内へデータを保持しておけるかは性能を大きく左右する。なお、Exchange Serverのバッファ・キャッシュにESEと名前が付くのは、Exchange Serverのデータベース・エンジンがESE(Extensible Storage Engine:拡張ストレージ・エンジン)と呼ばれるためである。

【TIPS】ESEバッファのサイズを変更する

 ESEバッファのデフォルトのサイズは、次のとおりである。

boot.iniファイル ESEバッファのデフォルト値
[/3GBスイッチ]なし 576Mbytes
[/3GBスイッチ]をオン 896Mbytes

 boot.iniファイルで[/3GBスイッチ]をオンにしている場合は、ESEバッファを最大1.2Gbytesまで大きくすることができる。サイズを変更するには、Windows Server 2003のSupport Toolsに含まれる「ADSI Edit」ツールを使用し、次のようにInformation Storeのプロパティで「msExchESEParamCacheSizeMax」の値を変更する。

ADSI EditツールでESEバッファの最大サイズを変更しているところ
ESEバッファの最大サイズを設定するためのmsExchESEParamCacheSizeMaxの値は、ページ単位(1ページは4Kbytes)で指定し、最大サイズは1.2Gbytesである。マイクロソフトでは、307,200ページ(約1.17Gbytes)以下の値に設定するように推奨している。推奨値やADSI Editの使用方法、[/3GBスイッチ]など、メモリに関する注意事項は、マイクロソフトサポート技術情報の「[HOWTO]Exchange Server 2003およびExchange 2000 Serverにおける仮想メモリの断片化のトラブルシューティング」と「ストア データベースの最大キャッシュ サイズを変更する方法」を参照してほしい。

 なお、ESEバッファのサイズを大きくしすぎると、過度なページングが発生し(ディスク上のpagefile.sysとの頻繁なやりとりが発生)、逆にパフォーマンスが悪くなるケースもあるので注意してほしい。例えば、搭載メモリが少ない場合やExchange Server以外のほかのアプリケーションを同時に実行している場合などである。これはOWA(Outlook Web Access)を利用するユーザー数が多い場合にも該当し、IISのメモリ使用量が増えることでExchange Serverのメモリ使用量を圧迫し、ページングが多発することになるのである。これを回避するには、OWA用のフロントエンド・サーバを立てるようにする。いずれにしても最適なパフォーマンスを保ち、安定稼働させるには、[システム・モニタ]ツールなどを使ってメモリ使用量およびページングの発生頻度を定期的に調べることが重要であり、物理メモリの空き容量を基にESEバッファの大きさを判断してほしい。



       1|2|3 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。