Exchange 2013 データベース スキーマの更新
このところ、Exchange 2013 の Update-DatabaseSchema コマンドレットに関して多数のご質問が寄せられています。今回は、このコマンドレットについていくつかの関連情報をご紹介します。
Update-DatabaseSchema コマンドレットは、インフラストラクチャの一部であり、DAG デプロイメント内のデータベース スキーマを安全にアップグレードできるように Exchange 2013 に組み込まれているものです。以前のリリースとは異なり、Exchange 2013 のデータベース スキーマをアップグレードするには、すべての DAG メンバーが、そのバージョンのスキーマをサポートしているバージョンのソフトウェアにアップグレードされている必要があります。これにより、スキーマのアップグレードが発生する際の制御が可能になります (RequestedDatabaseSchemaVersion は CurrentSchemaVersion よりも大きい値に設定します。設定できる最大値は、すべての DAG メンバーがサポートしている MaximumSupportableDatabaseSchemaVersion の値です)。データベースの RequestedDatabaseSchemaVersion は、すべての DAG メンバーがサポートしている MaximumSupportableDatabaseSchemaVersion よりも大きい値には設定できません。これにより、たとえば Exchange 2010 の DAG メンバーを RTM 版以降のサービス パックにアップグレードし、アップグレードされたサーバーへのデータベースのマウント時にデータベース スキーマのバージョンが自動でアップグレードされて発生していたような問題を回避することができます (アップグレードされていないサーバーにはマウントできなくなりました)。
データベース スキーマの初期バージョンは、DAG 内にデプロイされたサーバー バージョンに基づきます。Exchange 2013 RTM のデータベース スキーマのバージョンは 0.121 です。CU2 以降では get-MailboxDatabase または get-MailboxDatabaseCopyStatus を使用して確認することができます。MaximumSupportableDatabaseSchemaVersion は、CU のリリースごとに値が大きくなり、RTM 以降のサーバー バージョンで作成されたデータベースは、0.121 よりも大きい値のスキーマ バージョンで作成されています。CU3 以前は、Update-DatabaseSchema コマンドレットを使用して、手動で RequestedDatabaseSchemaVersion を CurrentSchemaVersion (データベース作成時のバージョン) よりも大きい値に設定することができました。CU3 ではセットアップ (ビルド間アップグレード時) が変更され、古いスキーマ バージョンで作成されたデータベースの場合、既存データベースのデータベース スキーマのバージョンを MaximumSupportableDatabaseSchemaVersion (0.126) にアップグレードするよう自動で要求するようになりました。設計上、RequestedDatabaseSchemaVersion を 0.126 に設定できるのは、DAG メンバー全員が既に CU3 にアップグレードしている場合のみです。データベース スキーマのアップグレードはすべてシリアルで処理され、RequestedDatabaseSchemaVersion の値が設定された後、マウント時に実行されます。このため、0.121 (RTM) から 0.126 (CU3) へのアップグレードには、5 つの独立したスキーマ アップグレード (トランザクション) が含まれます。
データベース スキーマのアップグレードは、データベース内のグローバル テーブルにのみ関係する点に注意してください。各メールボックスに関連付けられたテーブルに関係するスキーマも存在し、メールボックス スキーマをアップグレードすると、メールボックスに関連付けられたテーブルが変更されます。データベース マウント時にデータベース スキーマがアップグレードされ、その後メールボックスにログオンすると、対応するメールボックス スキーマのアップグレードが実行されます。メールボックス スキーマのバージョンは、get-MailboxStatistics を使用して確認でき、データベース スキーマのアップグレード完了後に初めてログオンして確認すると、データベース スキーマのバージョンと一致しています。
今回の更新によって高い信頼性が確立されており、Exchange サーバーが明示的にデプロイされて、特定のビルドの環境内でサポートされている値が大きくなる場合のみ、対象となる各環境 (テスト環境、ドッグフーディング環境、サービス運用環境、オンプレミス環境) の MaximumSupportedDatabaseSchemaVersion を内部的に制御することが可能です。マイクロソフトでは、テスト環境、ドッグフーディング環境、および Exchange Online 環境でのスキーマ アップグレードの安全性において、段階的に高度な信頼性を構築しており、CU3 のリリースに先立って Exchange Online でデータベース スキーマのインプレース アップグレードを完了しています。サービス運用環境内で実施されたこの検証作業を踏まえて、オンプレミスのお客様に対して自動アップグレードを有効化することが決定され、お客様には今回新しくなったスキーマのメリットを活用していただけることになりました。今後も CU/SP のリリース伴うスキーマ アップグレードごとに、検証作業を行う予定です。
スキーマ アップグレードの利点とは何か、気になっている方もいらっしゃることと思います。マイクロソフトでは Exchange 2013 のリリース以来、データベース スキーマのアップグレードを利用してデータベース レベルでのパフォーマンスを調整してきており、今後も同様の取り組みを続けていく予定です。また、各バージョン (CU または SP) がリリースされるたびにバージョンの値は自動的に大きくなっていきますが、スキーマは機能強化がある場合にのみ変更されます。
以下に、各データベース コピーをホストするサーバーがサポートしているスキーマ バージョン、各データベースのスキーマ バージョン、および各メールボックスのスキーマ バージョンを表示するためのコマンドレットをご紹介します。
[PS] D:\data\scripts>$identity = "forest noll"[PS] D:\data\scripts>$m = get-mailbox $identity [PS] D:\data\scripts>Get-MailboxDatabaseCopyStatus $m.database | FL Identity,status,*schema* Identity : D12 MBX Store 18\15M31Status : MountedMinimumSupportedDatabaseSchemaVersion : 0.121MaximumSupportedDatabaseSchemaVersion : 0.126RequestedDatabaseSchemaVersion : Identity : D12 MBX Store 18\D15M41Status : HealthyMinimumSupportedDatabaseSchemaVersion : 0.121MaximumSupportedDatabaseSchemaVersion : 0.126RequestedDatabaseSchemaVersion : Identity : D12 MBX Store 18\15M30Status : HealthyMinimumSupportedDatabaseSchemaVersion : 0.121MaximumSupportedDatabaseSchemaVersion : 0.126RequestedDatabaseSchemaVersion : Identity : D12 MBX Store 18\D15M40Status : ServiceDownMinimumSupportedDatabaseSchemaVersion :MaximumSupportedDatabaseSchemaVersion :RequestedDatabaseSchemaVersion : [PS] D:\data\scripts>Get-MailboxDatabase $m.database -status | FL *schema* CurrentSchemaVersion : 0.126RequestedSchemaVersion : 0.126 [PS] D:\data\scripts>Get-MailboxStatistics $m | FL *schema* CurrentSchemaVersion : 0.126 |
この記事が、皆様のお役に立てましたら幸いです。
Todd Luttinen