Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
48
Help us understand the problem. What is going on with this article?
@UedaTakeyuki

さくらのレンタルサーバでデータベースを自動的にバックアップして、いざというときに復元する

More than 5 years have passed since last update.

背景

下記はさくらのレンタルサーバの、「データベースの設定」の注意事項です。ご覧のとおり、データベースを削除した場合、 復旧できないそうです。

スクリーンショット 2014-06-24 22.13.01.png

このデータベースの 管理ツールですが、下記のような UI で、老眼の進んだ私は管理ツールにログインしようとして、時々まちがえて「削除」をクリックしそうになるのですが、 今日、ついに本当に間違えて削除してしまいました ^^;;;

スクリーンショット 2014-06-24 22.53.10.png

なんか世の中、「データベース消しちゃった」系の事故が頻発してますね。徹夜作業中に delete * (while句なしで) してしまって、朝イチの飛行機で北海道に逃げる、という話も読んだことが有る気がします ^^;;; truncate だったかな?

もちろん、^^;;; なんて冷や汗で笑ってられるのは、 データベースのバックアップを定期的にとってあるからでして、データベースというものは消えてしまうのが自然、とぐらいに考えて、多重化するなり、Dynamo DB にするなり、もしくは バックアップの取得を自動化しましょう

バックアップ取得の自動化

MySQL のバックアップは mysqldump コマンドで取得します。
下記のシェルで2世代までとってます
下記で「アカウント」「パスワード」「データベース」は、みなさんの環境でのさくらのアカウントとパスワード、及び作られたデータベースの名前に置き換えてください

mysqldump.sh
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分にとるように設定します。ちなみにエメラルド色のブロックで消してある部分は私のアカウント名になりますので、皆様のアカウントで置き換えてください。別の場所においてもよいですが、ホームディレクトリがわかりやすいと思います

スクリーンショット 2014-06-24 22.55.36.png

これで、一時間毎に dump.sql と、さらに一時間前の dump.old.sql のが取得されます。特に問題がおきなければ dump.error.txt は 0バイトのままです

バックアップからの復元

復元は、ものすごく簡単です。まず、FTP で dump.sql をダウンロードしておきます
つぎに、管理ツールで消してしまったデータベースと同じ名前の空のデータベースを作ります

スクリーンショット 2014-06-24 23.02.13.png

作ったデータベースを管理ツールで開き、「 インポート」を選択、インポートするファイルとして先ほどダウンロードしておいた dump.sql を指定し、「 部分インポート」のチェックボックスを 外し 右下の「 実行する」をクリックします

これだけで、消してしまったデータベースは復活します

スクリーンショット 2014-06-24 23.39.25.png

感想

いやぁ、正直焦りましたというか、本当になんか意識がすーっとなくなるような感覚になりました ^^;;;
本当に とっててよかったバックアップ

48
Help us understand the problem. What is going on with this article?
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
UedaTakeyuki
Mais à l’instant même où la gorgée mêlée des miettes du gâteau toucha mon palais, je tressaillis, attentif à ce qui se passait d’extraordinaire en moi. Marcel Proust - À la recherche du temps perdu

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
48
Help us understand the problem. What is going on with this article?