Confluence MySQL データベースの移行が原因で「content_procedure_for_denormalised_permissions は存在しません」エラーが発生する
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
要約
mysqldump
コマンドで Confluence MySQL データベースを別のサーバーに移行した後、Confluence が起動できなくなったり、ページの編集/更新ができなくなった。
環境
- 7.11.0 移行
- MySQL データベース
診断
次のエラーメッセージが atlassian-confluence.log に表示される
ERROR [http-nio-8090-exec-3] [engine.jdbc.spi.SqlExceptionHelper] logExceptions PROCEDURE confluence.content_procedure_for_denormalised_permissions does not exist
以下の SQL で確認しても結果が出力されない
SHOW PROCEDURE STATUS WHERE DB = '<target_DB_name>';
原因
Confluence 7.11.0 移行、コンテンツ非正規化機能を導入しています。これは、権限サービスを高速化してページの読み込み時間を短縮するための新機能です。
mysqldump
はデフォルトですべてのトリガーをバックアップしますが、エラーの原因となるストアド プロシージャ/ファンクションはバックアップしません。
ソリューション
- 移行元の Confluence をシャットダウンします
Confluence MySQL データベースダンプを --routines パラメータを使用して再生成します
mysqldump コマンドmysqldump -p conf7111 --routines > conf71112.sql # OR mysqldump -p conf7111 -R > conf71112.sql
- 移行先の Confluence をシャットダウンします
- 今存在している移行先のデータベースをドロップ オフします
- データベース ダンプを再作成してインポートします
- 移行先の Confluence を起動します