MySQLをGCSに自動バックアップする

基本的には

  1. データベースの全バックアップを取る
  2. GCSに送る

という手順を実行するだけです。コードは以下です。

DBのバックアップ

スクリプトはほとんどこちらを参考にさせてもらいました。

#!/bin/sh

period=30
BACKUP='/home/user/backup'
DB_USER=backup
DB_PASSWORD=password

CURRENT_NAME=`date +%y%m%d`
DELETE_NAME=`date --date "$period days ago" +%y%m%d`
mysqldump --opt --all-databases --events --default-character-set=binary -u $DB_USER --password=$DB_PASSWORD | gzip > $BACKUP/$CURRENT_NAME.sql.gz
rm -f $BACKUP/$DELETE_NAME.sql.gz

GCSへのバックアップ

  • GCEのインスタンスには最初からgcloudコマンドが入っているのでそれを使う
  • サービスアカウントなどで認証してmybucketへ疎通できるようにする

上記を踏まえて以下のコマンドでバックアップができます。 -m を付けるとすぐ終わりますが、負荷が高くなるので付けないでいます。

gsutil rsync -d -r /home/user/backup/ gs://mybucket

おわり

先程のShellの中の末尾にバックアップのコマンドを書いても良いし、別で実行しても良いと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA