web-dev-qa-db-ja.com

"復元するバックアップセットが選択されていません" SQL Server 2012

ファイルストリームを有効にしたSQL Server 2012データベースがあります。ただし、バックアップして別のSQL Server 2012インスタンス(別のコンピューター)に復元しようとすると、次のメッセージが表示されます。

復元するバックアップセットが選択されていません。

単なる一行の説明でもない。ここはどうしたの?

ファイルストリームのない他のすべてのデータベースは問題なく動作し、正常に復元することができます。それはファイルストリームに関連するものですか?私は修正プログラムかそのようなものをインストールするべきです。

131
Saeed Neamati

この問題があり、間違ったバージョンのSQLに復元しようとしていました。何が起こっているのかについてもっと情報が欲しい場合は、次のSQLを使ってデータベースを復元してみてください。

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

これをデバッグする必要があるというエラーメッセージが表示されます。

154
user489998

私の問題は権限になってしまいました。私は開発用マシン上にあり、Homegroup経由でコピーしました。どういうわけか、おそらく私がファイルをコピーした場所に基づいていました、許可はめちゃくちゃになりました、そして、Management Studioはファイルを読むことができませんでした。これはdevなので、私は全員に許可を与えています bakファイルに行った後、GUI経由で正常に復元することができました。

57
Tyler Forsythe

実行時:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

それは私に次のエラーを出しました:

デバイス 'C:\ NorthwindDB.bak'のメディアファミリが誤って形成されています。 SQL Serverはこのメディアファミリを処理できません。 RESTORE HEADERONLYが異常終了しています。 (Microsoft SQL Server、エラー:3241)

互換性レベルがソースDBと宛先DBの両方で同じであっても、DBを高いSQLバージョンから低いバージョンに変更することはできません。 SQLのバージョンを確認するには、次のコマンドを実行します。

Select @@Version

違いを確認するには、ソースSQLサーバー上にDBを作成し、バックアップファイルから復元を実行してみてください。バックアップファイルを選択すると、「バックアップセットが選択されていません」と表示される低いバージョンのサーバーから開くと、バックアップファイルに関する情報が表示されます。 enter image description here

そのため、データを下位バージョンのSQLに移動する必要がある場合は、This を確認してください。

22
Alon Or

SQL Server Management Studioを管理者として実行し(右クリック> [管理者として実行])、復元します。

13
Keith

私はバージョンを混同するほどバカではないと思いました - しかし、私の新しいサーバーでは、SQL Server 2005のインスタンスが誕生当初からSQLEXPRESSという名前でインストールされていることに気づきませんでした。 SSMS 2012でSQL Server 2008 R2でバックアップしたデータベースをSQLEXPRESSインスタンスに復元しようとしたときに、バックアップセットのリストが空でした。

結局、サーバー上のSQLEXPRESSインスタンスは2012年のインスタンスではなく2005年のインスタンスであることに気付きました。実際のものに接続解除して接続しました2012年インスタンス(私の場合はSQLEXPRESS2012)、それは(明らかに)うまくいきました。

私の問題は、私のユーザーがBuiltin-Administratorsグループに属していて、SQL ServerのSysadmin-roleを持つユーザーがいないことです。管理スタジオとしてManagement Studioを起動しました。このようにしてデータベースを復元することができました。

6
Liz

申し訳ありませんが、私はサインアップしたばかりでコメントを追加できないので、Tyler Forsytheの答えをここにコピーするだけです。

「私の問題はパーミッションでした。Devマシンを使っていて、Homegroup経由でコピーしました。どういうわけか、おそらくファイルのコピー先に基づいていましたが、パーミッションが乱れ、Management Studioでファイルを読み取れませんでした。 dev私は、bakファイルにEveryoneのアクセス許可を与えただけで、その後GUIから正常に復元することができました。」タイラーフォーサイス

そして明確にするために、2008年のインスタンスから2012年の異なるマシンへのバックアップを復元しています(プロダクションとローカル開発者)。バックアップは自動バックアップです。このプロセスが機能するために手動で作成する必要はありませんでした。アクセス許可を変更するだけで(誰もがローカルのdevマシンに最も簡単です)、SSMSはバックアップファイルを正しく読み、私のローカルのdevマシンに復元することができます。

5
DJ Donga

参考:復元するとき、SSMSにログインするために同じ(SQLユーザー)資格情報を使用する必要があることがわかりました。最初にWindows認証アカウントを使用して復元を試みました。

5
Ben Ripley

私の場合、それはパーミッションであり、私は単に「データベースの復元...」ではなく「ファイルとファイルグループの復元...」を使用したのです。

それが違いをもたらしました。

enter image description here

5
Brian

私にとって問題は、サーバー上の暗号化されたフォルダーに.BAKファイルがあることです。完全な管理者権限でも、SSMSにファイルを読み取らせることはできませんでした。 .BAKを暗号化されていないフォルダに移動すると問題が解決しました。ファイルを移動した後、暗号化を解除するために実際のファイルのプロパティも変更する必要があるかもしれません(右クリック、プロパティ、詳細設定、[コンテンツを暗号化してデータをセキュリティで保護する]のチェックを外します)。

4
GadgetNC

私にとっては、これはユーザー特権の問題です。私はsaユーザーとその正常に動作してログインしました。

4
Sharfi

