web-dev-qa-db-ja.com

復元データベースを削除する方法

SQL Server 2008 R2でログ配布を実行しています。

セカンダリデータベースドライブの領域が不足し、ログ配布トランザクションログが適用されない状況がありました。

これを修正する方法は、セカンダリでデータベースを削除し、ログ配布を最初から構成することです。

現在私が抱えている問題は、セカンダリデータベースが復元中の状態であり、削除できないことです。どうすれば続行できますか?

たとえば、オフラインにしようとすると、エラーが発生します。

ALTER DATABASE is not permitted while the database is in the Restoring state.
14
peter
RESTORE DATABASE dbname 
FROM DISK = 'dbname .bak'
WITH REPLACE, RECOVERY --force restore 

あるいは単に

RESTORE DATABASE dbname WITH RECOVERY

REPLACE既存のデータベースを上書きします。削除してもかまわないと述べたように、既存のデータベースを上書きすることが確実である場合にのみ、それを実行してください。

RESTORE WITH RECOVERYはデフォルトの動作であり、コミットされていないトランザクションをロールバックすることにより、データベースを使用可能な状態にします。追加のトランザクションログは復元できません。

これにより、データベースがオンラインになります。その後、削除してもう一度お試しください。

25
AmmarR

この問題で行った最善の方法は、このコマンド 'drop database [database name]'を記述してから、同じ名前で新しいデータベースを作成し、.bakファイルが破損しているか欠陥があるため、別の.bakファイルからデータベースを復元することです。

3
Ashar