質問

SQL Enterprise Manager にデータベースが「(復元中...)」と表示されています。

SP_WHO を実行した場合、復元プロセスはありません。

サーバー上のディスクと CPU のアクティビティが非常に低い

全然回復してない気がする。

どうすればこれを取り除くことができますか?

基になる MDF ファイルの名前を変更しようとしましたが、「NET STOP MSSQLSERVER」を実行しても、ファイルが開いていると表示されます。

PROCEXP を使用して、どのプロセスがファイルを開いているのかを調べようとしましたが、最新の PROCEXP でも Windows Server 2003 R2 x64 ではそれができないようです。下部ペインのビューは空白です。

SQL Server ログには、「データベースは RESTORING とマークされており、リカバリを実行できない状態にあります」と記録されます。

役に立ちましたか?

解決

SQL Server には 2 つのバックアップ タイプがあります。

  • データベース全体を含む完全バックアップ
  • トランザクション ログ バックアップ。最後の完全バックアップ以降の変更のみが含まれます。

復元時に、SQL Server は完全バックアップ後に追加のログを復元するかどうかを尋ねます。WITH NORECOVERY と呼ばれるこのオプションを選択すると、データベースは復元中の状態のままになります。さらに多くのトランザクション ログが復元されるのを待機します。

次のコマンドを使用して、復元モードを強制的に終了できます。

RESTORE DATABASE <DATABASE_NAME> WITH RECOVERY

このコマンドでエラーが発生した場合は、データベースを切断し、MDF ファイルを削除して、最初から復元を開始してください。失敗し続ける場合は、バックアップ ファイルが破損している可能性があります。

以下は、デフォルトが選択された復元オプションのスクリーンショットです。2 番目のオプションでは、データベースは復元中の状態のままになります。

復元オプションのイメージ http://img193.imageshack.us/img193/8366/captureu.png

追伸1.64 ビット版の Process Explorer を実行していますか?タスク マネージャーに procexp64.exe が表示されていることを確認します。

追伸2.これはむしろ次の質問に似ています サーバー障害.

他のヒント

LOGコマンドをRESTORE / DATABASEを復元するときにデフォルトで使用されているWITH RECOVERYオプションが実行されます。あなたは「復元」プロセスで立ち往生している場合は、実行することにより、オンライン状態にデータベースを戻すことができます:

RESTORE DATABASE YourDB WITH RECOVERY
GO

あなたはSO https://stackoverflow.com/a/21192066/を投稿この上のより多くの選択肢といくつかのサードパーティのツールを探すことができます2808398

あなたは、私が取得をお勧めファイルのロックを取り除くためにしようとしている場合はロックフリーます。http:// www.emptyloop.com/unlocker/する

それはあなたのファイルのロックを解除するためのオプションを与える、またはファイルをロックしているプロセスを殺します。 MDFとLDFファイルでこれを実行します。

別のオプションは、Enterprise ManagerまたはSQL管理Studioからファイルを切り離した後、DBを再接続しようとすることです。あなたは、SQL ServerがちょうどMDFとLDFファイルを解放するかどうかを確認するためにロックフリーを実行する前にこれを試すことができます。

注意:あなたがプロセスを強制終了した場合、あなたはそれを取り除くしようとしていると、あなたが良いとテストバックアップを持っている場合にのみ、これを使用しますが、データが失われる可能性がありますまたはデータがそれほど壊れてしまうかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top