データベースを復元するスクリプトでFILE = 1を使用する理由


13

最近、データベースを復元するスクリプトに出くわしたとき、「FILE = 1」を使用する必要があるのか​​疑問に思いました。そのステートメントなしでデータベースを復元することはできません!?基本的に、それは何のために使用されますか?

回答:


22

バックアップファイル(デバイス)に複数のバックアップを保存できます。このFILE句を使用すると、.bakファイル内に複数の選択肢がある場合に特定のバックアップ操作にアクセスできます。

RESTOREコマンドのさまざまなオプションの詳細については、RESTORE Argumentsに関する次のMSDNドキュメントを参照してください。

[ バックアップセットオプション]セクションの下を見ると、次のことがわかります。

FILE = { backup_set_file_number | @ backup_set_file_number }

復元するバックアップセットを識別します。たとえば、backup_set_file_number1は、バックアップメディア上の最初のバックアップセットを示し、backup_set_file_number2は2番目のバックアップセットを示します。RESTORE HEADERONLYステートメントを使用して、バックアップセットのbackup_set_file_numberを取得できます。

指定しない場合、デフォルトは1です。ただし、RESTORE HEADERONLYを除き、メディアセット内のすべてのバックアップセットが処理されます。詳細については、このトピックの「バックアップセットの指定」を参照してください。

重要
このFILEオプションは、データベースファイルを指定するFILEオプションとは無関係です。FILE = { logical_file_name_in_backup | @ logical_file_name_in_backup_var }。

はい、とにかくデフォルトのままでなくてFILE = 1も復元できるはず1です。バックアップファイルにバックアップセットが1つしかない場合でも、問題は発生しません。

このFILEオプションをいつ使用するかを説明するのに役立つ例は次のとおりです。これは、RESTOREコマンドのMSDNページ(上記のリンク)の例Bです。1つのバックアップファイルから2つの復元を実行することを示しています。1つ目RESTOREは完全バックアップで、2つ目RESTOREは差分バックアップです。

RESTORE DATABASE AdventureWorks2012
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
   WITH FILE = 6
      NORECOVERY;
RESTORE DATABASE AdventureWorks2012
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2012.bak'
   WITH FILE = 9
      RECOVERY;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.