バックアップ デバイス (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管理ツールは、ディスク ファイルにタイムスタンプ付きの名前を自動的に生成するため、ディスク バックアップ デバイスの処理に非常に柔軟です。
重要
バックアップ ディスクには、データベースのデータ ディスクやログ ディスクとは別のディスクを使用することをお勧めします。 これは、データ ディスクやログ ディスクで障害が発生した場合に確実にバックアップにアクセスできるようにするために必要です。
物理名を使用したバックアップ ファイルの指定 (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\MSSQL12.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\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 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)」と「RESTOREArguments (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 サービスを使用する方法の詳細については、「Azure Blob Storage サービスを使用したバックアップと復元の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 つの利点は、長い物理パスを使用するよりも使いやすいことです。 一連のバックアップを同じパスまたはテープ デバイスに書き込む予定がある場合は、論理バックアップ デバイスを使用すると便利です。 論理バックアップ デバイスは、テープ バックアップ デバイスを識別する際に特に役立ちます。
バックアップ スクリプトは、特定の論理バックアップ デバイスを使用するように記述できます。 これにより、スクリプトを更新せずに、新しい物理バックアップ デバイスに切り替えることができます。 切り替えには、次の処理が必要です。
元の論理バックアップ デバイスを削除します。
新しい論理バックアップ デバイスを定義します。このデバイスは、元の論理デバイス名を使用しますが、別の物理バックアップ デバイスにマップされているものです。 論理バックアップ デバイスは、テープ バックアップ デバイスを識別する際に特に役立ちます。
ミラー化バックアップ メディア セット
バックアップ メディア セットをミラー化すると、バックアップ デバイスの誤動作の影響を軽減できます。 バックアップはデータ損失に対する最後の防護策なので、このような誤動作は非常に深刻です。 データベースのサイズが大きくなるにつれて、バックアップ デバイスやメディアの障害によってバックアップを復元できなくなる可能性が高くなります。 バックアップ メディアをミラー化すると、物理バックアップ デバイスの冗長性が実現され、バックアップの信頼性が向上します。 詳細については、「ミラー化されたバックアップ メディア セット (SQL Server)」を参照してください。
注意
ミラー化されたバックアップ メディア セットは、SQL Server 2005 Enterprise Edition 以降のバージョンでのみサポートされます。
SQL Server バックアップのアーカイブ
ファイル システム バックアップ ユーティリティを使用してディスクのバックアップをアーカイブし、アーカイブをオフサイトに保存することをお勧めします。 ディスクを使用することには、アーカイブしたバックアップをネットワーク経由でオフサイトのディスクに書き込めるという利点があります。 Azure Blob Storage サービスは、オフサイト保存のオプションとして使用できます。 ディスク バックアップをアップロードするか、Azure Blob Storage サービスにバックアップを直接書き込むことができます。
もう 1 つの一般的なアーカイブ方法は、SQL Serverバックアップをローカル バックアップ ディスクに書き込み、テープにアーカイブしてから、テープをオフサイトに保存することです。
Related Tasks
ディスク デバイスを使用するには (SQL Server Management Studio)
テープ デバイスを使用するには (SQL Server Management Studio)
論理バックアップ デバイスを定義するには
BackupDevice (SMO)
論理バックアップ デバイスを使用するには
バックアップ デバイスの情報を表示するには
論理バックアップ デバイスを削除するには
参照
SQL Server、バックアップ デバイス オブジェクト
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)