ORCA も Ubuntu 16 の旧版のサポートが去年で終わり、いよいよ Ubuntu 18.04 + ORCA 5.1.0 運用に変更する必要に迫られました。
ここにアップデート手順について期しておきます。
旧サーバーでの作業
ORCA のバックアップをとります。
sudo -u orca pg_dump -Fc orca > orca.dump
もし、TeraTerm でつないでいるなら、バックアップが終わったら 「ファイル」の「SSH SCP」で、/home/ユーザー名/orca.dump をパソコンにダウンロードします。
例:ユーザー名 ormaster でログインしてるなら、/home/ormaster/orca.dump
Ubuntu 18.04 インストール
これは通常の通りで、標準構成(初期値のまま)で行ってもらえばかまいません。
「通常のインストール」でインストールを行います。
「Ubuntu のインストール中にアップデートをダウンロードする」はチェックを付けといて大丈夫でした。
インストール終了後は
sudo apt update
sudo apt -y dist-upgrade
sudo apt -y autoremove
sudo apt clean
で、いったん最新状態にしておきます。
sudo apt -y install openssh-server
で、openssh server をインストールして、TeraTerm でつないでから作業すると、ファイルのやり等が便利ですので、以下の記述は、TeraTerm での接続を前提に書いてます。
ORCA インストール
sudo -i
にて、root になってから以下の作業を続けます。
wget -q https://ftp.orca.med.or.jp/pub/ubuntu/archive.key apt-key add archive.key cd /etc/apt/sources.list.d/
wget https://ftp.orca.med.or.jp/pub/ubuntu/jma-receipt-bionic51.list
apt update
apt -y dist-upgrade
exit
ログインユーザーに戻ったら
注:旧版のデータベースが EUC-JP なら、6行目の UTF-8 を EUC-JP に。
sudo apt-get install -y jma-receipt
wget https://ftp.orca.med.or.jp/pub/etc/install_modules_for_ftp.tgz
tar xvzf install_modules_for_ftp.tgz
cd install_modules_for_ftp
sudo -u orca ./install_modules.sh echo 'DBENCODING="UTF-8"' | sudo tee /etc/jma-receipt/db.conf
sudo jma-setup --noinstall
この時に、
DBHOST: OK (PostgreSQL:localhost)
DBUSER: OK (orca)
DATABASE: CREATEDB (orca)
DBENCODING: OK (UTF-8)
OK! データベースをリストア後再度 jma-setupを実行してください
と、UTF-8 であることを確認しておきます。
一旦できたデータベースを削除するには、
sudo -u orca dropdb orca
で削除できます。
ここで一度 orca を止めます。
sudo systemctl stop jma-receipt
旧サーバーの orca.dump を、TeraTerm の 「ファイル」の「SSH SCP」で、/home/ユーザー名/ にアップロードします。
例:ユーザー名 ormaster でログインしてるなら、/home/ormaster/
コピーが終わったら、旧版のデータをレストアします。
cd ~
sudo -u orca pg_restore -x -O -d orca orca.dump
レストア中の以下のエラーは無視していいそうです。
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 4935; 0 0 COMMENT EXTENSION plpgsql
pg_restore: [archiver (db)] could not execute query: ERROR: must be owner of extension plpgsql
Command was: COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
WARNING: errors ignored on restore: 1
データベースの文字コードが異なる場合は、UTF-8 やら EUC-JP の入った行のエラーがぞろぞろ出るので、
sudo -u orca dropdb orca
sudo vi /etc/jma-receipt/db.conf
で、
DBENCODING="UTF-8"
を書き込んで UTF-8 と EUC-JP を変更して、再度
sudo jma-setup --noinstall
してから、レストアのコマンドを実行してください。
レストアが問題なく終了したら、
注意:3~7 行目は 5.2.0 で実行するとまずいそうです。
sudo jma-setup
sudo apt-get update
sudo apt-get install orca-ca-cert
wget http://ftp.orca.med.or.jp/pub/etc/install_modules_for_ftp.tgz
tar xvzf install_modules_for_ftp.tgz
cd install_modules_for_ftp
sudo -u orca ./install_modules.sh
sudo systemctl start jma-receipt
クライアントソフトでの作業
画面中央に赤字で「マスタデータ移行処理が未実施です。管理者まで連絡してください」と
メッセージが表示されます。
まずは、「03プログラム更新」してから、業務メニューからの「92 マスタ更新」で、「更新」します。
プラグインのエラーは、「プログラム更新」で、「not found」等のエラー表示されているプラグインを一度削除してから、「組込」しなおしてください。
TeraTermで、再度接続してからの作業
保険者マスタ更新を行います。
wget http://ftp.orca.med.or.jp/pub/etc/tools/jma-master-setup.tgz
tar xvzf jma-master-setup.tgz
cd jma-master-setup
sudo -u orca ./jma-master-setup -r -m 9 1
最後の行の 1 は、クリニックでは本来 2 かと思うんですが、1 でないとエラーが出ました。
実行後、「従サーバへの処理、又はリプリケーションを確認してください。」と出たら
マスタデータ移行処理を行います。
sudo /usr/lib/jma-receipt/bin/jma-migrate
確認は、
ls /var/log/jma-receipt/*-prf.csv
エラーを
sudo find /var/lib/jma-receipt/master/01/orca-mstlog -maxdepth 1 -size +0c -name "*.ERR"
で確認して、エラーのあるファイルを発見したら、
sudo cat エラーのファイル名 | iconv -f EUC-JP
で、エラーの内容を確認してください。
(確認の部分はOpenDolphin日記 http://opendolphin.motomachi-hifuka.jp/2019/11/post-5b3b06.html を引用させていただきました。)
これでいったん終わりですが、念のため、クライアントソフトで、「92 マスタ 更新」を再度しておいたほうがいいかもしれません。マスタ更新時にファイルがないようなエラーが出た場合は、「03 プログラム更新」してから再度「92 マスタ 更新」を行ってください。