バックアップ デバイス (SQL Server)
適用対象: SQL Server
SQL Server データベース上でのバックアップ操作中、バックアップ対象のデータ (backup) は、物理バックアップ デバイスに書き込まれます。 この物理バックアップ デバイスは、メディア セットの最初のバックアップが書き込まれるときに初期化されます。 単一または一連のバックアップ デバイス上にあるバックアップによって、1 つのメディア セットが構成されます。
用語と定義
バックアップ ディスク (backup disk)
1 つ以上のバックアップ ファイルを含むハード ディスクまたはその他のディスク記憶メディア。 バックアップ ファイルは正規のオペレーティング システム ファイルです。
メディア セット (media set)
テープやディスク ファイルなどのバックアップ メディアに順序を付けてまとめたもの。決まった種類のバックアップ デバイスが複数使用されます。 メディア セットの詳細については、「 メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」をご覧ください。
物理バックアップ デバイス (physical backup device)
オペレーティング システムによって提供されるテープ ドライブまたはディスク ファイル。 バックアップは 1 ~ 64 個のバックアップ デバイスに書き込むことができます。 バックアップに複数のバックアップ デバイスが必要な場合、デバイスはすべて 1 種類のデバイス (ディスクまたはテープ) に対応する必要があります。
SQL Server のバックアップは、ディスクやテープだけでなく、Azure Blob Storage に書き込むこともできます。
ディスク バックアップ デバイスの使用
バックアップ操作によってバックアップがメディア セットに追加されているときにディスク ファイルがいっぱいになると、バックアップ操作は失敗します。 バックアップ ファイルの最大サイズはディスク デバイス上の使用可能な空き領域によって決まるため、バックアップ ディスク デバイスの適切なサイズは、バックアップのサイズによって異なります。
ディスク バックアップ デバイスには、ATA ドライブなどの単純なディスク デバイスを使用できます。 また、ホットスワップ可能なディスク ドライブも使用できます。この場合、ドライブ上のいっぱいになったディスクを空のディスクと交換する作業を透過的に行えます。 バックアップ ディスクには、サーバー上のローカル ディスクや、共有ネットワーク リソースであるリモート ディスクを使用できます。 リモート ディスクの使用方法については、このトピックの「 ネットワーク共有のファイルへのバックアップ」をご覧ください。
SQL Server管理ツールは、ディスクファイル上にタイムスタンプ名を自動的に生成するため、ディスクバックアップデバイスを非常に柔軟に扱うことができます。
重要
バックアップ ディスクには、データベースのデータ ディスクやログ ディスクとは別のディスクを使用することをお勧めします。 これは、データ ディスクやログ ディスクで障害が発生した場合に確実にバックアップにアクセスできるようにするために必要です。
データベース ファイルとバックアップ ファイルが同じデバイスにある場合、デバイスに障害が発生すると、データベースとバックアップの両方が使用できなくなります。 また、データベースとバックアップ ファイルを異なるデバイスに置くと、データベースの運用でもバックアップの書き込みでも I/O パフォーマンスが最適化されます。
物理名を使用してバックアップ ファイルを指定する (Transact-SQL)
物理デバイス名を使用してバックアップ ファイルを指定するための基本的な BACKUP 構文は次のとおりです。
BACKUP DATABASE database_name
TO DISK = { 'physical_backup_device_name' | @physical_backup_device_name_var }
次に例を示します。
BACKUP DATABASE AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak';
GO
RESTORE ステートメントで物理ディスク デバイスを指定するための基本構文は次のとおりです。
RESTORE { DATABASE | LOG } database_name
FROM DISK = { 'physical_backup_device_name' | @physical_backup_device_name_var }
たとえば、 にします。
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak';
ディスク バックアップ ファイルのパスを指定する
バックアップ ファイルを指定する場合、その完全パスとファイル名を入力する必要があります。 ファイルへのバックアップ時にファイル名または相対パスだけを指定すると、バックアップ ファイルは既定のバックアップ ディレクトリに配置されます。 既定のバックアップ ディレクトリは、C:\Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\Backup です ( n はサーバー インスタンスの番号です)。 したがって、既定のサーバー インスタンスの場合、既定のバックアップ ディレクトリは C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup になります。
指定があいまいになる状態を避けるために、特にスクリプトでは、バックアップ ディレクトリのパスを各 DISK 句で明示的に指定することをお勧めします。 ただし、これは、クエリ エディターを使用している場合はそれほど重要ではありません。 この場合、バックアップ ファイルが既定のバックアップ ディレクトリに存在することがわかっていれば、DISK 句からパスを省略できます。 たとえば、次の BACKUP
ステートメントでは、 AdventureWorks2022
データベースが、既定のバックアップ ディレクトリにバックアップされます。
BACKUP DATABASE AdventureWorks2022
TO DISK = 'AdventureWorks2022.bak';
GO
Note
既定の場所は、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.n\MSSQLServer の BackupDirectoryレジストリ キーに格納されます。
ネットワーク共有ファイルにバックアップする
SQL Server からリモート ディスク ファイルにアクセスするには、 SQL Server サービス アカウントにネットワーク共有へのアクセス権が必要です。 これには、バックアップ操作によるネットワーク共有への書き込みに必要な権限、および復元操作によるネットワーク共有からの読み取りに必要な権限も含まれます。 ネットワーク ドライブおよび権限の可用性は、 SQL Server サービスが実行されているコンテキストに依存します:
SQL Serverをドメイン・ユーザー・アカウントで実行しているときにネットワーク・ドライブにバックアップするには、SQL Serverを実行しているセッションで共有ドライブをネットワーク・ドライブとしてマッピングする必要があります。 コマンド ラインから Sqlservr.exe を起動すると、SQL Serverはログイン・セッションでマッピングしたネットワーク・ドライブを認識します。
Sqlservr.exe をサービスとして実行する場合、 SQL Server はログイン セッションとは無関係な別のセッションで実行されます。 サービスが実行されているセッションには、マップされた独自のドライブがある場合がありますが、通常はありません。
ドメイン ユーザーではなくコンピューター アカウントを使用することにより、ネットワーク サービス アカウントで接続できます。 特定のコンピューターから共有ドライブへのバックアップを可能にするには、そのコンピューター アカウントにアクセス権を与えます。 バックアップを書き込んでいる Sqlservr.exe のプロセスにアクセス権がある限り、BACKUP コマンドを送信するユーザーにアクセス権があるかどうかが問題になることはありません。
重要
ネットワーク経由でデータをバックアップすると、ネットワーク エラーの影響を受ける場合があります。そのため、リモート ディスクを使用する際はバックアップ操作を終了後に検証することをお勧めします。 詳細については、「RESTORE VERIFYONLY (Transact-SQL) 」をご覧ください。
UNC (汎用名前付け規則) 名を指定する
バックアップ コマンドや復元コマンドでネットワーク共有を指定するには、ファイルの完全修飾 UNC (汎用名前付け規則) 名をバックアップ デバイスに使用します。 UNC 名の形式は、\\Systemname\ShareName\Path\FileNameです。
次に例を示します。
BACKUP DATABASE AdventureWorks2022
TO DISK = '\\BackupSystem\BackupDisk1\AW_backups\AdventureWorksData.Bak';
GO
テープ デバイスの使用
Note
テープ バックアップ デバイスは、将来のバージョンの SQL Server でサポートされなくなる予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。
SQL Serverデータをテープにバックアップするには、テープ・ドライブがMicrosoft Windowsオペレーティング・システムでサポートされている必要があります。 また、特定のテープ ドライブでは、ドライブの製造元で推奨されているテープのみを使用することをお勧めします。 テープ ドライブのインストール方法の詳細については、Windows オペレーティング システムのマニュアルを参照してください。
テープ ドライブを使用する場合、バックアップ操作は 1 つのテープがいっぱいになると、別のテープで続行できます。 各テープには、メディア ヘッダーが含まれています。 最初に使用されるメディアは 先頭テープといいます。 その後の各テープは 後続テープ と呼ばれ、前のテープより 1 つ大きいメディア シーケンス番号が付けられます。 たとえば、4 つのテープ デバイスに関連付けられているメディア セットには、少なくとも 4 つの先頭テープ (およびデータベースが収まらない場合は 4 組の後続テープ) が含まれます。 バックアップ セットを追加する場合は、その組に最終テープをセットする必要があります。 最後のテープがマウントされていない場合、データベース エンジンはマウントされたテープの最後までスキャンし、テープの交換を要求します。 その時点で、最終テープをセットします。
テープ バックアップ デバイスは、次の点を除いて、ディスク デバイスと同じように使用します。
テープ デバイスは、SQL Server のインスタンスが動作しているコンピューターに物理的に接続する必要があります。 リモートのテープ デバイスへのバックアップはサポートされません。
バックアップ操作中にテープ バックアップ デバイスがいっぱいになっても、まだデータを書き込む必要がある場合、 SQL Server は新しいテープを挿入するように要求するメッセージを表示し、新しいテープが挿入された後にバックアップ操作を続行します。
物理名を使用してバックアップ テープを指定する (Transact-SQL)
テープ ドライブの物理デバイス名を使用してバックアップ テープを指定するための基本的な BACKUP 構文は次のとおりです。
BACKUP { DATABASE | LOG } database_name
TO TAPE = { 'physical_backup_device_name' | @physical_backup_device_name_var }
次に例を示します。
BACKUP LOG AdventureWorks2022
TO TAPE = '\\.\tape0';
GO
RESTORE ステートメントで物理テープ デバイスを指定するための基本構文は次のとおりです。
RESTORE { DATABASE | LOG } database_name
FROM TAPE = { 'physical_backup_device_name' | @physical_backup_device_name_var }
テープ固有の BACKUP 操作と RESTORE 操作 (Transact-SQL)
テープ管理を容易にするには、BACKUP ステートメントで次のテープ固有のオプションを指定します。
{ NOUNLOAD | UNLOAD }
バックアップ操作や復元操作の後にバックアップ テープをテープ ドライブから自動的にアンロードするかどうかを制御できます。 UNLOAD または NOUNLOAD はセッションの設定であり、セッションが終了するまで、または代わりとなるオプションの指定によりリセットされるまで有効です。
{ REWIND | NOREWIND }
SQL Serverがバックアップまたはリストア操作後もテープを開いたままにするか、テープがいっぱいになった後にテープを解放して巻き戻すかを制御できます。 既定の動作では、テープを巻き戻します (REWIND)。
Note
BACKUP 構文および引数の詳細については、「BACKUP (Transact-SQL) 」をご覧ください。 RESTORE 構文および引数の詳細については、それぞれ「RESTORE (Transact-SQL) 」と「RESTORE の引数 (Transact-SQL) 」をご覧ください。
開いているテープの管理
開いているテープ デバイスの一覧と、マウント要求の状態を確認するには、 sys.dm_io_backup_tapes 動的管理ビューに対してクエリを実行します。 このビューでは、開いているすべてのテープが表示されます。 これには、次の BACKUP 操作または RESTORE 操作を待機して一時的にアイドル状態になっている使用中のテープも含まれます。
テープが誤って開いたままになっている場合、最も迅速にテープを解放するには、RESTORE REWINDONLY FROM TAPE =backup_device_nameコマンドを使用します。 詳細については、「RESTORE REWINDONLY (Transact-SQL) 」を参照してください。
Azure Blob Storage の使用
SQL Server のバックアップを Azure Blob Storage に書き込むことができます。 バックアップに Azure Blob Storageを使用する方法の詳細については、Microsoft Azure Blob Storageを使用したSQL Serverのバックアップと復元を参照してください。
論理バックアップ デバイスを使用する
" 論理バックアップ デバイス " とは、特定の物理バックアップ デバイス (ディスク ファイルやテープ ドライブ) を示す、省略可能なユーザー定義名です。 論理バックアップ デバイスにより、対応する物理バックアップ デバイスを参照する際に間接指定を使用できます。
論理バックアップ デバイスの定義には、物理デバイスへの論理名の割り当てが含まれます。 たとえば、Z:\SQLServerBackups\AdventureWorks2022.bak
ファイルまたは \\.\tape0
テープ ドライブを指す論理デバイスAdventureWorksBackups
を定義できます。 バックアップコマンドと復元コマンドは、DISK = 'Z:\SQLServerBackups\AdventureWorks2022.bak'
または TAPE = '\\.\tape0'
バックアップデバイスとして指定 AdventureWorksBackups
できます。
論理デバイス名は、サーバー インスタンス上のすべての論理バックアップ デバイスで一意になる必要があります。 既存の論理デバイス名を表示するには、 sys.backup_devices カタログ ビューに対してクエリを実行します。 このビューでは、各論理バックアップ デバイスの名前が表示され、対応する物理バックアップ デバイスの種類と物理的なファイル名またはパスが示されます。
論理バックアップ デバイスを定義した後、BACKUP コマンドまたは RESTORE コマンドでは、デバイスの物理名ではなく論理バックアップ デバイスを指定できます。 たとえば、次のステートメントでは、 AdventureWorks2022
データベースが AdventureWorksBackups
論理バックアップ デバイスにバックアップされます。
BACKUP DATABASE AdventureWorks2022
TO AdventureWorksBackups;
GO
Note
特定の BACKUP ステートメントまたは RESTORE ステートメントでは、論理バックアップ デバイス名と対応する物理バックアップ デバイス名を交換できます。
論理バックアップ デバイスを使用する 1 つの利点は、長い物理パスを使用するよりも使いやすいことです。 一連のバックアップを同じパスまたはテープ デバイスに書き込む予定がある場合は、論理バックアップ デバイスを使用すると便利です。 論理バックアップ デバイスは、テープ バックアップ デバイスを識別する際に特に役立ちます。
バックアップ スクリプトは、特定の論理バックアップ デバイスを使用するように記述できます。 これにより、スクリプトを更新せずに、新しい物理バックアップ デバイスに切り替えることができます。 切り替えには、次の処理が必要です。
元の論理バックアップ デバイスを削除します。
新しい論理バックアップ デバイスを定義します。このデバイスは、元の論理デバイス名を使用しますが、別の物理バックアップ デバイスにマップされているものです。 論理バックアップ デバイスは、テープ バックアップ デバイスを識別する際に特に役立ちます。
ミラー化バックアップ メディア セット
バックアップ メディア セットをミラー化すると、バックアップ デバイスの誤動作の影響を軽減できます。 バックアップはデータ損失に対する最後の防護策なので、このような誤動作は非常に深刻です。 データベースのサイズが大きくなるにつれて、バックアップ デバイスやメディアの障害によってバックアップを復元できなくなる可能性が高くなります。 バックアップ メディアをミラー化すると、物理バックアップ デバイスの冗長性が実現され、バックアップの信頼性が向上します。 詳細については、「 ミラー化バックアップ メディア セット (SQL Server) 」を参照してください。
Note
ミラー化バックアップ メディア セットは、SQL Server 2005 Enterprise Edition およびそれ以降のバージョンのみでサポートされています。
SQL Server のバックアップをアーカイブする
ファイル システム バックアップ ユーティリティを使用してディスクのバックアップをアーカイブし、アーカイブをオフサイトに保存することをお勧めします。 ディスクを使用することには、アーカイブしたバックアップをネットワーク経由でオフサイトのディスクに書き込めるという利点があります。 Azure Blob Storage は、オフサイト保存のオプションとして使用できます。 ディスク バックアップをアップロードするか、Azure Blob Storage にバックアップを直接書き込むことができます。
もう 1 つの一般的なアーカイブ方法は、 SQL Server バックアップをローカルのバックアップ ディスクに書き込み、そのバックアップをテープにアーカイブして、そのテープをオフサイトで保存するという形態です。
関連タスク
ディスク デバイスを使用するには (SQL Server Management Studio)
テープ デバイスを使用するには (SQL Server Management Studio)
論理バックアップ デバイスを定義するには
BackupDevice (SMO)
論理バックアップ デバイスを使用するには
バックアップ デバイスの情報を表示するには
論理バックアップ デバイスを削除するには
関連項目
SQL Server の Backup Device オブジェクト
BACKUP (Transact-SQL)
メンテナンス計画
メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)
RESTORE (Transact-SQL)
RESTORE LABELONLY (Transact-SQL)
sys.backup_devices (Transact-SQL)
sys.dm_io_backup_tapes (Transact-SQL)
ミラー化バックアップ メディア セット (SQL Server)