さくらサーバーのデータベースを削除して復旧するまで…
34歳月給手取り17万7千円派遣社員Webデザイナーのニックです。
今回は仕事中にさくらインターネットのサーバーを触っていてミスって本番のデータベースを削除してしまい、4千人以上の会員の住所録や電話番号などの顧客データが一瞬にして消えた話を書いておこうと思う。
スポンサーリンク
原因はボーっとしてたから
3月1日になり、2月末までの案件が一段落したおかげで上司もこの日は午後出勤ということで落ち着いた日だった。
そんな時に上司から電話があってとある大企業のBtoBサイトの会員専用サイトを修正してくれという依頼が来た。
このサイトはPHPのフレームワークで構築されており、更新ファイルの場所すら簡単には見つからない、はっきり言ってウェブデザイナーには手に余るサイトとなっている。
前回も修正した瞬間全会員に向けてメールが一斉に誤送信されるというトラブルがあったりと訳がわからない構造になっている。
管理画面のURLもわからず適当にそれっぽい名前を入れまくって探す(単純にadminだったけど)という、まさにブラックボックというサイトで前任者はすでに辞めていて詳細がわからない上、作った会社はあまりに対応が悪くこちらから取引停止したため誰かに聞こうにも聞くに聞けないサイトとなっている。
その為、何のファイルを修正すればいいのか全データをダウンロードしてgrepしてヒットしたファイルを修正するという意味のわからない更新方法しか出来ない。
そして厄介なことに画像データを本のような形式で表示する部分に関しては画像を上げただけでは見ることが出来ずデータベースをいじらなければ表示確認すらできないのである。
そして今回その本のページの修正依頼が来た。
私はあっという間に画像データを作り上げ、アップロードまで終わってしまい時間を持て余したのでデータベースの中身を見たくなった。簡単ならこっちでさらっと直して確認まですませておけば早いからである。(前回は上司がデータベースを変更して表示させた)
さくらのサーバーに入るパスワードなどは全部紙に書いてあって誰でも入れるので普通に入ってデータベースを探す。
私は10年以上さくらのサーバーを仕事や趣味で使っていてデータベースも引っ越したりお手の物なのである。
そして今回も中身を見るためにボタンをポチポチ…なんかダイヤログボックスが出たけどポチポチと押していく。
その瞬間データベースが消える。
なんかぼーっとしていたのだが一気に目が覚めて頭のなかで大音響で世界が終わる時に流れる音が響いた。
どんな音やねん!って思うだろうがMacのパソコンを立ち上げた時に流れるあの音が何重にも混ざりあった悪魔の奏でる恐ろしい音色である。
そして視界がぐにゃぐにゃになって気が遠くなる(まさにカイジ)。
この画像はさくらのデータベース管理画面なのであるがご覧のようなとてもシンプルな作りである。操作と書かれている部分には削除ボタンしか無い。
操作なのに削除なのである。俺はデータベースを操作したくて操作ボタンを押したつもりが削除ボタンだったわけである。
削除ボタンを押して出て来るポップアップが物凄くシンプルな作りで軽くオッケーを押せちゃうのも恐ろしい。
普通別の画面に遷移してあなたはデータベースを消そうとしています!本当にこの操作をしてもよろしいのですか?何か大切なものがデータベースに格納していないか確認しましたか?なんなら一応バックアップをとっておきますか?ぐらいの確認があっても良くないか?
なんでこんなにカジュアルにデータベースを削除させてくれるのか?理解不能である。調べたら過去にも私のようにデータベースを削除してしまい絶望の淵に立たされた人たちがいるようである。
このインターフェスを何年もずっと変えないのは本当になんでなのか?UX/UIの重要性が声高に叫ばれてもう何年も経っているのに…。
我に返って必死で注意文を読んだりしてみるがどうもデータベースは一度消すと復旧出来ないらしい。
Google先生を使って調べるとレンタルサーバーは他の人も同じディスク容量を使っているので消したらすぐに上書かれてしまう可能性もありデータはほぼ復旧不可能とのことだ。
いや、さくらサーバーよ、もしもデータ復旧ボタン一回5万円ってボタンがそこにあったら俺は迷わずクレジット決済して押してたよ。頼むから1日ぐらい消したふりして復旧可能な作りにしてくれよ…。
本当にどうしようも無いのかサポートに電話してみることにした。意外と早くサポートにつながってことの成り行きを話して復旧無理?って聞いてみたら完全に出来ないという返答。どうすればいいと思う?って聞いたらデータベースを新しく作ってバックアップから復旧すればいいんじゃない?って感じの回答だった。
まぁバックアップが有ればそうしてるよね。
ちょっと本当にサイト見れないのかな?もしかしたら見れたりしないかな?とサイトのURLを叩いてみたけど絶望的なデータがありませんという文言。
もう本当に今すぐにでもどこか遠くに逃げてしまいたくなった。青森とかで地吹雪の中、途方もなく歩き続け人知れず行き倒れて雪に埋もれてしまえば楽になれるんじゃないかと感じる。
軽く考えて顧客データが飛んでサイトも見れない状況になっていることを考えると数百万の損害となってしまう可能性も考えられる。
ただ、よく見るとテスト用のデータベースが残っていたのでそれをエクスポートして新しく作った方へ本番データベース名を付けて保存してみる。
サイトが表示されるようになった!やった!サイトはデータベースじゃなくてよくわからないPHPで動いてるからサイトの作り直しは避けられている!これで高飛びしなくてもいいぞ。
でもよく考えると顧客データは全然復旧できてなくて絶望が蘇る。
もう俺にはどうしようもないと悟り、部長に報告。社会人でいちばん大事なことは早めに報告することであり報告が遅くなればなるほど致命的な状況に陥る。とにかく火は燃え上がる前に全力で消さなければならない。
午後から出社した上司と対応を練り、前任者のパソコンにバックアップデータが残っているかどうかを探すことにした。
外付けハードディスクなど社内にあるバックアップデータを全部サルベージして行く作業に追われている内に夕方になる。
そしてふと気付く、俺のパソコンも一応サルベージしておくとなんかあるかも?と。
ということでとりあえずCドライブだけバックアップデータの名前っぽいもので検索してみる。
*.sqlというエクスポートデータで検索をかけたところなんとそれっぽいデータがヒット!
12月のデータであったがたった2ヶ月間の顧客データが入っていないだけの本番バックアップデータが発見されたわけである。この2ヶ月間のデータなら他にデータが有るということで完全に復元された。
本当に信じられないぐらいの奇跡が起こったと言える。
なんでこんなパソコンに俺がバックアップ取ったわけでもないデータが残っていたのか調べると上司がこのサイトを更新する時にもしかしたら必要かもしれないから一応送っとくって送ってきたデータだったのである。
ぶっちゃけ更新にこのデータなんて一切使わず忘れ去られていたわけであるがこれが今回大活躍したわけだ。
マジでこのデータが無ければサルベージ作業は朝まで続いていた可能性もある。それでも見つかった保証など無いし前任者もバックアップデータなんて取ってなかった可能性もある。
ってことでマジで世界が終わったと感じた一日はなんとか無事夜明けを迎えることが出来た。
データベースを消しちゃった時はバックアップファイルを探そう!
もしかしたら昔何かがあって偶然エクスポートしているデータが残っているかも知れないので一応検索してみると見つかるかもしれない。
とにかく諦めたらそこで試合終了なので必死であがくしかない。
定期的にバックアップを取る習慣が必要
今回の件にしてもデータベースのバックアップファイルを誰も持っていなかったというのが一番の大問題である。(一応運良くバックアップデータが見つかったから良かったものの本当に奇跡とよんでも差し支えないレベルの運のよさである。)
さくらインターネットのデータベース管理画面のUIがクソすぎて今までにも多くの技術者が誤ってデータベースを消してしまったり消しそうになってしまったりしているので自動的にバックアップを取るシステムを自分で作っている人も多い。
毎日深夜バックアップを自動保存するCRONを走らせたり、普通の会社ならそれぐらいしていて当たり前だと思うのだが…。
システムエンジニアもいないようなうちの会社が管理していいサイトじゃないんだよな…。
データベースをミスって削除してから復旧するまでのまとめ
結局私の単純なミスにより多くの人に迷惑をかけて復旧していただくことになった今回のデータベース削除事件はたった1日で全て復旧という奇跡的な収束を迎えることが出来た。
さくらのUIがクソすぎるので私はさくらのサーバーは解約して全データをMIXHOSTとXサーバーに移行することにしたがそんなに簡単にサーバーを変更できない人は多いだろう。
そんな人がさくらのサーバーを使わなければならないなら悪いことは言わないからデータベースを自動的にバックアップするシステムを開発しておくべしと言いたい。
ワードプレスの場合はWordPress Database Backupというプラグインが毎週勝手にバックアップデータをメールで送ってくれるので私はこれを利用している。データベースが消えるなんてことはほぼありえないのだがいざという時に安心である。
感謝→Amazonの履歴を御覧いただきありがとうございます。収益はサイト運営に大切に使わせていただきます。