コピーのみのバックアップ
適用対象: SQL Server Azure SQL Managed Instance
コピーのみのバックアップとは、定期的に実行される一連の SQL Server バックアップとは別の SQL Server バックアップです。 通常、バックアップを行うとデータベースが変更され、その後のバックアップの復元方法に影響します。 ただし、データベース全体のバックアップや復元の手順に影響を与えない特殊な目的で、バックアップを行うと役に立つ場合があります。 このため、コピーのみのバックアップが導入されました。
コピーのみのバックアップには、次の種類があります:
コピーのみの完全バックアップ (すべての復旧モデル)
コピーのみのバックアップは、差分ベースまたは差分バックアップとして使用することはできません。また、差分ベースに影響することはありません。
コピーのみの完全バックアップも、他の完全バックアップと同じ方法で復元できます。
コピーのみのログ バックアップ (完全復旧モデルおよび一括ログ復旧モデルのみ)
コピーのみのログ バックアップは、既存のログ アーカイブ ポイントを保持するため、定期的なログ バックアップの一連の作業に影響することはありません。 通常、コピーのみのログ バックアップは不要です。 定期的なログ バックアップを (
WITH NORECOVERY
を使用して) 新しく作成し、復元シーケンスに必要なすべての以前のログ バックアップと共にそのバックアップを使用できます。 ただし、コピーのみのログ バックアップは、オンライン復元を実行する際に役立つ場合があります。 詳細については、コピーのみのバックアップ ファイルを使用して「例: 読み取り/書き込みファイルのオンライン復元 (完全復旧モデル)」の記事の手順を行ってください。コピーのみのバックアップの後、トランザクション ログは切り捨てられません。
コピーのみのバックアップは、backupset テーブルの is_copy_only
列に記録されます。
重要
Azure SQL Managed Instance では、サービスによって管理された Transparent Data Encryption (TDE) を使用して暗号化されたデータベースに対して、コピーのみのバックアップを作成することはできません。 サービスによって管理された TDE ではデータの暗号化に内部キーが使用され、そのキーをエクスポートすることはできません。そのため、他の場所でバックアップを復元することはできません。 暗号化されたデータベースのコピーのみのバックアップを作成できるようにするには、ユーザーが管理する TDE を代わりに使用することを検討してください。ただし、後で復元するために暗号化キーを確実に使用できるようにしておいてください。
コピーのみのバックアップを作成する
コピーのみのバックアップは、SQL Server Management Studio、Azure Data Studio、Transact-SQL、PowerShell を使用して作成できます。
A. SQL Server Management Studio を使用します。
次の例では、Sales
データベースのコピーのみのバックアップを既定のバックアップ場所にあるディスクにバックアップします。
オブジェクト エクスプローラーで、SQL Server データベース エンジンのインスタンスに接続し、そのインスタンスを展開します。
[データベース] を展開して
Sales
を右クリックし、[タスク] をポイントしてから [バックアップ] を選択します。[全般] ページの [ソース] セクションにある [コピーのみのバックアップ] チェック ボックスをオンします。
[OK] を選択します。
B. Transact-SQL の使用
この例では、COPY_ONLY
パラメーターを使用して Sales
データベースに対するコピーのみのバックアップが作成されます。 トランザクション ログのコピーのみのバックアップも同様に取得されます。
BACKUP DATABASE Sales
TO DISK = 'E:\BAK\Sales_Copy.bak'
WITH COPY_ONLY;
BACKUP LOG Sales
TO DISK = 'E:\BAK\Sales_LogCopy.trn'
WITH COPY_ONLY;
Note
DIFFERENTIAL
オプションと共に指定した場合、COPY_ONLY
は機能しません。
C: Transact-SQL および Azure SQL Managed Instance の使用
Azure SQL Managed Instance では、COPY_ONLY 完全バックアップの作成がサポートされています。 この例では、Microsoft Azure Blob Storage への MyDatabase
の COPY_ONLY バックアップを実行します。 ストレージ アカウント名は mystorageaccount
です。 コンテナーは myfirstcontainer
と呼ばれます。 ストレージ アクセス ポリシーは読み取り、書き込み、削除および一覧表示権で作成されています。 SQL Server 資格情報 https://mystorageaccount.blob.core.windows.net/myfirstcontainer
は、ストレージ アクセス ポリシーに関連付けられている Shared Access Signature を使用して作成されています。 Microsoft Azure Blob Storage への SQL Server のバックアップについては、「Microsoft Azure Blob Storage を使用した SQL Server のバックアップと復元」および「SQL Server Backup to URL」を参照してください。
-- Prerequisite to have write permissions
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/myfirstcontainer]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sp=...' -- Enter your secret SAS token here.
BACKUP DATABASE MyDatabase
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabaseBackup.bak'
WITH STATS = 5, COPY_ONLY;
コピーのみのバックアップを複数のストライプに分割するには、次の例を使用します。
BACKUP DATABASE MyDatabase
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-01.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-02.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-03.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-04.bak'
WITH COPY_ONLY;
D. PowerShell の使用
この例では、-CopyOnly
パラメーターを使用して Sales
データベースに対するコピーのみのバックアップが作成されます。
Backup-SqlDatabase -ServerInstance 'SalesServer' -Database 'Sales' -BackupFile 'E:\BAK\Sales_Copy.bak' -CopyOnly