Help us understand the problem. What is going on with this article?

DB飛ばした話

背景

・約6年前に運用していた予約登録系システムの話
・予約登録系システムは外向けのサーバーと管理用のサーバーで分かれていた
・そのうち、やらかしたのは管理用のサーバー
・APはColdfusion
・DBはSQL Server

経緯

予約登録の管理画面には何処にもリンクの張られていない、ある特定の人だけの実績が見れる画面があった。
ある日、実績画面の修正依頼が来たので、確認するために実績画面にアクセスした。
長い待ち時間の後、表示されたのは何も移っていない真っ白な画面だった。
暫くするとサポートに電話がなった。
内容は、管理画面が表示されない・登録した予約が入っていない等の問合せだった。

原因

自分がアクセスした実績画面だと思ったURLは、実はリリース時に使用した(と思われる)
DBを初期化するプログラムであった。
全てのテーブルがドロップされ、まっさらなテーブルが作成されていた。

対応

通常であればバックアップから復元すれば良いだけの話であるが、
SQL Serverの復旧レベルが「単純」であったため、発生直後に戻せず定例バックアップが行われる当日の深夜の状態までであった。
外から来た予約については外向けのサーバーにもDBを持っているため、手入力にて復旧を行ったが、
管理画面から登録した予約については諦めざるを負えないため、完全復旧とはならなかった。

何故惨劇は行われたか

・前任者が退職していたため、プログラムの存在を誰も知らなかった。
・過去にも対応したことがあると高を括り、良く確認もせずにアクセスしてしまった。
・そもそも誰でもアクセスできる場所に設置されていた。
・SQL Serverを使用するシステムを一律で「単純」に設定していた。

惨劇後の対応

・プログラムの撤去
・SQL Serverの復旧レベルの設定を「完全」にし、障害発生時に戻せるように変更
・チーム内へ注意喚起

振り返り

今はもう無くなったシステムですが、似たような惨劇を聞くたびに思い出しては震えています。
ヒューマンエラーが重なったことにより起きましたが、慎重にことを進め、後片付けも大事だと改めて気付かされた事件でした。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした