mysqldump를 사용한 MySQL 백업

조승빈·2025년 3월 14일
post-thumbnail

mysqldump를 사용한 MySQL 백업

mysqldump 명령어는 MySQL 데이터베이스의 백업을 생성할 수 있는 기본적인 명령어이다.

mysqldump -u username -p database_name > backup.sql

-u username: MySQL 사용자 이름
-p: 비밀번호 입력을 요청한다. 비밀번호는 명령어 뒤에 입력하지 않는다. 실행 후 비밀번호를 입력하면 된다.
database_name: 백업하려는 데이터베이스의 이름
backup.sql: backup.sql이라는 파일로 백업을 저장한다.


백업 자동화

백업 자동화의 목적

  • 메모 어플은 사용자에게 중요한 정보를 저장하고 관리하는 기능을 제공한다.
  • 메모 어플에는 개인적인 데이터나 프로젝트 관련 자료를 포함하고 있기 때문에 데이터 손실을 막기 위해 백업을 진행한다.
  • 백업 자동화의 목적은 매일 자정에 자동으로 데이터베이스 백업을 수행하여 중요한 정보를 보호하는 것이다.

cron을 이용한 자동화

리눅스 서버에서는 cron을 사용하여 정기적으로 백업을 자동으로 수행할 수 있다.

  • 백업 스크립트 작성
    예를 들어, /home/vkflco08/backup.sh라는 스크립트를 만들고, MySQL 데이터베이스를 백업하도록 작성할 수 있다.
# MySQL 사용자명, 비밀번호, 백업할 데이터베이스명 설정
USER="root"
PASSWORD="your_password"
DATABASE="my_database"

# 백업할 경로 설정
BACKUP_DIR="/home/vkflco08/backup"
DATE=$(date +"%Y%m%d%H%M%S")

# 백업 파일명 설정
BACKUP_FILE="$BACKUP_DIR/${DATABASE}_backup_$DATE.sql"

# MySQL 데이터베이스 백업
mysqldump -u $USER -p$PASSWORD $DATABASE > $BACKUP_FILE

# 백업 성공 여부 확인
if [ $? -eq 0 ]; then
  echo "Backup successful!"
else
  echo "MySQL backup failed. Error signal: $?"
fi

# 백업 완료 알림 (옵션)
echo "Backup completed for $DATABASE at $DATE" | mail -s "MySQL $DATABASE Database Backup Completed" vkflco8080@gmail.com

메일 관련 설정은 여기

  • 스크립트에 실행 권한 부여:
# backup.sh실행
chmod +x /home/vkflco08/backup.sh

cron 작업 설정: crontab을 이용하여 매일 백업을 자동으로 실행되도록 설정할 수 있다.
나는 매일 자정에 백업을 실행하기 위해 cron에 다음과 같이 추가했다.

crontab -e
0 0 * * * /home/vkflco08/backup.sh

위 설정은 매일 자정(00:00)에 /home/vkflco08/backup.sh 스크립트를 실행하게 된다.

현재 설정된 Corn job 바로 실행

$ /home/vkflco08/backup.sh

/home/vkflco08/backup 안에 정상적으로 백업되는 것을 확인했다.

profile
평범

0개의 댓글