私の場合(新しいSQL Serverのインストール、新しく作成されたユーザー)、私のユーザーは単に必要な権限を持っていませんでした。 saとしてManagement Studioにログインし、[セキュリティ/ログイン]に移動し、[ユーザー名]、[プロパティ]の順に右クリックし、[サーバーの役割]セクションでsysadminを確認しました。

3
Marc.2377

SQL Server 2014でも同じ問題が発生しました(復元操作でバックアップファイルを見つけようとしたときに、Management Studioでバックアップファイルが置かれていたフォルダーを確認できませんでした)。 このスレッド 私の問題を解決した答えを持っていました。見積もり:

SQL Serverサービスアカウントは、[スタート] - > [コントロールパネル] - > [管理ツール] - > [サービス]で確認できます。 SQL Serverサービス - >ログオンタブをダブルクリックします。特定のアカウントを定義するには、[ローカルシステムアカウント]または[このアカウント]を使用します。ローカルシステムアカウントを使用している場合は、サーバーに対してローカルではないバックアップを参照することはできません。代わりに、使用するアカウントを定義した場合は、これがバックアップファイルの場所にアクセスするために必要なアカウントです。あなたの個人的なログオンを使用してバックアップにアクセスするあなたの能力は無関係です。バックアップを開始していても、使用されているのはSQL Serverアカウントです。 IT担当者は、各アカウントに付与されている権限を判断できるはずです。

誰かに役立つことを願っています。

3
BCA

私にとっては、バックアップファイルがまだ別のプロセスによって開かれていたためです。これがイベントログです。

BackupDiskFile :: OpenMedia:バックアップデバイス 'X:\ Backups\MyDatabase\MyDatabase_backup_2014_08_22_132234_8270986.bak'を開けませんでした。オペレーティングシステムエラー32(別のプロセスによって使用されているため、プロセスはファイルにアクセスできません)。

Sql Server Management Studioを閉じて再度開くだけで解決しました(明らかに、ハンドルを持っていたのはssms.exeでした)。

2
JohnZaj

私の場合、それは権限の問題でした。

enter image description here

Windowsユーザーの場合、私が使用していたのはdbcreatorロールを持っていませんでした。

だから私は以下の手順に従った

  1. saとしてSQLサーバーに接続します
  2. オブジェクトエクスプローラでSecurityを展開します。
  3. Loginsを展開する
  4. 問題のWindowsユーザーを右クリック
  5. プロパティをクリック
  6. Server RolesオプションからSelect a pageを選択します
  7. ユーザーのdbcreatorロールを確認してください。
  8. OKをクリック

enter image description here

1
Devraj Gadhavi

この不具合のもう一つの潜在的な理由はGoogleドライブにあるようです。 Googleドライブはbakファイルなどを圧縮しているため、Googleドライブを介してデータベースのバックアップを転送する場合は、まずZipする必要があります。

1
James Gould

私にとっては、それは許可の問題でした。私は自分の会社のドメインに参加する前に、ローカルユーザーアカウントを使用してSQL Serverをインストールしました。その後、私は自分のドメインアカウントを使用してデータベースを復元しようとしましたが、そのアカウントにはSQLサーバーデータベースを復元するのに必要な権限がありません。ドメインアカウントのアクセス許可を修正し、所有しているSQLサーバーインスタンスに対するシステム管理者のアクセス許可を付与する必要があります。

0
Anas Ghanem

同じ単一のコンピュータでバックアップと復元を行っても、同じエラーメッセージが表示されます。

問題はここからでした:バックアップ時に、私は宛先ボックスに2つのアイテムを持っていました。

そのため、修正は次のようになります。 'destination'ボックスに1つのアイテムだけを入れます。あれば他のすべてを削除します。

0
Danniel Little

既存のデータベースを完全に置き換えたい場合は、WITH REPLACEオプションを使用します。

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
WITH REPLACE
0
Iasmini Gomes

SQL Server 2012 Expressを使用しています。

私のエラー(SQLマネージャ - データベースの復元ダイアログから):

No backupset selected to be restored

さらに、選択するバックアップセットがリストに表示されていませんでした。

問題は、5つのバックアップファイルのうち1つをSQL Serverサービスログオンユーザーがアクセス許可を持たないフォルダに移動したことです。そのユーザーを追加しようとしましたが、NT Service\MSSQL $ SQLEXPRESSユーザーをセキュリティに参加できませんでした。リスト。

ファイルをサービスユーザーのDocumentsフォルダの下に移動すると、選択したすべてのファイル(その時点では4)が読み取れるようになり、エラーが "media set missing"に変わり、別のバックアップファイルを探しました。そして、私が回復できたと付け加えたとき。

この質問の答えは、私が正しい場所を見て解決策を探すのに役立ちました。

0
qxotk

私はこのエラーを得るための最も頭の高い理由で賞を受けたと思います。 [データベースの復元]ダイアログで、[ソース]の下のデータベースのドロップダウンが灰色になっていて、無効になっていると思いました。私はDestinationの下のデータベースのドロップダウンをスキップして、それがソースであると考えて選択を行いました。これを行うと、このエラーメッセージが表示されます。

0
Gabe

私は同じ問題に遭遇しました。管理者としてSSMSを実行し、次に右クリックしてデータベースの復元を行います。うまくいくはずです。

0
Jonny Boy