JIRAのDB移行(HSQLDBからPostgreSQLへ)#augj(Jugemより移植)

Posted by johtani on Thursday, December 20, 2012

目次

Atlassian Advent Calendar 2012の20日目。(急遽参戦) (某イケメンにMT(改変リツイート)されたので書いてみました) 久々に、勉強会以外のエントリです。(Solrとかlucene-gosenじゃないんだが。。。)

私は、最近忘れっぽくなってきてしまったので、さくらVPSを借りてJIRAを立てて、タスク管理とかに使い始めました。 有料ツールなので、まずは、評価版から入れましたと。 評価版をインストールするときに、楽なのでHSQLDBを選択していました。が、 インストール時に「HSQLDBは評価版だけで使用してください。正式版ではサポートしてないです」みたいなことを言われていたので、PostgreSQLに切り替えようかと。 ちなみに、MySQLも選択肢としてはあったのですが、PostgreSQLのほうが触ってるし(つかいこなせてるわけではない)、補完機能になれてるというのもありPostgreSQLを選んでみました。

作業のログとして、ブログ書いとこうと思いたったのでメモ的に残しておきます。

作業の流れはこんなかんじでした。 (基本的にはサポートサイトのここに載ってます。サポートいいね。) この手順通りでいいみたい。

###1. JIRAのデータのバックアップ(JIRAの管理画面からバックアップ)


まずは管理画面へ。ページ右上に管理へのリンクがあるのでクリック。

管理画面へ

開いた管理画面の右下あたりにエクスポート(バックアップ)へのリンクがあります。

管理画面右下のこのへん

クリックしたあとに、エクスポートのファイル指定画面が現れるので、ファイル名を指定してバックアップボタンを押します。

ファイル指定画面

バックアップが完了するとバックアップファイルの場所が表示されます。

完了画面

###2. JIRAの停止


バックアップが終わったのでJIRAを停止します。

###3. PostgreSQLのインストール(yum) PostgreSQLが入ってないので、yum installします。(軟弱者なので)


yum install postgresql-server

####initdbで四苦八苦 PostgreSQLはインストールしただけでは起動できません。なので、初期化をします。 yumでインストールしたPostgreSQLだとつぎのコマンドでinitdbできるようです。(これが罠でした)


service postgresql initdb

このコマンドでinitdbすると、encodingが指定できませんでした。(私がしらないだけという話も。。。) encodingを指定できていないと、このあと4.を実行するときにエラーが出ました。(これも回避方法あるのかも。) ということで、結局、昔とった杵柄なやり方でinitdbコマンドで–encoding=UTF8 –no-localeを指定しました。


initdb --encoding=UTF8 --no-locale -D/var/lib/pgsql/data
service postgresql start

これで初期化が完了するので、PostgreSQLを起動します。

###4. JIRA用DBとユーザの作成


まずは、ユーザの作成。そして、DB作成


createuser jirauser
createdb -E UNICODE jiradb

テーブルなど作成しません。あとの処理がやってくれます。

###5. JIRAにJDBCドライバを入れる(必要なかった。)


warじゃないJIRAをインストールした場合はすでに入ってるみたいです。 ここを見るとわかります。JIRA Installation Directoryの下のlibですかね。


/opt/atlassian/jira/lib

###6. マニュアルでPostgreSQLの接続設定(あれ、これいらないのか。)


~~ コンソールオンリーなので、JIRAが提供してくれているツールが使えないため、手で設定。  /var/atlassian/application-data/jira  にあるdbconfig.xmlを修正~~ ちゃんと英語読めってことですね。。。必要なかったです。。。

###7. JIRAのdbconfig.xmlを削除


DB接続の設定を初期セットアップウィザードで再設定するため、dbconfig.xmlを消します。 (一応、インストールディレクトリとホームディレクトリとかバックアップしたほうがいいみたい) 場所はここ。 中身はdbcpとかのデータソースの設定に似てました。 今は、HSQLDBのJDBCドライバが記載されてました。


rm /var/atlassian/application-data/jira/dbconfig.xml

###8. JIRAの起動


7.のファイルを消したあとにJIRAを起動します。


service jira start

###9. JIRAにアクセスとDB接続設定


アクセスすると、インストールした時と同じDB接続の指定を行うセットアップウィザードの画面が現れます。

最初のセットアップ画面

今回はJIRAサーバの外にあるPostgreSQLなので、「外部」を選んで四角で囲んだ部分を入力します。 入力したら、「接続テスト」を押して接続できることを確認したら「次へ」を押します。 マシンのスペックにもよると思いますが、ここでJIRAサーバがDBに接続してテーブルのCREATEなどDBのセットアップを実行してるのでちょっと時間がかかります。

###10. バックアップしたデータのインポート


DBのセットアップが終わったら、アプリケーションのセットアップ画面が出てきます。

インポートファイル指定画面へ
新規インストールではないので、「ここ」にある「既存のデータをインポート」リンクをクリックします。 すると、インポートファイルの指定画面が現れるので、1.でバックアップしたファイル名を指定してインポートします。 すると、インポート中画面が出てきます。
インポート中画面
で、インポートが完了すると無事JIRAにログインできますと。


とこんなかんじです。 私の場合は、まだJIRAをインストールしてから間もないため、チケットの数が少なかったり、添付ファイルが無かったりなので、すぐにインポートが完了しました。 添付ファイルがある場合は、別途添付ファイルが保存されているディレクトリのバックアップと復旧などもあるみたいです。 最初にも書きましたが、ドキュメントのサイトに「Switching Databases」という項目があり、そのページの手順で問題なく切り替えできました。 次は、定期的にデータをバックアップするのを考えないとですかね。

いやぁブログ書くのが、思いの外、手こずりました。 手こずった原因はスクリーンショットだったんですけどね。。。 safariでページ全体のスクリーンショットがとれなかったので、結局ChromeでAwesome Screenshotプラグイン使いました。 safariの拡張もあるんですが、ページ全体のスクリーンショットがうまく動かないみたいです。。。 ということで、備忘録でした。(次はちゃんとSolrとかの記事書かないとなー。その前に忘年ブログかな)


comments powered by Disqus

See Also by Hugo


Related by prelims-cli