Synchrony テーブルのサイズを減らす方法
目的
Confluence 6.0 から 6.15 では、Synchrony テーブルでは追加のみを行えました。テーブルのサイズが増えると、一部のデータベースには大きすぎる場合があります。また、コンテンツの照合に失敗し、新しいコンテンツを公開できなくなる場合もあります。
注: Confluence 7.0 以降では、Synchrony データの定期的なエビクションを行える 2 つのスケジュール済みジョブが提供されています。詳細については「Synchrony データの削除方法」をご確認ください。
ソリューション
この問題を解決するために Synchrony テーブルを切り捨てることができます。
共同編集を無効化してから有効化すると、Confluence と Synchrony テーブルとの間で同期されなかった未保存の下書きが失われる可能性がある点にご注意ください。下書きの詳細については「Confluence での下書きの仕組み」をご確認ください。このような状況を防ぐため、以降の手順に厳密に従ってください。
データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。
- 未保存の変更が失われるのを防ぐため、メンテナンス期間中に次のいずれかを行います。
- メンテナンス前にユーザーにページの公開または変更の破棄を依頼する
- Confluence を読み取り専用モードにする
- Confluence をロード バランサまたはリバース プロキシから取り除き、ユーザーがアプリケーションにアクセスして変更を行えないようにする (推奨)
- アクティブなエディタ セッションのコンテンツは 30 秒ごとに Confluence と Synchrony テーブルとの間で同期されるため、この同期が完了するまで数分間待ちます。
- 共同編集を無効化します。
- Confluence を停止します。
- テーブルを次のように切り捨てます。
この手順は、共同編集が有効化されている状態では行わないでください
TRUNCATE TABLE "EVENTS"; TRUNCATE TABLE "SECRETS"; TRUNCATE TABLE "SNAPSHOTS";
- Confluence を MS SQL Server で実行している場合、ディスク領域を用意するためにデータベース ファイルの圧縮を行うことをおすすめします。
- この操作の詳細については、Microsoft による次の KB 記事をご確認のうえ、自社のデータベース管理者にお問い合わせください。
- Confluence を起動します。
- 共同編集を有効化します。
アプリケーションへのアクセスを取り除いて数分間待つことで、上記テーブル (CONTENT
と BODYCONTENT
) のデータが Confluence テーブルに同期される時間を確保します。下書きのコピーが保存されているため、Synchrony テーブルを安全にクリーンアップできます。また、エディタ外部での変更もこれらのテーブルに影響を及ぼすため、Confluence を停止することも重要です。このような操作には、タスクを完了としてマークする操作やインラインコメントが含まれます。
上記の手順のいずれかをスキップしてしまい、変更の下書きが失われた場合は、次の KB 記事を使ってデータベース バックアップからそれらを復元します。