KubernetesデプロイでReportingデータベースを再構築する方法


解説

Kubernetesデプロイでは、Reportingデータベースの再構築はそのままではサポートされておらず、手動の手順が必要です。この記事では、コンテナー化されたデプロイでReportingデータベースに既に集約されているインタラクションを再処理する方法について説明します。

非コンテナー デプロイの手順は、Reportingデータベースの再構築に関する記事で解説されています。

解決策

Reportingデータベースを再構築するには、以下の手順を実行してください。

  1. セカンダリのReporting接続文字列を追加します。
    1. 新しい環境変数を追加して、cm.yamlファイルおよびprc.yamlファイルを変更します。
      - name: Sitecore_ConnectionStrings_Reporting.Secondary
      value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Reporting.Secondary;User ID=$(Database_Username);Password=$(Database_Password)
    2. YAMLファイルのあるフォルダーでapply -f .\コマンドを実行します。これにより、デプロイの構成が更新されます。
    3. Content ManagementインスタンスとProcessingインスタンスの両方のweb.configファイルにパッチを適用します。
      • 以下を使用してweb.configファイルをローカルにコピーします。
        kubectl cp <ポッド名>:web.config.
        または
        kubectl cp <ポッド名>:web.config <ファイル システムのパス>
      • web.config SitecoreConnectionStringsBuilder文字列でmode値を「Strict」から「Greedy」にパッチします。
        <add name="SitecoreConnectionStringsBuilder" mode="Strict" prefix="SITECORE_CONNECTIONSTRINGS_" stripPrefix="true" type="Microsoft.Configuration.ConfigurationBuilders.EnvironmentConfigBuilder, Microsoft.Configuration.ConfigurationBuilders.Environment, Version=1.0.0.0, Culture=neutral" />
      • kubectl cp "<コピー元のパス\.>" <必要なポッド名> "<ファイルを配置する相対パス>"」コマンドを使用して、パッチを適用したweb.configをポッドにコピーして戻します。例:
        kubectl cp "C:\ResourcesProcessing\container-k8\sc10.0\k8s-sitecore-xp1\test_prc\web.config" prc-549bd89774-zjsdr:"."
      • Content ManagementインスタンスとProcessingインスタンスの両方でこれを行います。
  2. セカンダリのReportingデータベースをデプロイします。
    1. ReportingデータベースのDACPACファイルを取得します(Sitecore Developer Portalから取得できます)。
    2. SQLサーバーに接続します。
    3. レポートDACPACファイルをデプロイし、データベースの名前を「Sitecore.Reporting.Secondary」に設定します。
  3. Content Managementインスタンスから再構築コマンドを発行します。
    1. Content Managementのバックエンドにログインし、<サイト名>/sitecore/admin/RebuildReportingDB.aspxに移動します。
    2. 締め日を設定し、[Start] をクリックします。
  4. レポート データベースの接続文字列を再構成します。再構築が完了した後、レポート接続文字列がセカンダリのReportingデータベースを指していることを確認する必要があります。
    1. cm.yamlファイルおよび prc.yamlファイルを再度変更します。
      • Reporting変数を編集します。
        - name: Sitecore_ConnectionStrings_Reporting
        value: Data Source=$(Database_Server);Initial Catalog=Sitecore.Reporting.Secondary;User ID=$(Database_Username);Password=$(Database_Password)
      • Sitecore_ConnectionStrings_Reporting.Secondaryの値を削除します。
    2. YAMLファイルがあるフォルダーでapply -f .\コマンドを実行し ます。