Resource データベース

Resource データベースは、読み取り専用のデータベースで、SQL Server に含まれるすべてのシステム オブジェクトがこれに格納されます。SQL Server システム オブジェクト (sys.objects など) は、物理的には Resource データベースに保存されていますが、論理的にはすべてのデータベースの sys スキーマ内にあるように扱われます。Resource データベースには、ユーザーのデータやユーザーのメタデータは保持されません。

Resource データベースが実装されたことで、SQL Server の新しいバージョンへのアップグレードを簡単かつ迅速に実行できます。SQL Server の以前のバージョンでは、アップグレードを行う場合、システム オブジェクトを削除してから再度作成する必要がありました。現在は、すべてのシステム オブジェクトが Resource データベース ファイルに格納されるため、Resource データベース ファイルをローカル サーバーにコピーするだけで、アップグレードを完了できます。

Resource データベースの物理プロパティ

Resource データベースの物理ファイル名は、mssqlsystemresource.mdf および mssqlsystemresource.ldf です。これらのファイルは <drive>:\Program Files\Microsoft SQL Server\MSSQL10_50.<instance_name>\MSSQL\Binn\ にあります。SQL Server の各インスタンスには、関連する mssqlsystemresource.mdf ファイルが 1 つだけあり、このファイルが共有されることはありません。

Resource データベースのバックアップと復元

SQL Server では、Resource データベースをバックアップできません。ファイル ベースまたはディスク ベースのバックアップは、mssqlsystemresource.mdf ファイルをデータベース ファイルではなくバイナリ (.EXE) ファイルのように実行できますが、SQL Server を使用してバックアップを復元することはできません。mssqlsystemresource.mdf のバックアップ コピーの復元は手動でのみ実行できます。また、現在の Resource データベースを古いバージョンや安全でない可能性のあるバージョンで上書きしないように注意する必要があります。

重要な注意事項重要

mssqlsystemresource.mdf のバックアップを復元した後、それ以降のすべての更新を適用し直す必要があります。

Resource データベースへのアクセス

Resource データベースの変更は、マイクロソフト カスタマー サポート サービス (CSS) のサポート スタッフの指示がある場合にのみ行ってください。Resource データベースの ID は、常に 32767 です。Resource データベースに関する他の重要な値には、バージョン番号とデータベースの最終更新時刻があります。

Resource データベースのバージョン番号を確認するには、次のステートメントを使用します。

SELECT SERVERPROPERTY('ResourceVersion');
GO

Resource データベースの最終更新時刻を確認するには、次のステートメントを使用します。

SELECT SERVERPROPERTY('ResourceLastUpdateDateTime');
GO

システム オブジェクトの SQL 定義にアクセスするには、次のように OBJECT_DEFINITION 関数を使用します。

SELECT OBJECT_DEFINITION(OBJECT_ID('sys.objects'));
GO