システム データベースのバックアップと復元 (SQL Server)

SQL Server では、システムレベルのデータベースのセットであるシステム データベースが管理されています。これらのデータベースは、サーバー インスタンスの運用に不可欠です。 いくつかのシステム データベースは、重大な更新が行われるたびにバックアップする必要があります。 常にバックアップする必要があるシステム データベースには、 msdbmaster、および modelがあります。 サーバー インスタンス上のいずれかのデータベースでレプリケーションが使用されている場合は、 distribution システム データベースもバックアップする必要があります。 これらのシステム データベースをバックアップすることで、ハード ディスク障害などのシステム障害時に SQL Server システムの復元と復旧を行うことができます。

次の表に、すべてのシステム データベースの概要を示します。

システム データベース 説明 バックアップの必要性 復旧モデル 説明
master SQL Server システムに関するシステム レベルのすべての情報を記録するデータベース。 はい シンプル master は、ビジネス ニーズを満たすのに十分なデータ保護を行うために必要な頻度でバックアップします。 定期的なバックアップ スケジュールの設定をお勧めします。大量の更新の後で追加のバックアップを行ってこれを補完することもできます。
model SQL Serverのインスタンス上に作成されるすべてのデータベースのテンプレート。 はい ユーザー構成可能1 model は、データベース オプションをカスタマイズした直後など、ビジネス ニーズに応じて必要な場合のみバックアップします。

ベスト プラクティス:model については、必要なときにデータベースの完全バックアップのみを作成することをお勧めします。 model はサイズが小さく、変更頻度が低いため、ログのバックアップは必要ありません。
msdb 警告やジョブのスケジュール設定とオペレーターの記録のために SQL Server エージェントによって使用されるデータベース。 msdb には、バックアップと復元の履歴テーブルなどの履歴テーブルも含まれます。 はい 単純 (既定) msdb は更新するたびにバックアップします。
Resource (RDB) に付属するすべてのシステム オブジェクトのコピーを含んだ読み取り専用のデータベース。 SQL Server いいえ - Resource データベースにはコードのみが含まれ、mssqlsystemresource.mdf ファイル内に存在します。 そのため、 SQL Server では Resource データベースをバックアップできません。

注:mssqlsystemresource.mdf ファイルに対してファイル ベースまたはディスク ベースのバックアップを実行するには、このファイルをデータベース ファイルではなくバイナリ (.exe) ファイルとして扱います。 ただし、これらのバックアップでは SQL Server の復元を使用できません。 mssqlsystemresource.mdf のバックアップ コピーの復元は手動でのみ実行できます。また、現在の Resource データベースを古いバージョンや安全でない可能性のあるバージョンで上書きしないように注意する必要があります。
tempdb 一時的な結果セットや生成途中の結果セットを保存するためのワークスペース。 このデータベースは、 SQL Server インスタンスを起動するたびに作成し直されます。 サーバー インスタンスをシャットダウンするとき、 tempdb 内のすべてのデータは完全に削除されます。 いいえ シンプル tempdb システム データベースはバックアップできません。
[ディストリビューションの構成] サーバーをレプリケーション ディストリビューターとして構成している場合に限り存在するデータベース。 あらゆる種類のレプリケーションのメタデータや履歴、およびトランザクション レプリケーションのトランザクションが保存されます。 はい シンプル distribution データベースをバックアップするタイミングの詳細については、「 レプリケートされたデータベースのバックアップと復元」を参照してください。

1 モデルの現在の復旧モデルについては、「データベースの復旧モデルの表示または変更 (SQL Server)」または「sys.databases (Transact-SQL)」を参照してください。

システム データベースの復元に関する制限

  • システム データベースは、サーバー インスタンスが現在実行されている SQL Server のバージョンで作成されたバックアップからのみ復元できます。 たとえば、SQL Server 2012 SP1 で実行されているサーバー インスタンスでシステム データベースを復元する場合です。

  • データベースを復元するには、 SQL Server のインスタンスを実行している必要があります。 SQL Server インスタンスを起動するには、 master データベースにアクセスでき、かつ少なくとも一部は使用できる必要があります。 master が使用できない状態になった場合、このデータベースを次のいずれかの方法で使用できる状態に戻すことができます。

    • 現在のデータベース バックアップから master を復元します。

      サーバー インスタンスを起動できる場合は、データベースの完全バックアップから master を復元できます。

    • master を完全に再構築します。

      master に深刻な破損があり、それが原因で SQL Serverを起動できない場合、 masterを再構築する必要があります。 詳細については、「 システム データベースの再構築」を参照してください。

      重要

      master を再構築すると、すべてのシステム データベースが再構築されます。

  • 状況によっては、モデル データベースを復旧する問題は、システム データベースの再構築、あるいはモデル データベースの mdf ファイルや ldf ファイルの置き換えが必要な場合があります。 詳細については、「 システム データベースの再構築」を参照してください。

Related Tasks

参照

ディストリビューション データベース
master データベース
msdb データベース
model データベース
Resource データベース
tempdb データベース