Resource データベース

適用対象:SQL Server

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\MSSQL<version>.<instance_name>\MSSQL\Binn\ に位置しており、移動してはなりません。 SQL Server の各インスタンスには、mssqlsystemresource.mdf ファイルが 1 つだけあり、インスタンスによりこのファイルが共有されることはありません。

警告

アップグレードとサービス パックにより、新しいリソース データベースが提供されることがあります。これは BINN フォルダーにインストールされます。 リソース データベースの場所の変更はサポートされておらず、お勧めしません。

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

SQL Server はリソース データベースデータベースをバックアップできません。 ファイル ベースまたはディスク ベースのバックアップは、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  

システム データベース

データベース管理者用の診断接続

OBJECT_DEFINITION (Transact-SQL)

SERVERPROPERTY (Transact-SQL)

シングル ユーザー モードでの SQL Server の起動