データベースの完全バックアップ (SQL Server)

適用対象: SQL Server

データベースの完全バックアップでは、データベース全体をバックアップします。 このバックアップにはトランザクション ログの一部が含まれるため、データベースの完全バックアップを復元した後に、データベース全体を復旧することができます。 データベースの完全バックアップは、バックアップが完了した時点でのデータベースを表します。

データベースのサイズが大きくなると、データベースの完全バックアップにかかる時間は長くなり、必要な記憶領域も増加します。 このため、大きなデータベースの場合は、データベースの完全バックアップを一連の 差分データベース バックアップで補完することができます。 詳細については、「差分バックアップ (SQL Server)」を参照してください。

重要

データベースのバックアップでは、TRUSTWORTHY が OFF に設定されます。 TRUSTWORTHY から ON を設定する方法については、「ALTER DATABASE SET オプション (Transact-SQL)」を参照してください。

単純復旧モデルでのデータベース バックアップ

単純復旧モデルでは、データベースをバックアップした後に障害が発生すると、その間の作業内容が失われる可能性があります。 作業損失の可能性は、次のバックアップまで、データを更新するたびに増加します。次の完全バックアップで作業損失の可能性はゼロに戻り、そこから再び増加していきます。 作業損失の可能性は、バックアップ間の時間が増加します。 次の図に、データベースの完全バックアップのみを使用するバックアップ方法における作業損失の可能性を示します。

データベース バックアップ間での作業損失の可能性を示す図。

例 (Transact-SQL)

次の例は、WITH FORMAT を使用してデータベースの完全バックアップを作成することにより、データベースの完全バックアップを作成する方法を示しています。

-- Back up the AdventureWorks2022 database to new media set.
BACKUP DATABASE AdventureWorks2022
    TO DISK = 'Z:\SQLServerBackups\AdventureWorksSimpleRM.bak'
    WITH FORMAT;
GO

完全復旧モデルでのデータベース バックアップ

完全復旧と一括ログ復旧を使用するデータベースには、データベース バックアップが必要です。ただし、それだけでは十分とは言えません。 トランザクション ログのバックアップも必要です。 次の図に、完全復旧モデルで可能な限り単純化したバックアップ方法を示します。

一連の完全データベース バックアップとログ バックアップを示す図。

ログ バックアップを作成する方法については、「トランザクション ログ バックアップ (SQL Server)」を参照してください。

例 (Transact-SQL)

次の例は、WITH FORMAT を使用してデータベースの完全バックアップを作成することにより、データベースの完全バックアップを作成する方法を示しています。 その後、トランザクション ログをバックアップします。 実際の状況では、一連の定期的なログ バックアップを実行する必要があります。 この例では、完全復旧モデルが使用されるように AdventureWorks2022 サンプル データベースを設定します。

USE master;
GO
ALTER DATABASE AdventureWorks2022 SET RECOVERY FULL;
GO
-- Back up the AdventureWorks2022 database to new media set (backup set 1).
BACKUP DATABASE AdventureWorks2022
  TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022FullRM.bak'
  WITH FORMAT;
GO
--Create a routine log backup (backup set 2).
BACKUP LOG AdventureWorks2022 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022FullRM.bak';
GO

データベースの完全バックアップを使用したデータベースを復元する

データベースを復元することによって、データベースの完全バックアップからワン ステップで任意の場所にデータベース全体を再作成できます。 データベースの完全バックアップには、バックアップ完了時までデータベースを復旧するのに十分なトランザクション ログが含まれています。 復元されたデータベースは、データベース バックアップが完了した時点の元のデータベースの状態から、コミットされていないトランザクションを差し引いた状態と一致します。 完全復旧モデルでは、さらに、後続のすべてのトランザクション ログ バックアップを復元する必要があります。 データベースが復旧されると、コミットされていないトランザクションはロールバックされます。

詳細については、「データベースの全体復元 (単純復旧モデル)」に関するページ、または「データベースの全体復元 (完全復旧モデル)」に関するページを参照してください。