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


150

SQL Server 2012データベースでfilestreamが有効になっています。ただし、バックアップして、別のSQL Server 2012インスタンス(別のマシン)に復元しようとすると、次のメッセージが表示されます。

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

1行も詳しい説明はありません。ここで何が問題になっていますか?

ファイルストリームのない他のすべてのデータベースは問題なく、正常に復元できます。それはファイルストリームに関連したものですか?修正プログラムなどをインストールする必要があります。


1
まだ解決していません。SQL Serverの構成に問題があるようです。これよりももっと簡単なはずだと思います。
Saeed Neamati 2012

1
復元に使用しているT-SQLを提供できますか?
Ben Thul 2012

3
さて、SSMSのGUIを使っています。
Saeed Neamati

そのようにしても、ウィンドウの上部近くに「スクリプト」ボタンがあるはずです。復元用に設定されていると思われる方法ですべてを設定したら、「ok」ではなくそれを押してください。これにより、復元用にサーバーに対して実行されるT-SQLが表示されます。
Ben Thul 2012

1
WS 2012 R2(ワークグループ)のSQL 2014 Standard(スタンドアロン)でも同様に権限の問題がありましたが、権限を取得するために2回再起動する必要がありました。それだけの価値があります。皆さんも同様に解決されることを願っています。
BaldEagle 14

回答:


177

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

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

これにより、デバッグに必要なエラーメッセージが表示されます。


上記のSQLを使用して復元しようとすると、どのエラーメッセージが表示されますか?
user489998 2012

T-SQLスクリプトを使用してDBを復元すると、この作業が行われるようです。ファイルストリームデータをバックアップしていないため、UIはそれを処理できません。
Saeed Neamati

1
いいですね、生のSQLアプローチが好きです。`メディアセットには2つのメディアファミリがありますが、1つしか提供されていません。すべてのメンバーを指定する必要があります。`-これは、バックアップソースがバックアップターゲットとは異なるSQL Serverバージョンであったことを意味しますか?UIアプローチ(「復元」)を試すと、メッセージ@ topNo backupset selected to be restored.
The Red Pea


既存のデータベースを完全に置き換える場合は、WITH REPLACEオプションを 使用してくださいRESTORE DATABASE <YourDatabase> FROM DISK='<the path to your backup file>\<YourDatabase>.bak' WITH REPLACE
Iasmini Gomes

63

私の問題は、最終的には権限でした。私は開発マシンにいて、ホームグループ経由でコピーしています。どういうわけか、おそらくファイルのコピー先に基づいて、権限がめちゃくちゃになり、Management Studioがファイルを読み取ることができませんでした。これはdevなので、BakeファイルにEveryoneのアクセス許可与えただけで、GUIを介して正常に復元できました。


これも私のために働いてしまいました。私のユーザー名がそのフォルダへのアクセス許可を持つことができるのはとてもごまかしですが、これを機能させる唯一の方法は、フォルダのアクセス許可に "Everyone"グループを追加することでした。イライラするが、時間を節約してくれてありがとう!
hurleystylee 2013

5
この場合、有用なエラーメッセージがまったくありません。私の問題もこれで解決しました。
dodgy_coder 2016年

1
ブーヤ!何も言わない一般的なエラーが大好きです。もちろんそれは許可でした。異なるドメインのSQLサーバーから復元するときに私に起こりました。.bakファイルの権限を全員に変更しました。その後はうまくいきました。
Prescient

.bakIISで実行されているファイルアップロードWebサービスによって作成されたファイルからデータベースを復元しようとしたときに同じ問題が発生しましたApplicationPoolIdentity
apdevelop

26

実行時:

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を上位のSQLバージョンから下位のSQLバージョンに移行することはできません。SQLバージョンを確認するには、次のコマンドを実行します。

Select @@Version

違いを確認するには、ソース SQLサーバーにDBを作成し、バックアップファイルからの復元を試みます。このSSMSを実行すると、バックアップファイルを選択すると、そのファイルに関するいくつかの情報が表示されます。 「復元するバックアップセットが選択されていません」とだけ表示される古いバージョンのサーバーから開きます ここに画像の説明を入力してください

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


