このトピックでは、SQL Server Management Studio、Transact-SQL、または PowerShell を使用して、SQL Server 2014 でファイルとファイル グループをバックアップする方法について説明します。 データベースのサイズとパフォーマンスの要件によってデータベースの完全バックアップが実用的でない場合は、代わりにファイル バックアップを作成できます。 ファイル バックアップには、1 つ以上のファイル (またはファイル グループ) 内のすべてのデータが含まれます。 ファイル バックアップの詳細については、「 完全ファイル バックアップ (SQL Server) 」および「 差分バックアップ (SQL Server)」を参照してください。
このトピックについて
作業を開始する準備:
ファイルとファイル グループをバックアップするには、次の方法を使用します。
開始する前に
制限事項と制約条件
BACKUP ステートメントは、明示的または暗黙的なトランザクションでは使用できません。
単純復旧モデルでは、読み取り/書き込みファイルはすべて一緒にバックアップする必要があります。 これにより、データベースを一貫した時点に復元できるようになります。 各読み取り/書き込みファイルまたはファイル グループを個別に指定する代わりに、READ_WRITE_FILEGROUPS オプションを使用します。 このオプションは、データベース内のすべての読み取り/書き込みファイル グループをバックアップします。 READ_WRITE_FILEGROUPSを指定して作成されるバックアップは、 部分バックアップと呼ばれます。 詳細については、「 部分バックアップ (SQL Server)」を参照してください。
制約と制限に関する詳細については、バックアップの概要 (SQL Server)を参照してください。
推奨事項
- 既定では、バックアップ操作が成功するたびに、 SQL Server エラー ログおよびシステム イベント ログにエントリが 1 つ追加されます。 ログを非常に頻繁にバックアップする場合、これらの成功メッセージはすぐに蓄積され、その結果、他のメッセージの検索が困難になる可能性のある巨大なエラー ログが生成されます。 このような場合は、トレース フラグ 3226 を使用してこれらのログ エントリを抑制できます(スクリプトがそれらのエントリに依存していない場合)。 詳細については、トレース フラグ (Transact-SQL)に関する記事を参照してください。
安全
権限
BACKUP DATABASE 権限と BACKUP LOG 権限は、既定では、 sysadmin 固定サーバー ロール、 db_owner 固定データベース ロール、および db_backupoperator 固定データベース ロールのメンバーに与えられています。
バックアップ デバイスの物理ファイルに対する所有と許可の問題によって、バックアップ操作が妨げられることがあります。 SQL Server では、デバイスに対して読み書きを実行できる必要があります。 SQL Server サービスが実行されているアカウントには書き込み権限が必要です。 ただし、システム テーブルにバックアップ デバイスのエントリを追加する sp_addumpdeviceでは、ファイル アクセスの権限は確認されません。 バックアップデバイスの物理ファイルに関するこのような問題は、バックアップまたは復元が試行されたときに物理リソースにアクセスするまで表示されない場合があります。
SQL Server Management Studio の使用
データベース ファイルとファイル グループをバックアップするには
オブジェクト エクスプローラーで SQL Server データベース エンジンの適切な インスタンスに接続した後、サーバー名をクリックしてサーバー ツリーを展開します。
[ データベース] を展開し、データベースに応じて、ユーザー データベースを選択するか、[ システム データベース] を展開してシステム データベースを選択します。
データベースを右クリックし、[ タスク] をポイントして、[ バックアップ] をクリックします。 [データベースのバックアップ] ダイアログ ボックスが表示されます。
[ データベース ] の一覧で、データベース名を確認します。 必要に応じて、このボックスの一覧から別のデータベースを選択することもできます。
[ バックアップの種類 ] の一覧で、[ 完全 ] または [ 差分] を選択します。
[バックアップ コンポーネント] オプションで、[ファイルとファイル グループ] をクリックします。
[ ファイルとファイル グループの選択 ] ダイアログ ボックスで、バックアップするファイルとファイル グループを選択します。 1 つ以上の個別のファイルを選択するか、ファイル グループのチェック ボックスをオンにして、そのファイル グループ内のすべてのファイルを自動的に選択できます。
[名前] ボックスに表示された既定のバックアップ セット名をそのまま使用するか、または別のバックアップ セット名を入力します。
オプションで、 [説明] ボックスに、バックアップ セットの説明を入力します。
バックアップ セットの有効期限を指定します。
特定の日数後にバックアップ セットの有効期限を切にするには、[ 後 ] (既定のオプション) をクリックします。 次に、セットの作成後にセットの有効期限が切れる日数を入力します。 この値は 0 ~ 99999 日です。値が 0 日の場合は、バックアップ セットの有効期限が切れないことを意味します。
既定値は、[サーバーのプロパティ] ダイアログ ボックス ([データベースの設定] ページ) の [既定のバックアップ メディアリテンション期間 (日数)] オプションで設定されます。 このオプションにアクセスするには、オブジェクト エクスプローラーでサーバー名を右クリックし、プロパティを選択します。をクリックし 、[データベース設定] ページを 選択します。
バックアップ セットの有効期限を特定の日付に設定するには、[ オン] をクリックし、セットの有効期限を入力します。
[ ディスク ] または [テープ] をクリックして、バックアップ先の種類を選択します。 1 つのメディア セットを含む最大 64 台のディスクまたはテープ ドライブのパスを選択するには、[ 追加] をクリックします。 選択したパスがバックアップ先一覧に表示されます。
注
バックアップ先を削除するには、バックアップ先を選択して [ 削除] をクリックします。 バックアップ先の内容を表示するには、バックアップ先を選択して [ コンテンツ] をクリックします。
詳細オプションを表示または選択するには、[ページの選択] ウィンドウの [オプション] をクリックします。
次のいずれかをクリックして、[ メディアの上書き ] オプションを選択します。
既存のメディア セットにバックアップする
このオプションでは、[既存の バックアップ セットに追加] または [ 既存のすべてのバックアップ セットを上書きする] をクリックします。 既存のメディア セットへのバックアップの詳細については、「 メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
必要に応じて、[ メディア セット名とバックアップ セットの有効期限の確認 ] を選択して、バックアップ操作でメディア セットとバックアップ セットの有効期限が切れる日時を確認します。
必要に応じて、[ メディア セット 名] テキスト ボックスに名前を入力します。 名前が指定されていない場合は、空白の名前を持つメディア セットが作成されます。 メディア セット名を指定すると、メディア (テープまたはディスク) がチェックされ、実際の名前がここで入力した名前と一致するかどうかが確認されます。
メディア名を空白のままにしてメディアに対してチェックボックスをオンにした場合、成功はメディア上のメディア名も空白であることを意味します。
新しいメディア セットにバックアップし、既存のすべてのバックアップ セットを消去する
このオプションでは、[ 新しいメディア セット 名] テキスト ボックスに名前を入力し、必要に応じて、[ 新しいメディア セットの説明 ] テキスト ボックスにメディア セットを記述します。 新しいメディア セットの作成の詳細については、「 メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。
[ 信頼性 ] セクションで、必要に応じて次のことを確認します。
完了したら、バックアップを確認します。
メディアに書き込む前にチェックサムを実行し、必要に応じてチェックサム エラーで続行します。 チェックサムの詳細については、「 バックアップと復元中に発生する可能性のあるメディア エラー (SQL Server)」を参照してください。
テープ ドライブにバックアップする場合 ([全般] ページの [宛先] セクションで指定されているとおり)、[バックアップ後にテープをアンロードする] オプションがアクティブになります。 このオプションをクリックすると、[ アンロードする前にテープを巻き戻 す] オプションが有効になります。
注
トランザクション ログをバックアップする場合を除き、[トランザクション ログ] セクションのオプションは非アクティブです ([全般] ページの [バックアップの種類] セクションで指定)。
SQL Server 2008 Enterprise 以降のバージョンでは 、バックアップ圧縮がサポートされています。 既定では、バックアップが圧縮されるかどうかは、 バックアップ圧縮の既定 のサーバー構成オプションの値によって異なります。 ただし、現在のサーバー レベルの既定値に関係なく、[バックアップの圧縮] をオンにしてバックアップを圧縮できます。また、[ バックアップを 圧縮しない] をオンにすることで圧縮を防ぐことができます。
現在のバックアップ圧縮の既定値を表示するには
Transact-SQL の使用
ファイルとファイル グループをバックアップするには
ファイルまたはファイル グループのバックアップを作成するには、 BACKUP DATABASE <file_or_filegroup> ステートメントを使用します。 最小限の場合、このステートメントでは次を指定する必要があります。
データベース名。
各ファイルまたはファイルグループには、それぞれ FILE 句または FILEGROUP 句があります。
完全バックアップが書き込まれるバックアップ デバイス。
ファイル バックアップの基本的な Transact-SQL 構文は次のとおりです。
データベースをバックアップ データベース
{ FILE =logical_file_name |FILEGROUP =logical_filegroup_name } [ ,...f ]
to backup_device [ ,...n ]
[ WITH with_options [ ,...o ] ;
選択肢 説明 データベース トランザクション ログ、データベースの一部、またはデータベース全体をバックアップする場合の、バックアップ元となるデータベースを指定します。 FILE =logical_file_name ファイル バックアップに含めるファイルの論理名を指定します。 FILEGROUP =logical_filegroup_name ファイル バックアップに含めるファイル グループの論理名を指定します。 単純復旧モデルでは、ファイル グループのバックアップは、読み取り専用のファイル グループに対してのみ使用できます。 [ ,...f ] 複数のファイルとファイル グループを指定できるプレースホルダーです。 ファイルまたはファイル グループの数に制限はありません。 backup_device [ ,...n ] バックアップ操作に使用する 1 ~ 64 個のバックアップ デバイスの一覧を指定します。 物理バックアップ デバイスを指定することも、既に定義されている場合は、対応する論理バックアップ デバイスを指定することもできます。 物理バックアップ デバイスを指定するには、DISK または TAPE オプションを使用します。
{ DISK |TAPE } =physical_backup_device_name
詳細については、「 バックアップ デバイス (SQL Server)」を参照してください。WITH with_options [ ,...o ] 必要に応じて、DIFFERENTIAL などの 1 つ以上の追加オプションを指定します。
注: 差分ファイル バックアップには、ベースとして完全なファイル バックアップが必要です。 詳細については、「 データベースの差分バックアップの作成 (SQL Server)」を参照してください。完全復旧モデルでは、トランザクション ログもバックアップする必要があります。 完全なファイル バックアップのセットを使用してデータベースを復元するには、最初のファイル バックアップの開始時から、すべてのファイル バックアップにまたがる十分なログ バックアップも必要です。 詳細については、「 トランザクション ログのバックアップ (SQL Server)」を参照してください。
例 (Transact-SQL)
次の例では、 Sales
データベースのセカンダリ ファイル グループの 1 つ以上のファイルをバックアップします。 このデータベースでは、完全復旧モデルが使用され、次のセカンダリ ファイル グループが含まれています。
SalesGroup1
という名前のファイル グループには、SGrp1Fi1
とSGrp1Fi2
のファイルが含まれています。ファイル
SGrp2Fi1
とSGrp2Fi2
を含むSalesGroup2
という名前のファイルグループ。
ある。 2 つのファイルをバックアップするファイルの作成
次の例では、SalesGroup1
のSGrp1Fi2
ファイルと、SalesGroup2
ファイル グループのSGrp2Fi2
ファイルのみの差分ファイル バックアップを作成します。
--Backup the files in the SalesGroup1 secondary filegroup.
BACKUP DATABASE Sales
FILE = 'SGrp1Fi2',
FILE = 'SGrp2Fi2'
TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck';
GO
B. セカンダリ ファイル グループの完全ファイル バックアップの作成
次の例では、両方のセカンダリ ファイル グループ内のすべてのファイルについて、完全ファイル バックアップを作成します。
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck';
GO
C. セカンダリ ファイル グループのダイファレンシャル ファイルバックアップの作成
次の例では、両方のセカンダリ ファイル グループ内のすべてのファイルについて、差分ファイル バックアップを作成します。
--Back up the files in SalesGroup1.
BACKUP DATABASE Sales
FILEGROUP = 'SalesGroup1',
FILEGROUP = 'SalesGroup2'
TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'
WITH
DIFFERENTIAL;
GO
PowerShell の使用
Backup-SqlDatabase
コマンドレットを使用し、Files
パラメーターの値に-BackupAction
を指定します。 また、次のいずれかのパラメーターを指定します。
- To back up a specific file, specify the `-DatabaseFile`*String* parameter, where *String* is one or more database files to be backed up.
- To back up all the files in a given filegroup, specify the `-DatabaseFileGroup`*String* parameter, where *String* is one or more database filegroups to be backed up.
The following example creates a full file backup of every file in the secondary filegroups 'FileGroup1' and 'FileGroup2' in the `MyDB` database. The backups are created on the default backup location of the server instance `Computer\Instance`.
```powershell
Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Files -DatabaseFileGroup "FileGroup1","FileGroup2"
```
SQL Server PowerShell プロバイダーを設定して使用するには、「 SQL Server PowerShell プロバイダー」を参照してください。
こちらもご覧ください
バックアップの概要 (SQL Server)
BACKUP (Transact-SQL)
RESTORE (Transact-SQL)
バックアップ履歴とヘッダー情報 (SQL Server)
データベースのバックアップ ([全般] ページ)
データベースのバックアップ ([バックアップ オプション] ページ)
完全ファイル バックアップ (SQL Server)
差分バックアップ (SQL Server)
ファイルの復元 (完全復旧モデル)
ファイルの復元 (単純復旧モデル)