EC2上のMySQLデータベースの自動バックアップ設定

EC2上のMySQLデータベースの自動バックアップ設定

작성자
ユミンユミン
카테고리
Dev.Log
작성일
2024년 03월 11일
태그
Project
DevOps
notion image

はじめに

EC2インスタンスで運用中のMySQLデータベースは、データ損失のリスクから保護するために定期的なバックアップが必要です。本記事では、Linux環境下でMySQLデータベースの自動バックアップを設定する方法を紹介します。
 

バックアップファイルの格納先ディレクトリ作成

まず、バックアップファイルを保存するディレクトリを作成します。
mkdir ~/MySQL_Backup
このディレクトリには、定期的に作成されるMySQLのバックアップファイルが格納されます。
 

バックアップスクリプトの作成

次に、MySQLのバックアップを行うスクリプトを作成します。
# Linuxの現在時刻を時間形式に合わせて出力する。 DATE=$(date +%Y_%m_%d_%H_%M_%S) # MySQLの.sqlファイルをバックアップするディレクトリの位置を指定します。 DB_BACKUP_DIR=/home/ubuntu/MySQL_Backup/ # DATE変数の現在時刻を出力します。 echo $DATE # DB_BACKUP_DIR 変数の作業するディレクトリを出力します。 echo $DB_BACKUP_DIR # mysqldumpコマンドを利用してデータベースを.sqlファイルとして保存します。 mysqldump -u [MySQLのユーザー名] -p[MySQLのパスワード] [DB名] > [DBバックアップファイル名].sql # バックアップファイルを保存するフォルダから7日前に作成されたすべてのファイルを削除します。 (サブディレクトリまで) find $DB_BACKUP_DIR -ctime +7 -exec rm -f {} \;
MySQL_Schedule_Backup.sh
 

Crontabを使った自動バックアップの設定

notion image
crontab -e コマンドでCronタスクを設定します。これは、Linux環境で定期的にタスクを自動実行するためのものです。
0 */1 * * * sh /home/ubuntu/shNote/MySQL_Schedule_Backup.sh
この設定は、1時間ごとに上記のバックアップスクリプトを実行します。
 

Crontabを利用する理由

Crontabを利用することで、スクリプト実行時の環境変数が適切に設定され、バックアッププロセスがより安定します。/etc/bashrcにスクリプトを直接挿入して実行する方法と比較して、Crontabは定期的な実行スケジュールの設定が簡単で、システム再起動後も自動でタスクが続行されるため、より安全で信頼性の高い運用が可能になります。
 

まとめ

EC2上でMySQLデータベースを運用する際は、データの安全性を確保するために自動バックアップシステムを設置することが重要です。この記事で紹介した手順を通じて、安定したデータバックアップ環境を構築し、万が一のデータ損失リスクからデータを保護しましょう。

댓글

guest