MySQL 복원 – 꿈꾸는 개발자 https://studioys.me #개발 #일상생활 #생각 Fri, 20 Dec 2024 13:05:11 +0000 ko-KR hourly 1 https://wordpress.org/?v=6.8 https://studioys.me/wp-content/webpc-passthru.php?src=https://studioys.me/wp-content/uploads/2024/09/cropped-그림1-32x32.png&nocache=1 MySQL 복원 – 꿈꾸는 개발자 https://studioys.me 32 32 MySQL 백업 및 복구 : mysqldump를 활용한 데이터 보호 https://studioys.me/how-to-backup-and-restore-mysql-using-mysqldump/ https://studioys.me/how-to-backup-and-restore-mysql-using-mysqldump/#respond Sun, 15 Dec 2024 03:28:55 +0000 https://studioys.me/?p=964 더 보기MySQL 백업 및 복구 : mysqldump를 활용한 데이터 보호]]> 데이터베이스는 서비스에서 가장 중요한 자산으로 예기치 못한 데이터 유실을 방지하기 위해 반드시 주기적으로 백업해야 합니다. 이번 포스팅에서는 mysqldump를 사용하여 MySQL 백업 및 복구 방법에 대해서 알아보도록 하겠습니다.

mysqldump란?

mysqldump는 MySQL에서 기본으로 제공하는 Command Line 기반 백업 도구입니다. 이 도구를 사용하여 원하는 데이터베이스의 데이터와 스키마를 텍스트 형식(SQL Script)으로 내보낼 수 있으며, 이를 통해 데이터베이스를 복구하거나, 데이터를 다른 서버로 이동할 수 있습니다.

mysqldump 설치 및 확인

mysqldump는 MySQL 클라이언트에 포함되어 있습니다. 글만약 MySQL이 설치가 안되어 있으면, MySQL 다운로드 페이지에서 원하는 버전을 다운로드 하여 설치하면 됩니다.

아래 명령어로 프로그램 설치 여부를 확인할 수 있습니다.

mysqldump --version

MySQL 백업 및 복구

MySQL 백업 및 복구 방법에 대해서 알아보겠습니다.

MYSQL 백업

단일 데이터베이스 백업

보통 단일 데이터베이스를 백업하기 때문에, 아래 명령을 사용하여 백업할 수 있습니다.

mysqldump -u [사용자명] -p [데이터베이스명] > [백업파일명].sql

# 예시
mysqldump -u root -p my_database > my_database_backup.sql

만약 원격지에 있는 데이터베이스를 백업하기 위해서는 -h 옵션을 추가하여 백업을 할 수 있습니다.

mysqldump -u [사용자명] -h [호스트] -p [데이터베이스명] > [백업파일명].sql

전체 데이터베이스 백업

서버에 있는 모든 데이터베이스를 백업하려면 --all-databases 옵션을 사용합니다.

mysqldump -u [사용자명] -p --all-databases > [백업파일명].sql

특정 테이블만 백업

특정 테이블만 선택적으로 백업할 수도 있습니다.

mysqldump -u [사용자명] -p [데이터베이스명] [테이블명1] [테이블명2] > [백업파일명].sql

기타 백업 옵션

백업 시 다양한 옵션이 존재합니다. 그 중 많이 사용하는 옵션은 다음과 같습니다.

  • –add-drop-database: 복구 시 기존 데이터베이스를 삭제하고 새로 생성합니다.
  • –add-drop-table: 복구 시 기존 테이블을 삭제하고 새로 생성합니다.
  • –routines: 저장 프로시저(Stored Procedure) 함수를 백업합니다.
  • –events: 이벤트 스케줄러를 백업합니다.

더 자세한 옵션은 MySQL 매뉴얼을 참고하면 됩니다.

MySQL 복구

백업한 파일을 사용해 데이터베이스를 복구하는 방법은 다음과 같습니다.

단일 데이터베이스 복구

아래 명령어로 단일 데이터베이스 백업 파일을 복구합니다.

mysql -u [사용자명] -p [데이터베이스명] < [백업파일명].sql

# 예시
mysql -u root -p my_database < my_database_backup.sql

전체 데이터베이스 복구

전체 데이터베이스 백업을 복구하려면 아래와 같이 사용합니다.

mysql -u [사용자명] -p < [백업파일명].sql

# 예시
mysql -u root -p < all_databases_backup.sql

백업 스크립트

아래는 정기적으로 MySQL 백업을 수행하는 간단한 Bash 스크립트입니다. 해당 파일을 cron에 등록하여 정기적으로 백업하는 것을 추천합니다.

#!/bin/bash
# MySQL 백업 스크립트

# 설정
USER="root"
PASSWORD="your_password"
DATABASE="my_database"
BACKUP_DIR="/path/to/backup"
DATE=$(date +"%Y%m%d_%H%M%S")
BACKUP_FILE="$BACKUP_DIR/${DATABASE}_backup_$DATE.sql"

# 백업 실행
mysqldump -u $USER -p$PASSWORD $DATABASE > $BACKUP_FILE

# 결과 확인
if [ $? -eq 0 ]; then
  echo "백업 성공: $BACKUP_FILE"
else
  echo "백업 실패"
fi

마치며

mysqldump는 MySQL 데이터베이스의 보호를 위한 강력한 도구입니다. 반드시 주기적으로 백업하고, 복구 테스트를 통해 백업된 파일의 유효성을 검증하는 것을 추천합니다.

]]>
https://studioys.me/how-to-backup-and-restore-mysql-using-mysqldump/feed/ 0