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

SQL Server データベース上でのバックアップ操作中、バックアップ対象のデータ (バックアップ) は、物理バックアップ デバイスに書き込まれます。 この物理バックアップ デバイスは、メディア セットの最初のバックアップが書き込まれるときに初期化されます。 単一または一連のバックアップ デバイス上にあるバックアップによって、1 つのメディア セットが構成されます。

注意

SQL Server 2012 SP1 Cumulative Update 2 以降、Windows Azure BLOB ストレージ サービスへの SQL Server バックアップがサポートされるようになりました。 詳細については、「Backup and Restore Enhancements」および「Windows Azure BLOB ストレージ サービスを使用した SQL Server のバックアップと復元」を参照してください。

このトピックの内容

  • 用語と定義

  • ディスク バックアップ デバイスの使用

  • テープ デバイスの使用

  • 論理バックアップ デバイスの使用

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

  • SQL Server バックアップのアーカイブ

  • 関連タスク

用語と定義

  • バックアップ ディスク (backup disk)
    1 つ以上のバックアップ ファイルを含むハード ディスクまたはその他のディスク記憶メディア。 バックアップ ファイルは正規のオペレーティング システム ファイルです。

  • メディア セット (media set)
    テープやディスク ファイルなどのバックアップ メディアに順序を付けてまとめたもの。決まった種類のバックアップ デバイスが複数使用されます。 メディア セットの詳細については、「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。

  • 物理バックアップ デバイス (physical backup device)
    オペレーティング システムによって提供されるテープ ドライブまたはディスク ファイル。 バックアップは 1 ~ 64 個のバックアップ デバイスに書き込むことができます。 バックアップに複数のバックアップ デバイスが必要な場合、デバイスはすべて 1 種類のデバイス (ディスクまたはテープ) に対応する必要があります。

[先頭に戻る]

ディスク バックアップ デバイスの使用

このセクションの内容

  • 物理名を使用したバックアップ ファイルの指定 (Transact-SQL)

  • ディスク バックアップ ファイルのパスの指定

  • ネットワーク共有のファイルへのバックアップ

バックアップ操作によってバックアップがメディア セットに追加されているときにディスク ファイルがいっぱいになると、バックアップ操作は失敗します。 バックアップ ファイルの最大サイズはディスク デバイス上の使用可能な空き領域によって決まるため、バックアップ ディスク デバイスの適切なサイズは、バックアップのサイズによって異なります。

ディスク バックアップ デバイスには、ATA ドライブなどの単純なディスク デバイスを使用できます。 また、ホットスワップ可能なディスク ドライブも使用できます。この場合、ドライブ上のいっぱいになったディスクを空のディスクと交換する作業を透過的に行えます。 バックアップ ディスクには、サーバー上のローカル ディスクや、共有ネットワーク リソースであるリモート ディスクを使用できます。 リモート ディスクの使用方法については、このトピックの「ネットワーク共有のファイルへのバックアップ」を参照してください。

SQL Server 管理ツールを使用すると、タイムスタンプの付いた名前がディスク ファイルに対して自動的に生成されるため、ディスク バックアップ デバイスの操作を柔軟に行うことができます。

重要な注意事項重要

バックアップ ディスクには、データベースのデータ ディスクやログ ディスクとは別のディスクを使用することをお勧めします。 これは、データ ディスクやログ ディスクで障害が発生した場合に確実にバックアップにアクセスできるようにするために必要です。

物理名を使用したバックアップ ファイルの指定 (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\MSSQL11.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 でサポートされなくなる予定です。 新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。

このセクションの内容

  • 物理名を使用したバックアップ テープの指定 (Transact-SQL)

  • テープ固有の BACKUP 操作と RESTORE 操作 (Transact-SQL)

  • 開いているテープの管理

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)」を参照してください。

[先頭に戻る]

論理バックアップ デバイスの使用

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

論理バックアップ デバイスの定義には、物理デバイスへの論理名の割り当てが含まれます。 たとえば、論理デバイス 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 バックアップのアーカイブ

ファイル システム バックアップ ユーティリティを使用してディスクのバックアップをアーカイブし、アーカイブをオフサイトに保存することをお勧めします。 ディスクを使用することには、アーカイブしたバックアップをネットワーク経由でオフサイトのディスクに書き込めるという利点があります。 テープを使用することには、アーカイブした一連のバックアップを不要になるまで蓄積できるという利点があります。

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

[先頭に戻る]

関連タスク

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

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

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

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

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

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

[トップに戻る] リンクで使用される矢印アイコン[先頭に戻る]

関連項目

参照

SQL Server: Backup Device オブジェクト

BACKUP (Transact-SQL)

RESTORE (Transact-SQL)

RESTORE LABELONLY (Transact-SQL)

sys.backup_devices (Transact-SQL)

sys.dm_io_backup_tapes (Transact-SQL)

概念

メンテナンス プラン

メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)

ミラー化バックアップ メディア セット (SQL Server)