web-dev-qa-db-ja.com

ログシッピングが設定されているデータベースのデータファイルを縮小できますか

MS SQL Server 2012バージョンRTMを使用していますが、以下は私たちの環境です。

データベースのAからBにプライマリデータベースサーバーAとセカンダリデータベースサーバーBのログ配布を構成しています。

1)データベースサイズ500 GB、古いデータを削除して250 GBにしたいのですが、ログ配布を中断することなくこれを実行できますか?

2)この後、ログファイルではなくデータファイルを圧縮する必要があります。ログ配布を中断せずにデータファイルを圧縮できますか?

縮小する場合、ログ配布ジョブを停止する必要がありますか、それともログ配布構成が壊れますか?

2
Siva

いいえ、縮小してもログ配布構成は壊れません。ただし、縮小(および後で行う必要がある再構築/再編成)によってトランザクションログファイルが大幅に増大することに注意してください。これらの操作はすべて、トランザクションログに記録される大量のI/O負荷を引き起こします。

これは、実際には、ログ配布が中断しない一方で、バックアップ/コピー/復元ジョブの頻度にもよりますが、復元がより長く続くことを意味する場合があります。これにより、シュリンク(およびデフラグ)が終了するまで、少し遅れてセカンダリになる可能性があります。

縮小には深刻な問題があることを覚えておいてください。もしまだなら、Paul Randalの投稿を読んでください。

http://www.sqlskills.com/blogs/paul/why-you-should-not-shrink-your-data-files/

http://www.sqlskills.com/blogs/paul/a-sql-server-dba-myth-a-day-930-data-file-shrink-does-not-affect-performance/ =

https://www.brentozar.com/archive/2009/08/stop-shrinking-your-database-files-seriously-now/

1
Marcin S.

セカンダリデータベースに引き継がれるプライマリデータベースで圧縮を実行できますが、ログ配布は中断されません。ただし、セカンダリが読み取り専用状態の場合のみ。セカンダリをNorecoveryモードで構成した場合、変更は引き継がれません。 norecoveryモードでは操作を実行できないため、セカンダリに移行します。ただし、データファイルの圧縮はベストプラクティスではないことに注意してください。

0
user103326