SQL Server 2014 EnterpriseがインストールされているマシンからDBバックアップを取る場合、SQL Server 2014 Expressで復元できますか?
chester89

@ chester89それはあなたがDBにどんな種類の機能を持っているかに依存すると思います。そして、一種のバックアップ。Expressバージョンは、圧縮バックアップを認識しません。また、エンタープライズバージョンがエンタープライズ固有のものを使用している場合、無料バージョン(エクスプレス)はそれを認識しません。しかし、何か標準がある場合、理論的にはそれが認識されるべきです。
ファンアコスタ2017

@JuanAcostaうん、私はそれをまとめました。私の場合、使用中の企業固有の機能はないため、問題なくバックアップを復元しました
chester89

@JuanAcostaは、Express Editionでは圧縮されたバックアップを復元できないというドキュメントを教えていただけますか?
chester89

@Chesterは、234ページのポイント3を確認してください。デフォルトのオプションは、高速バージョンで使用可能な唯一のオプションです。books.google.com.au/…–
ファンアコスタ

15

SQL Server Management Studio を管理者として実行し(ショートカット/ exeを右クリックし、[ 管理者として実行]を選択)、復元を試みます。


10

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

最終的にSQLEXPRESS、サーバー上のインスタンスは2012年のインスタンスではなく2005年であることに気付きました。実際の 2012年のインスタンス(私の場合はSQLEXPRESS2012)に接続を切断して接続し、(明らかに)動作しました。


2
これは私に私の問題の正しい方向を示しました。元のポスターと同じエラーを受け取りましたが、SQL Express 2012からSQL Server 2008インスタンスにバックアップを復元しようとしたためです。当然のことながら、これはお勧めできません。残念ながら、このエラーは根本的な問題に対処するのに十分な説明にはなりませんでした。
LeastOne 2014

1
うわー!サイトからあまりにも多くのホットフィックスをインストールしましたが、そのエラーは消えませんでした。私はこの答えを見て、Sql Server 2012インスタンスでログを記録し、復元しようとしましたが、IT WORKED!ありがとうございます:)
Ali Baig 2015

1
それでは、フルバージョンからエクスプレスバージョンに復元できないとおっしゃっていますか?
Zapnologica

7

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


次の記事を使用して、新しいsysadminユーザーを作成しました(セクション2のシングルユーザーモードを使用)。wikihow.com
Savage

6

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


6

私の場合、それはアクセス許可であり、単に「データベースの復元...」ではなく「ファイルとファイルグループの復元...」を使用したという事実です。

それが違いを生みました。

ここに画像の説明を入力してください


6

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


5

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


3

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

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

それが誰かを助けることを願っています。


このページでソースを引用したことを感謝します。このページから移動することなく、情報をより簡単に使用できます。
qxotk 2016年

3

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


2

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

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

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


1

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


1

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

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

1

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

ここに画像の説明を入力してください

Windowsユーザーの場合、私が使用していたdbcreator役割はありませんでした。

だから私は以下の手順に従いました

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

ここに画像の説明を入力してください


0

SQL Server 2012 Expressの使用。

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

No backupset selected to be restored

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

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

サービスユーザーのドキュメントフォルダーの下にファイルを移動すると、選択したすべてのファイルを読み取ることができるようになり(その時点で4)、エラーが「メディアセットが見つかりません」に変わりました。その後、別のバックアップファイルを探しました。 、そして私がそれを追加したとき、私は復元することができました。

この質問の答えは、適切な場所を調べ、解決策を見つけるのに役立ちました。


0

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


0

同じ単一のマシンでバックアップと復元を行っても、同じエラーメッセージが表示されました。

問題はここからでした:バックアップ時に、宛先ボックスに2つのアイテムがありました。

したがって、修正は次のようになります。「宛先」ボックスに1つの項目のみを確認してください。他にある場合はすべて削除します。


0

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


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.