SQL Server 2008 R2でログ配布を実行しています。
セカンダリデータベースドライブの領域が不足し、ログ配布トランザクションログが適用されない状況がありました。
これを修正する方法は、セカンダリでデータベースを削除し、ログ配布を最初から構成することです。
現在私が抱えている問題は、セカンダリデータベースが復元中の状態であり、削除できないことです。どうすれば続行できますか?
たとえば、オフラインにしようとすると、エラーが発生します。
ALTER DATABASE is not permitted while the database is in the Restoring state.
RESTORE DATABASE dbname
FROM DISK = 'dbname .bak'
WITH REPLACE, RECOVERY --force restore
あるいは単に
RESTORE DATABASE dbname WITH RECOVERY
REPLACE
既存のデータベースを上書きします。削除してもかまわないと述べたように、既存のデータベースを上書きすることが確実である場合にのみ、それを実行してください。
RESTORE WITH RECOVERYはデフォルトの動作であり、コミットされていないトランザクションをロールバックすることにより、データベースを使用可能な状態にします。追加のトランザクションログは復元できません。
これにより、データベースがオンラインになります。その後、削除してもう一度お試しください。
この問題で行った最善の方法は、このコマンド 'drop database [database name]'を記述してから、同じ名前で新しいデータベースを作成し、.bakファイルが破損しているか欠陥があるため、別の.bakファイルからデータベースを復元することです。