適用対象:SQL Server
Azure SQL Managed Instance
コピーのみのバックアップとは、定期的に実行される一連の SQL Server バックアップとは別の SQL Server バックアップです。 通常、バックアップを行うとデータベースが変更され、その後のバックアップの復元方法に影響します。 ただし、データベース全体のバックアップや復元の手順に影響を与えない特殊な目的で、バックアップを行うと役に立つ場合があります。 このため、コピーのみのバックアップが導入されました。
コピーのみのバックアップの種類
コピーのみのバックアップには、次の種類があります:
コピーのみの完全バックアップ (すべての復旧モデル)
コピーのみの 完全 バックアップは、差分ベースまたは差分バックアップとして機能することはできないため、差分ベースには影響しません。
コピーのみの完全バックアップも、他の完全バックアップと同じ方法で復元できます。
コピーのみのログ バックアップ (完全復旧モデルと一括ログ復旧モデルのみ)
コピーのみの ログ バックアップでは既存のログ アーカイブ ポイントが保持されるため、通常のログ バックアップのシーケンス処理には影響しません。 通常、コピーのみのログ バックアップは不要です。 代わりに、新しい定期的なログ バックアップを作成し、そのバックアップを復元シーケンスに必要な以前のログ バックアップと共に (
WITH NORECOVERY
オプションを使用して) 復元できます。コピーのみのログ バックアップは、オンライン復元を実行する場合に役立つことがあります。 詳細については、コピーのみのバックアップ ファイルを使用して「例: 読み取り/書き込みファイルのオンライン復元 (完全復旧モデル)」の記事の手順を行ってください。
コピーのみのバックアップの後、トランザクション ログは切り捨てられません。
注釈
コピーのみのバックアップは、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 の使用
この例では、Sales
パラメーターを使用して COPY_ONLY
データベースに対するコピーのみのバックアップが作成されます。 トランザクション ログのコピーのみのバックアップも同様に取得されます。
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;
注
COPY_ONLY
オプションと共に指定した場合、DIFFERENTIAL
は機能しません。
C: Transact-SQL および Azure SQL Managed Instance の使用
Azure SQL Managed Instance では、 COPY_ONLY
完全バックアップの作成がサポートされています。 この例では、Microsoft Azure Blob Storage へのCOPY_ONLY
のMyDatabase
バックアップを実行します。 ストレージ アカウント名は mystorageaccount
です。 コンテナーは myfirstcontainer
と呼ばれます。 ストレージ アクセス ポリシーは、読み取り、書き込み、削除、およびリスト権限を使用して作成されます。 SQL Server 資格情報 https://mystorageaccount.blob.core.windows.net/myfirstcontainer
は、ストレージ アクセス ポリシーに関連付けられている Shared Access Signature を使用して作成されています。 Microsoft Azure Blob Storage への SQL Server バックアップの詳細については、Azure Blob Storage を 使用した SQL Server のバックアップと復元、および Microsoft Azure Blob Storageの URL への SQL Server バックアップに関するページを参照してください。
-- 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 の使用
この例では、Sales
パラメーターを使用して -CopyOnly
データベースに対するコピーのみのバックアップが作成されます。
Backup-SqlDatabase -ServerInstance 'SalesServer' -Database 'Sales' -BackupFile 'E:\BAK\Sales_Copy.bak' -CopyOnly