Testdbを持っています。回復モードはシンプルで、システムをVeeamでバックアップしています。 testdbからのログがバックアップ後に切り捨てられているかどうかを確認するにはどうすればよいですか?
DBCC SQLPERF(LOGSPACE)
のようないくつかのコマンドを見つけました。しかし、それで私は中古スペースを見るだけです。
シンプルリカバリモードでは、チェックポイントが発行されると、ログは自動的に切り捨てられます。 DBCC SQLPERF(LOGSPACE)を実行し、ログが70%を超えていっぱいになった場合、単純なリカバリでログが70%に増加するとチェックポイントが発行されるため、ログが切り捨てられていないと想定できます。
単純なリカバリでログが切り捨てられていないと思われる場合は、sys.databases、log_reuse_wait_desc列を使用して、最後のログの切り捨てが機能しなかった理由を確認できます。
もう少し深く掘り下げたい場合は、dbcc loginfoを使用してステータス列を確認し、アクティブな仮想ログレコードを確認して、切り捨てられているかどうかを確認できます。
すべてのデータベースがSIMPLE復旧モデルの場合、ログの切り捨てを気にする必要はありません。このモデルでは、チェックポイントが発生すると(データがディスクに書き込まれると)、トランザクションログからスペースが自動的に解放されます。それでも、.ldfが大きくなりすぎている場合でも、DBCC SHRINKFILEコマンドを使用してサイズを減らすことができます。
データベースが完全復旧モデルの場合は、ログの切り捨てに注意する必要があります。 Microsoftの文書によると、「完全復旧モデルまたは一括ログ復旧モデルでは、すべてのログレコードがログバックアップにキャプチャされるまで、ログの非アクティブな部分を切り捨てることはできません。これは、ログチェーンを維持するために必要です」
ここでは、いくつかの継承バックアップからの「ログチェーン」の例を示します。
First_lsnおよびlast_lsnの値に注意してください。ログチェーンは一貫しています
https://technet.Microsoft.com/en-us/library/ms189085(v = sql.105).aspx