SQL Server データベースのバックアップ操作中に、バックアップされたデータ ( バックアップ) が物理バックアップ デバイスに書き込まれます。 この物理バックアップ デバイスは、メディア セット内の最初のバックアップが書き込まれるときに初期化されます。 1 つ以上のバックアップ デバイスのセット上のバックアップは、1 つのメディア セットを構成します。
このトピックでは:
用語と定義
バックアップ ディスク
1 つ以上のバックアップ ファイルを含むハード ディスクまたはその他のディスク ストレージ メディア。 バックアップ ファイルは、通常のオペレーティング システム ファイルです。
メディアセット
固定の種類と数のバックアップ デバイスを使用する、バックアップ メディア、テープ、またはディスク ファイルの順序付けられたコレクション。 メディア セットの詳細については、「 メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
物理バックアップ デバイス
オペレーティング システムによって提供されるテープ ドライブまたはディスク ファイル。 バックアップは、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
テープへ = { '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 }
Tape-Specific バックアップおよびリストアオプション (Transact-SQL)
テープ管理を容易にするために、BACKUP ステートメントには次のテープ固有のオプションが用意されています。
{ NOUNLOAD | UNLOAD }
バックアップ操作または復元操作後に、バックアップ テープをテープ ドライブから自動的にアンロードするかどうかを制御できます。 UNLOAD/NOUNLOAD は、セッションの有効期間中、または代替手段を指定してリセットされるまで保持されるセッション設定です。
{ 巻き戻し |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 サービスを使用する方法の詳細については、 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 バックアップをローカル バックアップ ディスクに書き込み、テープにアーカイブしてから、テープをオフサイトに保存することです。
関連タスク
ディスク デバイスを指定するには (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)