SQL 2016 Entがあります。 3ノードのエディションAG。 AGには、5つのファイルストリームテーブルを持つデータベースがあります。各テーブルは、独自のファイルストリームデータファイルにあります。今日、インデックスを再構築することによってすべてのファイルが1つのファイルストリームデータファイルに保存されていたバグを修正しました。
開発者には、AGがなく、データベースは単純に回復しています。スペースは再利用されました。変更前と変更後は次のようになります。
AGで同じコードを実行すると、すべてのノードは次のようになります。
ファイルは正しいfilestreamデータファイルに移動されましたが、スペースは元のデータファイルから回復されませんでした。
最初はガレージコレクションだと思ったので Paul Randalのブログ投稿 を読みました。ログファイルを縮小してから、ジャンクテーブルを作成し、明示的なトランスを介して大量の行を追加し、ログバックアップとチェックポイントをすべてプライマリノードで実行しました。ログファイルは大きくなり、以前アクティブだったVLFは非アクティブとしてマークされました。
問題を複雑にするために、バックアップはセカンダリノードの完全なコピーのみの\ログバックアップです。
このシナリオでスペースを再利用する正しい方法は何ですか?
編集:彼のブログでアンディの手順を実行した後、スペースが再利用されました。各AGノードは次のようになります: