メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

AccessのMDBファイルをUbuntuで利用

仕方なく方法を探っただけで、やりたいわけでは…

Windowsで動くDB関係のシステムが、XP上で動くものの、Windows7では動作しない。
何とかならないか?と相談を受けて、検討している。

調べてみると、OfficeXP上のAccessを利用して構築されたシステム。
しかし、当時Setupしたものの、すでにそのDiskは無い。

一応、お客の所でWindows7上のAccessでテストしたものの、起動せず…。

そこで、データだけは抜き出して、移植(というか再構築というか、まぁ作り直し)することに。

使用していない機能も多いため、聞き取りを行い、要件定義をしてみたり、設計してみたり…。

さて問題は旧データを取り出して使えるかだ。

我が家の仮想マシン(WindowsXPもWindows7)は、Accessなんて入っていない。
そもそも、Accessは、複数マシンからアクセスした時に超遅くて、挙句の果てにファイル壊してくれたりして以来、使用していない。
だからもう、10年以上開発には使っていないなぁ。

ずっと、PostgreSQLとMySQLでやってきたので、Accessが入っていないのも当然。

iMacのMS-OfficeにはAccessは含まれていない。

MDB Viewer Plusを発見

探してみたら、まぁなんとかなりそうなツールを発見。MDB Viewer Plusだ。
検索語「MDB Viewer」で引っかかったので、まんまの名前だったww

Accessなしで、MDBファイルから直接内容を読み取れるらしい。

早速、Windows7上で試してみる。

一応、MDBファイルは確かに読める。
ReportやForm、コードはダメだが、DB自体は読み込めるし、Exportも可能だ。

まぁ、最低限、過去のデータを手入力しなくても良さそうなので、一安心。

開発のことを考えると、迷うところ。
  1. Excelとマクロで無理やり作る。
  2. Windows上の新しいAccess2013で構築する。
  3. バックエンドにDBサーバを置いて、Windows上のアプリを作成する。
  4. バックエンドにDBサーバを置いて、WEBアプリで作成する。
どれも、一長一短だ。

半分ほど手作業で、補助ツールを用意する程度のシステムにしておけば、万が一の場合や、保守しなくなったりしても自分たちで何とかできるかもという考えでのExcel+マクロなんだけど…。

そもそも、WindowsXPのようにサポートが切れ、利用不可になるOS上のDB。Accessで構築したために、今回移行できずに困っているわけなので、特定のアプリに縛られない方が良いような気もする。

気持ち的には4のWEBアプリが、保守とかしやすくて良さそうだけれど、UIがどうしても貧弱になってしまうので…。

設計は置いといて

まあ、今後の作業はとりあえず、これから検討するとして…。

このMDBをUbuntu上で読み書きできれば、作業効率も上がるかなぁと考えたりして。

何せ、Windowsは仮想マシンなので、起動に20〜30秒ほどはかかる。ログインして使える状態まで約1分程度は待つのが嫌だし、AntiVirusのパターンファイルの更新やら、WindowsUpdateの更新などがかかって、まともに使えるまでに結構時間がかかるのでWindows上で作業したくないというのが本音。

何せ、SSD搭載のX200が爆速で、電源ONから使えるまでの20秒に慣れてしまうと…。

そこで、MDB Viewer Plusをwineで動かしてみる。
$ wine mdbplus.exe
エラー吐いて、お亡くなりになります。
くそっ、ダメか…。

念の為、ググってみる。
GentooのForumに、MDBplus.exeとwineの記事を見つけた。

その中のPOSTに
using winetricks for install packages mdac28, vcrun6, mfc42 is solved this problem.
but i imagine that not all of this packages is need in this case.
if you have some time, then start please from 'winetricks mdac28' and then try to run 'wine <app>'.
なんてヒントがあった。

MDACとは Microsoft Data Access Components (MDAC)のことだ。
そうか、これがあれば行けるのか?

早速、mdac28を入れてみる(28はバージョンなのかなぁ…ちょっと不安だけど、良くわかっていないし…)
$ winetricks mdac28
すると、ネットからインストールしてくれる。
Executing w_do_call mdac28
Executing load_mdac28
Executing mkdir -p /home/username/.cache/winetricks/mdac28
Downloading http://download.microsoft.com/download/4/a/a/4aafff19-9d21-4d35-ae81-02c48dcbbbff/MDAC_TYP.EXE to /home/username/.cache/winetricks/mdac28
--2014-04-21 22:07:30--  http://download.microsoft.com/download/4/a/a/4aafff19-9d21-4d35-ae81-02c48dcbbbff/MDAC_TYP.EXE
download.microsoft.com (download.microsoft.com) をDNSに問いあわせています... 2402:6b00:0:2d::db75:21a3, 2402:6b00:0:2d::db75:219a, 219.117.33.137, ...
download.microsoft.com (download.microsoft.com)|2402:6b00:0:2d::db75:21a3|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 6100504 (5.8M) [application/octet-stream]
`MDAC_TYP.EXE' に保存中
100%[======================================>] 6,100,504   1.63MB/s   時間 4.4s
2014-04-21 22:07:35 (1.33 MB/s) - `MDAC_TYP.EXE' へ保存完了 [6100504/6100504]
Using native,builtin override for following DLLs: odbc32 odbccp32 oledb32
Executing winetricks_early_wine regedit C:\windows\Temp\_mdac28\override-dll.reg
Setting Windows version to win98
Executing winetricks_early_wine regedit C:\windows\Temp\_mdac28\set-winver.reg
Executing wine mdac_typ.exe
err:richedit:ReadStyleSheet skipping optional destination
err:richedit:ReadStyleSheet skipping optional destination
err:richedit:ReadStyleSheet skipping optional destination
err:richedit:ReadStyleSheet skipping optional destination
err:richedit:ReadStyleSheet skipping optional destination
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:setupapi:SetupAddInstallSectionToDiskSpaceListA Stub
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\msvcrt.CAB"
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\mtxfiles.CAB"
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\MDACxpak.CAB"
fixme:setupapi:SetupDefaultQueueCallbackW notification 262144 params f529e0,0
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\MDACxpak.CAB"
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\SQLXMLXP.CAB"
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\sqlnet.cab"
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\sqlodbc.cab"
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\SQLOLDB.CAB"
fixme:advpack:set_ldids Need to support changing paths - default will be used
fixme:setupapi:extract_cabinet_file awful hack: extracting cabinet "C:\\users\\username\\Temp\\IXP000.TMP\\JETFILES.CAB"
Setting Windows version to winxp
Executing winetricks_early_wine regedit C:\windows\Temp\_mdac28\set-winver.reg
ここで、先ほどと同じく
$ wine MDBplus.exe
とすると、さっくりと動くじゃないですか…。
Windows7上で動かした時と、全く同じ動作をしてくれます。

最近のwineは本当に、良く動くようになったなぁと、改めて感心します。
(って先日のFileMakerの時も感心したんだったなぁ)

そこで、目的のMDBを開いてみると、パスワードの確認ダイアログを通過。
ところが…。

ERRORを吐いて、先へ進めない。

msxml3/msxml6かもという書き込みをみて、winetricksで入れてみるがだめだった。
MDACのバージョンだとか、DLLのバージョンの相違で起きるらしいのだが…。

現状、ここまででしか動かせなかった〜。
あと、少しな感じなのになぁ。


コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