:::: MENU ::::

SOS JobSchedulerでPostgreSQLのバックアップJOBを動かしてみた①


こんにちは!sovaでは会社の仲間たちなどのような特定グループ内でクローズドなコミュニケーションを取ることが出来るCircleBoardというアプリを運営しています。全て無料なので、興味のある方は是非使ってみて下さい。
https://circleboard.me

一般的にUNIX、Linux系のJob管理製品といえばJP1だと思います。
最近ではOSSのJob管理製品も出てきています。
例えば下のような製品があります。

今回はこれらの中からSOS JobSchedulerを使ってPostgreSQLのPITRバックアップのJobを組んでみます。JobSchedulerを使うことで複数サーバのJobを一元的に管理することが出来るようになります。

SOS JobSchedulerはドイツのSOSという企業で作っているOSSのJob管理製品です。ヨーロッパでは銀行系のシステムでも使われているようで、実績もありそうです。
JobShcedulerについてはこのブログを参照すれば概要についてわかると思います。
ではJobsSchedulerのインストールからバックアップJobのスケジュール作成まで実施してみます。
なお、インストールサーバは前回の記事で書いたzabbixサーバと同環境に実施します。DBもPostgreSQLを共用します。

環境:CentOS6.3

①JobSchedulerのインストール

インストールについてはこのサイトを参考にしました。
JobSchedulerのインストールはGUIで実施するので、GNOMEなどのGUI環境をインストールする必要があります。

  • java1.6のインストール

JobSchedulerはjava1.6環境で動くので、java1.6をインストールします。
JobSchedulerはjavaの32bit版でしか動かないので、32bit版javaをインストールします。

  • JobScheduler用データベースの作成

PostgreSQLにJobScheduler用のデータベースを作成します。

  • JobSchedulerのインストール

JobSchedulerのサイトより、インストーラをダウンロードしてインストールします。
ここからはssh接続ではなく、CentOSのデスクトップ環境でターミナルを起動して実施していきます。
インストールは現時点で最新版である1.3.12を使用します。

この後はGUIの画面に沿って必要項目を埋めていきます。
詳細については冒頭に記載した参考サイトを見ればインストールできると思います。
今回はDBの選択はMYSQLではなくPostgreSQLを指定しました。
JobSchedulerではJOCというWebインターフェースから実行状況の確認などをします。JOCはインストール時に指定したポート(デフォルト:4444)を使用するので、ファイアーウォールで4444ポートを空けておきます。
また、デフォルトでjettyを使う設定になっていますが、インストールしていないので、設定を外しておきます。

しかし、JobSchedulerの起動時に下記メッセージが出力して起動に失敗しました。。

ld-linux.so.2がなかった為、インストールします。

もう一度起動してみます。

次はlibz.so.1が足りないと。。。インストールします。

もう一度起動してみます。

Q&Aに同じメッセージの説明が書いてありました。どうやらJVMのパスがうまく通っていないよう。JAVA_HOMEの設定をしていませんでした。。。

リトライ!

遂にうまく起動したようです。と、思いきやJOCに繋がらない。
 ※JOCにはhttp://hostname:4444で接続が出来ます。
ログ(/home/scheduler/sos-berlin.com/jobscheduler/scheduler/logs)を確認したところ、下記のメッセージが出力されていました。

やはり同じように悩んでいる人はいるようで、ここのQ&Aサイトに書いてありました。
どうやらPostgreSQL側でバックスペースをエスケープしていないことが原因のようです。(JobScheduler起動時にDBに対してRead/Writeのテストをしているのですが、その際にエラーとなっていました)下記のオペレーションを実施してバックスラッシュをエスケープするようにPostgreSQLの設定を変更します。

再度起動を試みます。起動したようです。ログにもエラーは見当たらず。
JOCにアクセスしてみたところ、無事にアクセス出来ました。
インストールの最後にOS起動時の自動起動設定をしたいと思います。起動スクリプト読み込み時にJAVA_HOMEの設定をしなければserviceコマンドが使えなかったので、その設定もしています。

これでJobSchedulerのインストールが完了しました。
思ったよりインストールに手間取ってしまったので、Jobの登録は次回実施してみたいと思います。


So, what do you think ?