SSMS 2008 R2を介して手動で作成された.bakファイルを他の人が今日作成しました。手動でデータベースを復元しようとしていますが、ファイルを参照してもファイルが表示されません。
復元プロセスをスクリプト化することはできますが、この問題は以前に見たことがあり、.bakが表示されない原因が何かはわかりません。
今日も同じ問題がありました。他の回答のいくつかに示されているように、それは権限の問題であることが判明しました。違いは、追加する必要があるアカウントがNT SERVICE\MSSQLSERVER
。
既定のSQLバックアップフォルダーのアクセス許可と、バックアップファイルを含むフォルダーのアクセス許可を比較して、アカウントを特定しました。
サービスアカウントの追加は、思ったほど簡単ではありません。ここに私のために働いたものがあります。 (サーバー2012 R2)
NT SERVICE\MSSQLSERVER
を名前ボックスに入力します。 (名前の確認をクリックしないでください)セキュリティ設定にリストされているサービスアカウントが表示され、それに応じて権限を調整できます。
アクセス許可を追加し(既定のSQLバックアップフォルダーと一致するようにフルコントロールを追加しました)、SQL Server管理コンソールを再起動した後、バックアップファイルを選択して復元することができました。
今日もらった。
ファイル共有、インデックス作成をオフにし、開いているセッション(バックアップをコピーするためにログインした人)をすべてクリアしましたが、問題は解消しませんでした。
Windowsエクスプローラーに移動し、バックアップを別のフォルダーにコピーし、Management Studioを介してそのフォルダーを参照すると、そこに表示されました。
元のフォルダーを削除して再作成し、内容を再度コピーして.bak
ファイルを参照すると、通常の状態に戻りました。
これが誰かを助けることを願っています。
この問題に何度か遭遇しました。この問題はSQL Serverではなく、フォルダーのWindows権限にあります。 .bakファイルをコピーしたフォルダーに適切なアクセス許可を追加する必要があります(私はSystem Network
ロール)。
より簡単な解決策は、Program Filesのデフォルトのバックアップフォルダーにファイルを移動することです。必要なすべての権限があります。 SQL Server 2012の場合
D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup
今日も同じ問題に遭遇しました。復元するためのバックアップファイルが提供されましたが、閲覧中には表示されませんでした。しかし、ファイルシステムにはアクセスできましたが、SQL Server management Studio
を使用して復元ウィザードでアクセスできました。
いくつかを費やした後、私はそれが権限の問題であることを発見しました。 SQL ServerサービスはNetwork Service
を使用して実行されていますが、Network Service
アカウントにはフォルダーにアクセスする権限がありませんでした。 Network Service
に権限を付与した後。復元するバックアップファイルが表示されました。
詳細は Blog で確認してください。
今日、これは私の開発ボックスで起こりました。私の場合、サービスアカウントにはフォルダへのアクセス許可がありましたが、ユーザーアカウントにはありませんでした。フォルダーへのアクセス許可をアカウントに付与すると、.BAKファイルを表示できました。
Windowsエクスプローラーでそれを見つけることができる場合は、RESTORE DATABASE
コマンドは、不格好なGUIに依存する代わりに、使いにくいものです。誰がそこでどのようなコードが実行されているのか、なぜファイルを見つけることができないのかを知っています-申し訳ありませんが、解決策ではなく回避策しかありません。
また、ファイルが実際にはsomething.bak.txtではなく、something.bakであることを確認してください(Windowsは拡張機能を「助けて」くれます。デフォルトの動作は嫌いです)。