バックアップ デバイス (SQL Server)

適用対象:SQL Server (サポートされているすべてのバージョン)

SQL Server データベースでのバックアップ操作中に、バックアップされたデータ (バックアップ) が物理バックアップ デバイスに書き込まれます。 この物理バックアップ デバイスは、メディア セットの最初のバックアップが書き込まれるときに初期化されます。 単一または一連のバックアップ デバイス上にあるバックアップによって、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 AdventureWorks2012   
   TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak';  
GO  

RESTORE ステートメントで物理ディスク デバイスを指定するための基本構文は次のとおりです。

RESTORE { DATABASE | LOG } database_name

FROM DISK = { 'physical_backup_device_name'physical_backup_device_name_var | @ }

たとえば、次のように入力します。

RESTORE DATABASE AdventureWorks2012   
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.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 のステートメントでは、 AdventureWorks2012 データベースを既定のバックアップ ディレクトリにバックアップします。

BACKUP DATABASE AdventureWorks2012   
   TO DISK = 'AdventureWorks2012.bak';  
GO  

注意

既定の場所は、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.n\MSSQLServerBackupDirectoryレジストリ キーに格納されます。

ネットワーク共有ファイルにバックアップする

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 AdventureWorks2012   
   TO DISK = '\\BackupSystem\BackupDisk1\AW_backups\AdventureWorksData.Bak';  
GO  

テープ デバイスの使用

注意

テープ バックアップ デバイスは、将来のバージョンの 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 AdventureWorks2012   
   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)。

注意

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 ストレージ サービスを使用した SQL Server のバックアップと復元」をご覧ください。

論理バックアップ デバイスを使用する

" 論理バックアップ デバイス " とは、特定の物理バックアップ デバイス (ディスク ファイルやテープ ドライブ) を示す、省略可能なユーザー定義名です。 論理バックアップ デバイスにより、対応する物理バックアップ デバイスを参照する際に間接指定を使用できます。

論理バックアップ デバイスの定義には、物理デバイスへの論理名の割り当てが含まれます。 たとえば、論理デバイス AdventureWorksBackups が Z:\SQLServerBackups\AdventureWorks2012.bak ファイルまたは \\.\tape0 テープ ドライブを指すように定義されたとします。 その後のバックアップ コマンドおよび復元コマンドでは、DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak' や TAPE = '\\.\tape0' ではなく、AdventureWorksBackups をバックアップ デバイスとして指定できます。

論理デバイス名は、サーバー インスタンス上のすべての論理バックアップ デバイスで一意になる必要があります。 既存の論理デバイス名を表示するには、 sys.backup_devices カタログ ビューに対してクエリを実行します。 このビューでは、各論理バックアップ デバイスの名前が表示され、対応する物理バックアップ デバイスの種類と物理的なファイル名またはパスが示されます。

論理バックアップ デバイスを定義した後、BACKUP コマンドまたは RESTORE コマンドでは、デバイスの物理名ではなく論理バックアップ デバイスを指定できます。 たとえば、次のステートメントでは、 AdventureWorks2012 データベースが AdventureWorksBackups 論理バックアップ デバイスにバックアップされます。

BACKUP DATABASE AdventureWorks2012   
   TO AdventureWorksBackups;  
GO  

注意

特定の BACKUP ステートメントまたは RESTORE ステートメントでは、論理バックアップ デバイス名と対応する物理バックアップ デバイス名を交換できます。

論理バックアップ デバイスを使用する 1 つの利点は、長い物理パスを使用するよりも使いやすいことです。 一連のバックアップを同じパスまたはテープ デバイスに書き込む予定がある場合は、論理バックアップ デバイスを使用すると便利です。 論理バックアップ デバイスは、テープ バックアップ デバイスを識別する際に特に役立ちます。

バックアップ スクリプトは、特定の論理バックアップ デバイスを使用するように記述できます。 これにより、スクリプトを更新せずに、新しい物理バックアップ デバイスに切り替えることができます。 切り替えには、次の処理が必要です。

  1. 元の論理バックアップ デバイスを削除します。

  2. 新しい論理バックアップ デバイスを定義します。このデバイスは、元の論理デバイス名を使用しますが、別の物理バックアップ デバイスにマップされているものです。 論理バックアップ デバイスは、テープ バックアップ デバイスを識別する際に特に役立ちます。

ミラー化バックアップ メディア セット

バックアップ メディア セットをミラー化すると、バックアップ デバイスの誤動作の影響を軽減できます。 バックアップはデータ損失に対する最後の防護策なので、このような誤動作は非常に深刻です。 データベースのサイズが大きくなるにつれて、バックアップ デバイスやメディアの障害によってバックアップを復元できなくなる可能性が高くなります。 バックアップ メディアをミラー化すると、物理バックアップ デバイスの冗長性が実現され、バックアップの信頼性が向上します。 詳細については、「ミラー化されたバックアップ メディア セット (SQL Server)」を参照してください。

注意

ミラー化されたバックアップ メディア セットは、SQL Server 2005 Enterprise Edition 以降のバージョンでのみサポートされます。

SQL Server のバックアップをアーカイブする

ファイル システム バックアップ ユーティリティを使用してディスクのバックアップをアーカイブし、アーカイブをオフサイトに保存することをお勧めします。 ディスクを使用することには、アーカイブしたバックアップをネットワーク経由でオフサイトのディスクに書き込めるという利点があります。 Azure Blob Storage サービスは、オフサイト保存のオプションとして使用できます。 ディスク バックアップをアップロードするか、Azure Blob Storage サービスにバックアップを直接書き込むことができます。

もう 1 つの一般的なアーカイブ方法は、SQL Serverバックアップをローカル バックアップ ディスクに書き込み、それらをテープにアーカイブしてから、テープをオフサイトに保存することです。

関連タスク

ディスク デバイスを使用するには (SQL Server Management Studio)

テープ デバイスを使用するには (SQL Server Management Studio)

論理バックアップ デバイスを定義するには

論理バックアップ デバイスを使用するには

バックアップ デバイスの情報を表示するには

論理バックアップ デバイスを削除するには

関連項目

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)