システム データベースのバックアップと復元に関する注意点
SQL Server では、システムレベルのデータベースのセットであるシステム データベースが管理されています。これらのデータベースは、サーバー インスタンスの運用に不可欠です。いくつかのシステム データベースは、重大な更新が行われるたびにバックアップする必要があります。常にバックアップする必要があるシステム データベースには、msdb、master、および model があります。サーバー インスタンス上のいずれかのデータベースでレプリケーションが使用されている場合は、distribution システム データベースもバックアップする必要があります。これらのシステム データベースをバックアップすることで、ハード ディスク障害などのシステム障害時に SQL Server システムの復元と復旧を行うことができます。
次の表に、すべてのシステム データベースの概要を示します。
システム データベース |
説明 |
バックアップの必要性 |
復旧モデル |
備考 |
---|---|---|---|---|
SQL Server システムに関するシステム レベルのすべての情報を記録するデータベース。 |
○ |
単純 |
master は、ビジネス ニーズを満たすのに十分なデータ保護を行うために必要な頻度でバックアップします。定期的なバックアップ スケジュールの設定をお勧めします。大量の更新の後で追加のバックアップを行ってこれを補完することもできます。 詳細については、「master データベースのバックアップに関する注意点」を参照してください。 |
|
SQL Server のインスタンス上に作成されるすべてのデータベースのテンプレート。 |
○ |
ユーザー構成可能1 |
model は、データベース オプションをカスタマイズした直後など、ビジネス ニーズに応じて必要な場合のみバックアップします。 ベスト プラクティス : model については、必要なときにデータベースの完全バックアップのみを作成することをお勧めします。model はサイズが小さく、変更頻度が低いため、ログのバックアップは必要ありません。 詳細については、「model データベースおよび msdb データベースのバックアップに関する注意点」を参照してください。 |
|
警告やジョブのスケジュール設定とオペレータの記録のために SQL Server エージェントによって使用されるデータベース。msdb には、バックアップと復元の履歴テーブルなどの履歴テーブルも含まれます。 |
○ |
単純 (既定) |
msdb は更新するたびにバックアップします。 詳細については、「model データベースおよび msdb データベースのバックアップに関する注意点」を参照してください。 |
|
Resource (RDB) |
Microsoft SQL Server 2005 以降のバージョンに付属するすべてのシステム オブジェクトのコピーを含んだ読み取り専用のデータベース。 |
× |
— |
Resource データベースにはコードのみが含まれ、mssqlsystemresource.mdf ファイル内に存在します。そのため、SQL Server では Resource データベースをバックアップできません。
注
mssqlsystemresource.mdf ファイルに対してファイル ベースまたはディスク ベースのバックアップを実行するには、このファイルをデータベース ファイルではなくバイナリ (.exe) ファイルとして扱います。ただし、これらのバックアップでは SQL Server の復元を使用できません。mssqlsystemresource.mdf のバックアップ コピーの復元は手動でのみ実行できます。また、現在の Resource データベースを古いバージョンや安全でない可能性のあるバージョンで上書きしないように注意する必要があります。
|
一時的な結果セットや生成途中の結果セットを保存するためのワークスペース。このデータベースは、SQL Server インスタンスを起動するたびに作成し直されます。サーバー インスタンスをシャットダウンするとき、tempdb 内のすべてのデータは完全に削除されます。 |
× |
単純 |
tempdb システム データベースはバックアップできません。 |
|
サーバーをレプリケーション ディストリビュータとして構成している場合に限り存在するデータベース。あらゆる種類のレプリケーションのメタデータや履歴、およびトランザクション レプリケーションのトランザクションが保存されます。 |
○ |
単純 |
distribution データベースをバックアップするタイミングの詳細については、「レプリケートされたデータベースのバックアップと復元」を参照してください。 |
1 model の現在の復旧モデルの確認方法については、「データベースの復旧モデルを表示または変更する方法 (SQL Server Management Studio)」または「sys.databases (Transact-SQL)」を参照してください。
システム データベースの復元
重要 |
---|
システム データベースは、サーバー インスタンスが現在実行されている SQL Server のバージョンで作成されたバックアップからのみ復元できます。たとえば、SQL Server 2005 SP1 で実行されているサーバー インスタンス上でシステム データベースを復元するには、サーバー インスタンスが SQL Server 2005 SP1 にアップグレードされた後に作成されたデータベース バックアップを使用する必要があります。 |
データベースを復元するには、SQL Server のインスタンスを実行している必要があります。SQL Server インスタンスを起動するには、master データベースにアクセスでき、かつ少なくとも一部は使用できる必要があります。master が使用できない状態になった場合、このデータベースを次のいずれかの方法で使用できる状態に戻すことができます。
現在のデータベース バックアップから master を復元します。
サーバー インスタンスを起動できる場合は、データベースの完全バックアップから master を復元できます。詳細については、「master データベースの復元に関する注意点」を参照してください。
master を完全に再構築します。
master に深刻な破損があり、それが原因で SQL Server を起動できない場合、master を再構築する必要があります。データベースを再構築するとすべてのデータが失われるので、次に、master データベースの最新の完全バックアップを復元します。master を再構築する方法の詳細については、「システム データベースの再構築」を参照してください。
重要 |
---|
master を再構築すると、すべてのシステム データベースが再構築されます。 |
model、msdb、または distribution のいずれかのデータベースが使用できない状態になった場合は、データベースの現在の完全バックアップから復元します。詳細については、「model データベースおよび msdb データベースの復元に関する注意点」および「レプリケートされたデータベースのバックアップと復元」を参照してください。