[Sitecore]サイトコアBLOBs テーブルのクリーンアップ

検証環境は次の通りです。

 

概要:

お客さんから、WebデータベースのサイズがMasterよりも多きといわれ、現在使用しているサイトコアのバージョンにてBlobsテーブルのクリーンアップがされていないことが分かった。どうも、バージョン8.2以降、この問題が解決されていま。

もし、同じサイトコアのバージョンで同じ問題があった場合はこれはBlobsテーブルのクリーンアップのメモ書きです。

まず、データベースのサイズを確認しましょう。下記のクエストをMasterWebにて走らせて、結果を比較すればいい。

御覧のように、Webデータベースのほうが断然大きい…

2018.04.12.a1

クリーンアップのクエスト下記の通りです。必要なレコードの数を変更しWebにて走らせばいい。

 

2018.04.12.a2

 

ただこれは一度クリーンアップして、時間がたつにつれて、Blobsテーブルのレコードが増えていきます。

サイトコア8.2にアップグレードするまで、SQLタスクにて定期的にクリーンアップします。

ネットで見つけた記事にてサイトコアから4時間ごとにトップの1000レコードの削除を勧められています。

 

これまでの作業は結構簡単でしてが、実際にプロダクションのサイトにて変更する際にちょっと手間がかかります。

なぜなら、直接プロダクションのWebデータベースにてこの変更するのはパブリックのユーザに影響を与える可能性があり、直接変更をすることが許されていなかった。ですので、下記の手順で編集を行いました。

 

2018.04.12.a3

  1. 既存のプロダクションのWebデータベースをコピーし、prod_web_tempとします。
  2. CDのコネクションを変更し、このprod_web_tempに接続します。
  3. UATにてデフォルトのサイトコア8.2Webデータベースをuat_temp_webとして作成します。
  4. UATのMasterデータベースをプロダクションのprod_masterデータベースに接続します。
  5. プロダクションのMasterデータベースからuat_temp_webにフールーパブリッシングします。
  6. uat_temp-webをバックアップして、そして、prod_webデータベースをリストーアします。
  7. CDのコネクションをprod_webに変更し。

* CDはネットワークロードバランサーを使用しているので、接続変更する際に一つずつ行い、 パブリックのユーザに全く影響を与えません。