#背景
下記はさくらのレンタルサーバの、「データベースの設定」の注意事項です。ご覧のとおり、データベースを削除した場合、 __復旧できない__そうです。
このデータベースの __管理ツール__ですが、下記のような UI で、老眼の進んだ私は管理ツールにログインしようとして、時々まちがえて「削除」をクリックしそうになるのですが、 今日、ついに本当に間違えて削除してしまいました ^^;;;
なんか世の中、「データベース消しちゃった」系の事故が頻発してますね。徹夜作業中に delete * (while句なしで) してしまって、朝イチの飛行機で北海道に逃げる、という話も読んだことが有る気がします ^^;;; truncate だったかな?
もちろん、^^;;; なんて冷や汗で笑ってられるのは、 __データベースのバックアップを定期的にとってある__からでして、データベースというものは消えてしまうのが自然、とぐらいに考えて、多重化するなり、Dynamo DB にするなり、もしくは バックアップの取得を自動化しましょう
バックアップ取得の自動化
MySQL のバックアップは mysqldump コマンドで取得します。
下記のシェルで2世代までとってます
下記で「アカウント」「パスワード」「データベース」は、みなさんの環境でのさくらのアカウントとパスワード、及び作られたデータベースの名前に置き換えてください
cd /home/アカウント
mv dump.sql dump.old.sql
/usr/local/bin/mysqldump -Q -h mysql419.db.sakura.ne.jp -uアカウント -pパスワード データベース名 > dump.sql 2> dump.error.txt
次に、このシェルを下記のように cron で例えば毎時0分にとるように設定します。ちなみにエメラルド色のブロックで消してある部分は私のアカウント名になりますので、皆様のアカウントで置き換えてください。別の場所においてもよいですが、ホームディレクトリがわかりやすいと思います
これで、一時間毎に dump.sql と、さらに一時間前の dump.old.sql のが取得されます。特に問題がおきなければ dump.error.txt は 0バイトのままです
#バックアップからの復元
復元は、ものすごく簡単です。まず、FTP で dump.sql をダウンロードしておきます
つぎに、管理ツールで消してしまったデータベースと同じ名前の空のデータベースを作ります
作ったデータベースを管理ツールで開き、「 インポート」を選択、インポートするファイルとして先ほどダウンロードしておいた dump.sql を指定し、「 部分インポート」のチェックボックスを 外し 右下の「 実行する」をクリックします
これだけで、消してしまったデータベースは復活します
#感想
いやぁ、正直焦りましたというか、本当になんか意識がすーっとなくなるような感覚になりました ^^;;;
本当に とっててよかったバックアップ