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