システムバックアップについて
システム開発の仕事をしていると必ずバックアップが付いて回る。バックアップには主に3種類あって、1つ目は、メインのシステムがダウンしたとき代わりに稼働するシステム。コールドスタンバイとかホットスタンバイとか呼ばれるもので、停止するとクリティカルなシステムでは必須となる。2つ目は、作業を行う場合に失敗したら元に戻せるように作成するもの。何かを変更する作業を行う場合には必ず行われる。これを忘れるといつかは必ず痛い目に遭う。マーフィーの法則「起き得ることは(必ず)起きる」ってやつ。言い換えると可能性のあることは遅かれ早かれ起きてしまうっていうこと。3つ目はシステムが稼働している間にデータ不整合などのデータ異常が起きた場合にデータ異常が起きる前のデータを使って元に戻すために行う定時バックアップと呼ばれるもの。ユーザーのデータを扱う場合はバックアップが必須の場合も多いがバックアップでは対応できないシステムもある。自分も簡単なバックアップからバックアップシステムと呼べるものまでいろいろ作ってきたが、定時バックアップで重要なのはデータ異常に気が付いたとき、回復に必要な正常なデータが残っているように設計すること。全部のシステムが1日分、1週間分で良いというわけではなくシステムごとにバックアップに対するニーズが変わるってことを念頭に置いてバックアップを作らないといけない。私が一番古いバックアップを必要としたのは半年前のデータが必要になったときで、壊れているデータを出荷していたのに気が付いたのが半年後で慌てて半年前からのデータの処理を全てやり直した。本当は全てのデータを取っておくのが一番確実だけれども、データの容量もバカにならない。昔、カートリッジMTなる磁気テープでバックアップのシステムを作ったときは保管場所やカートリッジMTのコストなど制約があったのでバックアップは毎日取る。1週間以上経った場合月曜日のバックアップだけ残す。1か月以上経った場合第1週目の月曜日のデータだけ残すっていうシステムを作った。保管は何年でも出来るし、保管場所もクリア出来た。今は同様の制約はないかもしれないけれど、バックアップを作るときは、制約内で一番安全な取り方はどうすればよいかちゃんと考えてから作るようにしなければいけない。