Resource データベース

更新 : 2006 年 4 月 14 日

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

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

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

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

Resource データベースは、master データベースの場所に依存します。master データベースを移動する場合は、Resource データベースも同じ場所に移動する必要があります。詳細については、「システム データベースの移動」を参照してください。また、Resource データベースは、圧縮または暗号化した NTFS ファイル システムのフォルダに保存しないでください。パフォーマンスが低下し、アップグレードできなくなります。

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

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

ms190940.note(ja-jp,SQL.90).gif重要 :
mssqlsystemresource.mdf のバックアップを復元した後、それ以降のすべての更新を適用し直す必要があります。

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

Resource データベースの変更は、マイクロソフト カスタマ サポート サービス (CSS) のサポート スタッフの指示がある場合にのみ行ってください。サポートされているユーザー操作は、Resource データベースを master データベースと同じ場所に移動することだけです。詳細については、「システム データベースの移動」を参照してください。

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

参照

概念

システム データベース
専用管理者接続の使用
シングル ユーザー モードでの SQL Server の起動

その他の技術情報

OBJECT_DEFINITION (Transact-SQL)
SERVERPROPERTY (Transact-SQL)
SQL Server 2005 の master データベースを再構築する方法

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

変更内容 :
  • mssqlsystemresource.mdf のバックアップと復元に関する情報を修正しました。
  • サポートされているユーザー操作を「Resource データベースへのアクセス」セクションに明記しました。

2005 年 12 月 5 日

変更内容 :
  • Resource データベースの移動に関する内容を修正しました。