2
1
0

JIRA/Confluenceのリストア手順について教えてください。


以下のページを参考に、日時でJIRA/Confluenceのバックアップを取得しております。

https://confluence.atlassian.com/adminjiraserver071/backing-up-data-802592964.html

具体的には、

・使用しているDB(postgreSQL)のpgdump_all

・C:\Program Files\Atlassian\Application Data配下の全ファイル・ディレクトリ

の2通りのバックアップです。

さらに、VM上に両ソフトを構築しているため、週次でVM自体のクローンイメージを取得しております。


リストア方針としては、

1.VMクローンを利用して環境の復旧

2.日時バックアップファイルを利用して、前日の状態まで復旧する

という順序を検討しております。


上記のリストア手順でリストアを試みた際、すべての更新ページ(http://<FQDN>/#all-updates)にはクローン取得以後の変更履歴も表示されました。

ただ、更新内容は反映されていないようです。(例えば、クローン取得以後に作成したページAに関して、「すべての更新」ページにて新規作成の履歴は表示されるものの、そのページAのリンクをクリックすると、添付画像のように、ページが見つかりませんと表示されます。)

pgdump_allを実行した際のログを確認してみると、

「psql:C:/Users/Administrator/Desktop/Confluence_bk/Confluence_bk/Confluence_bk.sql:2082: ERROR:  リレーション"audit_affected_object"はすでに存在します」

「psql:C:/Users/Administrator/Desktop/Confluence_bk/Confluence_bk/Confluence_bk.sql:729283: ERROR:  テーブル"user_mapping"に複数のプライマリキーを持たせることはできません」

等々のエラーログが大量に表示されているのが、要因の1つなのかと考えているのですが、そもそも上記のエラーログが表示されることがおかしいのか正しいのかもよくわかりません。


どなたか同じ経験をされた方はいらっしゃらないでしょうか?

その時のトラブルシューティング方法等、ご教示いただけると幸いでございます。

    Commentコメントを追加...

    1 回答

    1.  
      1
      0
      -1

      バックアップ、リストア方針については基本的に問題ないと思いますが

      例えば、クローン取得以後に作成したページAに関して、「すべての更新」ページにて新規作成の履歴は表示されるものの、そのページAのリンクをクリックすると、添付画像のように、ページが見つかりませんと表示されます。

      検索インデックスとDBのデータで整合性が取れてない事象におきますが

      検索インデックスの情報が新しく、DBのデータが古い状態なのかと思います。

      Confluence、Jiraともにアプリケーションのリストア後に管理画面で再インデックスを構築してください。


      原因として、Confluenceの「すべての更新」については検索インデックスを使って表示されています。

      その検索インデックスはアプリケーションホームディレクトリ( C:\Program Files\Atlassian\Application Data 配下)に存在しています。

      一方Confluenceのページの実際のデータはDBに格納されています。


      「VMクローンを利用して環境の復旧」した時点でインデックスはそのクローンした時の状態ではありますが

      「日時バックアップファイルを利用して、前日の状態まで復旧する」しているので

      Confluenceのページの実際のデータは前日の状態になっている。

      という形です。

      そのためインデックスを再構築することで、前日の「すべての更新」状態になります。

      pgdump_allを実行した際のログを確認してみると、

      「psql:C:/Users/Administrator/Desktop/Confluence_bk/Confluence_bk/Confluence_bk.sql:2082: ERROR:  リレーション"audit_affected_object"はすでに存在します」

      「psql:C:/Users/Administrator/Desktop/Confluence_bk/Confluence_bk/Confluence_bk.sql:729283: ERROR:  テーブル"user_mapping"に複数のプライマリキーを持たせることはできません」

      等々のエラーログが大量に表示されているのが、要因の1つなのかと考えているのですが、そもそも上記のエラーログが表示されることがおかしいのか正しいのかもよくわかりません。

      手順がわからないので何とも言えないのですがJira、Confluenceテーブルを消さずにリストアされている気がしますね…






      1. 高野翔太

        なかなか時間が取れず、ようやく頂いたアドバイスを実施することができました。


        >Confluence、Jiraともにアプリケーションのリストア後に管理画面で再インデックスを構築してください

        こちら実施しましたが、状況変わらずでございました。再インデックス作成自体は成功しております。


        やはりDBのエラーが原因でしょうか…

        DBリストアの手順としては、

        >psql -f でダンプファイルを指定して実行しているだけのシンプルなものでございます。

        上記手順実施前に、データベースを初期化しておく必要等、なにか抜けている手順があるのでしょうか。

      2. Kengo Ohsaki

        高野翔太-san,

        ご連絡ありがとうございます。

        状況変化なしですが…申し訳ございません。


        とりあえずDBのエラーは解消したほうがいいですね…

        上記手順実施前に、データベースを初期化しておく必要等、なにか抜けている手順があるのでしょうか。

        はい…。データベースの復旧状態にもよりますが、基本的にはデータベースの初期化が必要です。

        コマンドオプションの組み合わせで初期化も一緒にできるようになりますが(そこらへんはPostgreSQLのドキュメントとのほうが詳しいかと思いますが)

        手っ取り早く、pg_dumpall の時に以下オプションを指定するのがよいのかと思います。

        pg_dumpall --clean --if-exists


        「--clean」オプションを指定すると、データベース接続ユーザーとデータベースのCREATE文の前に、DROP文が出力されるようになります。

        「--if-exists」オプションも指定することで、DROP文には「IF EXISTS」が付くようになります。

        (情報) 参考:http://www.kakiro-web.com/postgresql/postgresql-database-backup-restore-all.html

        これで上記オプションをつけたpg_dumpallダンプファイルであれば

         psql -f でダンプファイルを指定して実行するだけでも事前に初期化されるかと思います。


      Commentコメントを追加...