[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ORCA-ANNOUNCE:00182] == 2重化運用を正しく利用するためのサンプルスクリプトの提供 ==



ORCAサポートセンタです。いつもお世話になっております。

従来の2重化運用では、方式上の問題があり、2重化動作が正常に行われない
場合がありました。今回、この問題を解決し、2重化運用を正しく利用する
ためのスクリプトをサンプルとして提供します。
あくまでもサンプルですので、実際の運用環境に合わせて修正が必要に
なることがあります。あらかじめご承知置きください。

■概要
    2重化の動作はdbredirectorのログファイルを利用して行っています。
    システム運用の安定化に欠かせないこのファイルを定時バックアップし、
    dbredirectorログクリアを定期的に行うサンプルスクリプトを提供します。
    ログファイルは7世代保持します。各世代のバックアップは gzip で、
    圧縮して保持します。

■キーワード
    DB2重化運用

■現象
    主従のDBの同期が取れなくなる。

■対象ユーザ
    DB2重化運用を利用していて、定期的にorcaデータベースのダンプ採取と「dbredirector」用のログファイルのクリア処理等を施していない場合。

■原因
    dbredirector用ログファイルのサイズ肥大化による二重化の機能停止。
    以下、詳述します。
    日医標準レセプトソフトで使用している「MONTSUQI」の機能である「dbredirector」には、従サーバへのDB非同期更新を行うとともに、
    発行したSQL文をログファイルに出力する機能があります。
    このログファイルは、pg_dumpコマンドを実行した時点から、最新の状態にするためのログファイルとして利用するものです。
    何らかの障害が発生して、データベースの内容を最新に戻す必要が出てきた場合に、最新のpg_dumpで取得したファイルからデータベースをリストアし、dbredirectorのログファイルをデータベースに当てることにより、最新の状態まで復旧することを可能にします。
    ただし、このログファイルをクリアすることなしに、そのまま書き込み続けると、やがて1ファイルに書き込めるバイト数の限界を超えてしまい、ログファイルへの書き込みができなくなってしまいます。
    それ以降は、dbredirectorが正常に動作しなくなり、主従の同期がとれなくなってしまいます。
    それを回避するために、定期的にpg_dumpコマンドを実行してDBの内容をフルバックアップし、その時点でdbredirectorのログをクリアをする必要があります。

    今回提供したサンプルスクリプトは、dbredirectorを正常に機能させるために必要な、「データベースのバックアップ」と「dbredirectorのログをクリア」を自動的に行うものです。
    ただし、標準提供の定義体を変更したり、運用にそぐわない(NFS(NetworkFileSystem)等を使っての別マシンへのコピー、MO等の外部メディアへのバックアップを行う等)場合には、このスクリプトをカスタマイズする必要があります。(詳細は、「■カスタマイズが必要なかたへ」「■処理別スクリプトファイルの設定」をご覧ください) 

■皆様に行っていただく作業
    以下のURLからファイルをダウンロードしてください。
    http://www.orca.med.or.jp/receipt/guidance/db_2/tdump.tar.gz

    ダウンロードファイル tdump.tar.gz

    ファイルをダウンロードしましたら、以下のコマンドを実行して、圧縮したファイルを解凍してください。

    $ tar zxvf tdump.tar.gz

    そのままご利用いただける場合は、「cd tdump」コマンドを実行して、tdumpディレクトリに移動し、rootユーザで次のコマンドを実行してください。

    # ./install.sh

    アンインストールは、同じ場所で以下のコマンドを実行してください。

    # ./uninstall.sh

    ▲注意事項
        このシェルスクリプトを実行しますと、/etc/cron.d/tdumpで指定した時間(デフォルトでAM2:30)に、日医標準レセプトソフトを再起動します。
        そのため、運用に際しては、実行時間にかならず全端末の「glclient」を停止させておく必要がありますので、ご注意ください
        (起動中のglclientがある場合は、glserverが終了せず残ったままになることがあります)。
        アンインストールの際、/home/orca/.jma-receipt/tdump/dbdumpにダンプファイルが残っていますと、アンインストールに失敗しますので、ご注意ください。 

■カスタマイズが必要な方へ
    このバックアップ・ログクリアのスクリプトは、以下のような処理を順に行います。

    日医標準レセプトソフトの停止 
    pg_dumpの実行 
    dbredirectorのログのクリア 
    日医標準レセプトソフトの再起動 

■処理別スクリプトファイルの設定
    /etc/cron.d/tdump
    データベースのバックアップとdbredirectorログのクリアを行う日時と実行するスケジュール定義ファイル
    デフォルトで、AM2:30にバックアップをするようにしています
    別の時間にバックアップ・ログのクリアを行いたい場合は、このファイルを修正してください
    また、手動でバックアップを行う際には、スケジュールの行を無効にしてください 
    /home/orca/.jma-receipt/tdump/scripts/tdump.sh
    データベースのバックアップとdbredirectorログのクリアを実行するスクリプト
    (NFS等で別のマシンにコピーしたり、MOなどの外部媒体にバックアップする場合は、このファイルを修正してください)
    手動でバックアップを行う場合は、orcaユーザでこのシェルスクリプトを実行してください。 
    /home/orca/.jma-receipt/tdump/dbdump
    pg_dumpで出力したファイルを格納するディレクトリ 
    /var/lib/jma-receipt/dbredirector/orca.log
    dbredirectorのログファイル(※1) 

    ※1
    dbredirectorのログファイルは、「/etc/jma-receipt/dbgroup.inc」で定義したものを指定するようにします。
    デフォルトでは、以下のような記述をしたものを想定しています。 

db_group {
 type "PostgreSQL";
 port "localhost";
 name "orca";
 file "orca.log";
 redirect_port "localhost";
 redirect "log";
};
db_group "log" {
 priority 100;
 type "PostgreSQL";
 port "192.168.***.***";
 name "orca";
 file "/var/lib/jma-receipt/dbredirector/orca.log";
};
db_group "shell" {
 type "shell";
 priority 1000;
};

上記の「/var/lib/jma-receipt/dbredirector/orca.log」の部分を変更されている場合は、「tdump.sh」の先頭の以下の記述部分を変更してください。

RLOGDIR=/var/lib/jma-receipt/dbredirector
RLOG=$RLOGDIR/orca.log
RLOGBAK1=$RLOGDIR/orca.log.old1

--
ORCA Support Center/JMARI/JMA(MN)
http://www.orca.med.or.jp/support/qa/support_form.html
T: 03-5319-4665 iFAX: 020-4623-1358
認定事業所専用フリーダイアル: 0800-600-5506(Go Go ORCA)