ファイルストリームを有効にしたSQL Server 2012データベースがあります。ただし、バックアップして別のSQL Server 2012インスタンス(別のコンピューター)に復元しようとすると、次のメッセージが表示されます。
復元するバックアップセットが選択されていません。
単なる一行の説明でもない。ここはどうしたの?
ファイルストリームのない他のすべてのデータベースは問題なく動作し、正常に復元することができます。それはファイルストリームに関連するものですか?私は修正プログラムかそのようなものをインストールするべきです。
この問題があり、間違ったバージョンのSQLに復元しようとしていました。何が起こっているのかについてもっと情報が欲しい場合は、次のSQLを使ってデータベースを復元してみてください。
RESTORE DATABASE <YourDatabase>
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
これをデバッグする必要があるというエラーメッセージが表示されます。
私の問題は権限になってしまいました。私は開発用マシン上にあり、Homegroup経由でコピーしました。どういうわけか、おそらく私がファイルをコピーした場所に基づいていました、許可はめちゃくちゃになりました、そして、Management Studioはファイルを読むことができませんでした。これはdevなので、私は全員に許可を与えています bakファイルに行った後、GUI経由で正常に復元することができました。
実行時:
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を作成し、バックアップファイルから復元を実行してみてください。バックアップファイルを選択すると、「バックアップセットが選択されていません」と表示される低いバージョンのサーバーから開くと、バックアップファイルに関する情報が表示されます。
そのため、データを下位バージョンのSQLに移動する必要がある場合は、This を確認してください。
SQL Server Management Studioを管理者として実行し(右クリック> [管理者として実行])、復元します。
私はバージョンを混同するほどバカではないと思いました - しかし、私の新しいサーバーでは、SQL Server 2005のインスタンスが誕生当初からSQLEXPRESS
という名前でインストールされていることに気づきませんでした。 SSMS 2012でSQL Server 2008 R2でバックアップしたデータベースをSQLEXPRESS
インスタンスに復元しようとしたときに、バックアップセットのリストが空でした。
結局、サーバー上のSQLEXPRESS
インスタンスは2012年のインスタンスではなく2005年のインスタンスであることに気付きました。実際のものに接続解除して接続しました2012年インスタンス(私の場合はSQLEXPRESS2012
)、それは(明らかに)うまくいきました。
私の問題は、私のユーザーがBuiltin-Administratorsグループに属していて、SQL ServerのSysadmin-roleを持つユーザーがいないことです。管理スタジオとしてManagement Studioを起動しました。このようにしてデータベースを復元することができました。
申し訳ありませんが、私はサインアップしたばかりでコメントを追加できないので、Tyler Forsytheの答えをここにコピーするだけです。
「私の問題はパーミッションでした。Devマシンを使っていて、Homegroup経由でコピーしました。どういうわけか、おそらくファイルのコピー先に基づいていましたが、パーミッションが乱れ、Management Studioでファイルを読み取れませんでした。 dev私は、bakファイルにEveryoneのアクセス許可を与えただけで、その後GUIから正常に復元することができました。」タイラーフォーサイス
そして明確にするために、2008年のインスタンスから2012年の異なるマシンへのバックアップを復元しています(プロダクションとローカル開発者)。バックアップは自動バックアップです。このプロセスが機能するために手動で作成する必要はありませんでした。アクセス許可を変更するだけで(誰もがローカルのdevマシンに最も簡単です)、SSMSはバックアップファイルを正しく読み、私のローカルのdevマシンに復元することができます。
参考:復元するとき、SSMSにログインするために同じ(SQLユーザー)資格情報を使用する必要があることがわかりました。最初にWindows認証アカウントを使用して復元を試みました。
私にとって問題は、サーバー上の暗号化されたフォルダーに.BAKファイルがあることです。完全な管理者権限でも、SSMSにファイルを読み取らせることはできませんでした。 .BAKを暗号化されていないフォルダに移動すると問題が解決しました。ファイルを移動した後、暗号化を解除するために実際のファイルのプロパティも変更する必要があるかもしれません(右クリック、プロパティ、詳細設定、[コンテンツを暗号化してデータをセキュリティで保護する]のチェックを外します)。
私にとっては、これはユーザー特権の問題です。私はsaユーザーとその正常に動作してログインしました。
私の場合(新しいSQL Serverのインストール、新しく作成されたユーザー)、私のユーザーは単に必要な権限を持っていませんでした。 saとしてManagement Studioにログインし、[セキュリティ/ログイン]に移動し、[ユーザー名]、[プロパティ]の順に右クリックし、[サーバーの役割]セクションでsysadmin
を確認しました。
SQL Server 2014でも同じ問題が発生しました(復元操作でバックアップファイルを見つけようとしたときに、Management Studioでバックアップファイルが置かれていたフォルダーを確認できませんでした)。 このスレッド 私の問題を解決した答えを持っていました。見積もり:
SQL Serverサービスアカウントは、[スタート] - > [コントロールパネル] - > [管理ツール] - > [サービス]で確認できます。 SQL Serverサービス - >ログオンタブをダブルクリックします。特定のアカウントを定義するには、[ローカルシステムアカウント]または[このアカウント]を使用します。ローカルシステムアカウントを使用している場合は、サーバーに対してローカルではないバックアップを参照することはできません。代わりに、使用するアカウントを定義した場合は、これがバックアップファイルの場所にアクセスするために必要なアカウントです。あなたの個人的なログオンを使用してバックアップにアクセスするあなたの能力は無関係です。バックアップを開始していても、使用されているのはSQL Serverアカウントです。 IT担当者は、各アカウントに付与されている権限を判断できるはずです。
誰かに役立つことを願っています。
私にとっては、バックアップファイルがまだ別のプロセスによって開かれていたためです。これがイベントログです。
BackupDiskFile :: OpenMedia:バックアップデバイス 'X:\ Backups\MyDatabase\MyDatabase_backup_2014_08_22_132234_8270986.bak'を開けませんでした。オペレーティングシステムエラー32(別のプロセスによって使用されているため、プロセスはファイルにアクセスできません)。
Sql Server Management Studioを閉じて再度開くだけで解決しました(明らかに、ハンドルを持っていたのはssms.exeでした)。
この不具合のもう一つの潜在的な理由はGoogleドライブにあるようです。 Googleドライブはbakファイルなどを圧縮しているため、Googleドライブを介してデータベースのバックアップを転送する場合は、まずZipする必要があります。
私にとっては、それは許可の問題でした。私は自分の会社のドメインに参加する前に、ローカルユーザーアカウントを使用してSQL Serverをインストールしました。その後、私は自分のドメインアカウントを使用してデータベースを復元しようとしましたが、そのアカウントにはSQLサーバーデータベースを復元するのに必要な権限がありません。ドメインアカウントのアクセス許可を修正し、所有しているSQLサーバーインスタンスに対するシステム管理者のアクセス許可を付与する必要があります。
同じ単一のコンピュータでバックアップと復元を行っても、同じエラーメッセージが表示されます。
問題はここからでした:バックアップ時に、私は宛先ボックスに2つのアイテムを持っていました。
そのため、修正は次のようになります。 'destination'ボックスに1つのアイテムだけを入れます。あれば他のすべてを削除します。
既存のデータベースを完全に置き換えたい場合は、WITH REPLACEオプションを使用します。
RESTORE DATABASE <YourDatabase>
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'
WITH REPLACE
SQL Server 2012 Expressを使用しています。
私のエラー(SQLマネージャ - データベースの復元ダイアログから):
No backupset selected to be restored
さらに、選択するバックアップセットがリストに表示されていませんでした。
問題は、5つのバックアップファイルのうち1つをSQL Serverサービスログオンユーザーがアクセス許可を持たないフォルダに移動したことです。そのユーザーを追加しようとしましたが、NT Service\MSSQL $ SQLEXPRESSユーザーをセキュリティに参加できませんでした。リスト。
ファイルをサービスユーザーのDocumentsフォルダの下に移動すると、選択したすべてのファイル(その時点では4)が読み取れるようになり、エラーが "media set missing"に変わり、別のバックアップファイルを探しました。そして、私が回復できたと付け加えたとき。
この質問の答えは、私が正しい場所を見て解決策を探すのに役立ちました。
私はこのエラーを得るための最も頭の高い理由で賞を受けたと思います。 [データベースの復元]ダイアログで、[ソース]の下のデータベースのドロップダウンが灰色になっていて、無効になっていると思いました。私はDestinationの下のデータベースのドロップダウンをスキップして、それがソースであると考えて選択を行いました。これを行うと、このエラーメッセージが表示されます。
私は同じ問題に遭遇しました。管理者としてSSMSを実行し、次に右クリックしてデータベースの復元を行います。うまくいくはずです。