SQL

MySQL 데이터베이스 백업 및 복원 가이드

MySQL 데이터베이스 백업 및 복원 가이드
Photo by Sunder Muthukumaran / Unsplash

On this page

데이터베이스 관리자는 시스템 오류나 데이터 손실에 대비해 주기적인 백업을 수행하는 것이 매우 중요합니다. MySQL에서는 mysqldump 명령어를 통해 데이터베이스를 백업하고 복원할 수 있습니다. 이 블로그 포스팅에서는 MySQL 데이터베이스를 백업하고 복원하는 방법을 자세히 설명합니다.

배경 지식

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 전 세계적으로 널리 사용됩니다. 데이터베이스 백업은 데이터 손실을 방지하고, 시스템 복구를 용이하게 하기 위해 필수적인 작업입니다. mysqldump는 MySQL에서 제공하는 데이터베이스 백업 도구로, SQL 형식의 덤프 파일을 생성합니다. 이 덤프 파일을 사용하여 데이터베이스를 복원할 수 있습니다.

데이터베이스 백업

mysqldump 명령어를 사용한 데이터베이스 백업

mysqldump 명령어는 MySQL 데이터베이스를 백업하는 가장 일반적인 방법입니다. 다음은 mysqldump 명령어를 사용하여 데이터베이스를 백업하는 방법입니다.

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

예시

  • 사용자 이름: root
  • 데이터베이스 이름: mydatabase
  • 백업 파일 경로 및 이름: /path/to/backup/mydatabase_backup.sql
mysqldump -u root -p mydatabase > /path/to/backup/mydatabase_backup.sql

이 명령어를 실행하면 비밀번호를 입력하라는 프롬프트가 나타납니다. 비밀번호를 입력하면 데이터베이스가 백업 파일로 저장됩니다.

데이터베이스 복원

mysql 명령어를 사용한 데이터베이스 복원

백업된 SQL 파일을 사용하여 데이터베이스를 복원할 수 있습니다. 다음은 mysql 명령어를 사용하여 데이터베이스를 복원하는 방법입니다.

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

예시

  • 사용자 이름: root
  • 데이터베이스 이름: mydatabase
  • 백업 파일 경로 및 이름: /path/to/backup/mydatabase_backup.sql
mysql -u root -p mydatabase < /path/to/backup/mydatabase_backup.sql

이 명령어를 실행하면 비밀번호를 입력하라는 프롬프트가 나타납니다. 비밀번호를 입력하면 백업 파일에 저장된 데이터가 지정된 데이터베이스로 복원됩니다.

주의사항

  1. 파일 경로 정확성: 백업 파일의 경로가 정확한지 확인합니다. 경로가 잘못되면 파일을 찾을 수 없어 복원에 실패할 수 있습니다.
  2. 접근 권한: 백업 및 복원 작업을 수행하는 사용자에게 적절한 권한이 부여되어 있는지 확인합니다. 백업 작업을 수행하려면 SELECT 권한이 필요하며, 복원 작업을 수행하려면 INSERT 권한이 필요합니다.

데이터베이스 이름 확인: 복원할 데이터베이스가 이미 존재해야 합니다. 데이터베이스가 존재하지 않으면 복원하기 전에 데이터베이스를 생성해야 합니다.

CREATE DATABASE mydatabase;

결론

MySQL 데이터베이스의 백업과 복원은 데이터 손실을 방지하고 시스템 복구를 위해 필수적인 작업입니다. mysqldumpmysql 명령어를 사용하면 손쉽게 백업과 복원을 수행할 수 있습니다. 이 가이드를 참고하여 정기적인 백업을 통해 데이터를 안전하게 보호하세요.


AWS RDS 또는 NHN Toast DB와 같은 클라우드 기반 데이터베이스를 사용할 때는 로컬 데이터베이스와 다소 다른 방법으로 데이터를 가져오고 백업할 수 있습니다. 아래는 이러한 클라우드 DB에서 데이터를 백업하고 가져오는 방법에 대해 설명합니다.

AWS RDS를 사용한 데이터베이스 백업 및 복원

AWS RDS 데이터베이스 백업

AWS RDS에서는 자동 백업과 수동 스냅샷을 사용하여 데이터베이스를 백업할 수 있습니다.

  1. 자동 백업: RDS 인스턴스를 생성할 때 자동 백업을 활성화할 수 있습니다. 자동 백업은 정해진 기간 동안 유지되며, 필요에 따라 복원할 수 있습니다.
  2. 수동 스냅샷: 수동으로 RDS 인스턴스의 스냅샷을 생성하여 백업할 수 있습니다.
    • AWS Management Console에서 RDS 인스턴스로 이동합니다.
    • 백업할 인스턴스를 선택하고 Actions 버튼을 클릭합니다.
    • Take snapshot을 선택하고 스냅샷 이름을 입력한 후 Take snapshot을 클릭합니다.

AWS RDS 데이터베이스 복원

  1. 자동 백업 복원:
    • AWS Management Console에서 RDS 인스턴스로 이동합니다.
    • Snapshots 탭에서 복원할 스냅샷을 선택합니다.
    • Actions 버튼을 클릭하고 Restore snapshot을 선택합니다.
    • 새로운 인스턴스 이름과 설정을 입력한 후 Restore DB instance를 클릭합니다.
  2. 수동 스냅샷 복원:
    • AWS Management Console에서 RDS 인스턴스로 이동합니다.
    • Snapshots 탭에서 복원할 스냅샷을 선택합니다.
    • Actions 버튼을 클릭하고 Restore snapshot을 선택합니다.
    • 새로운 인스턴스 이름과 설정을 입력한 후 Restore DB instance를 클릭합니다.

데이터 내보내기 및 가져오기

AWS RDS에서도 mysqldumpmysql 명령어를 사용할 수 있습니다.

데이터베이스 내보내기

mysqldump -h [RDS 엔드포인트] -u [사용자이름] -p [데이터베이스이름] > [백업파일경로/파일명.sql]

데이터베이스 가져오기

mysql -h [RDS 엔드포인트] -u [사용자이름] -p [데이터베이스이름] < [백업파일경로/파일명.sql]

NHN Toast DB를 사용한 데이터베이스 백업 및 복원

NHN Toast DB에서도 AWS RDS와 유사한 방식으로 데이터베이스를 백업하고 복원할 수 있습니다. NHN Toast DB는 자체 관리 콘솔을 통해 백업과 복원을 관리할 수 있습니다.

NHN Toast DB 데이터베이스 백업

  1. 자동 백업 설정:
    • NHN Toast 콘솔에 로그인합니다.
    • DB 인스턴스로 이동하여 백업 설정을 구성합니다.
    • 자동 백업 주기와 보관 기간을 설정합니다.
  2. 수동 백업:
    • NHN Toast 콘솔에서 DB 인스턴스를 선택합니다.
    • 백업 메뉴로 이동하여 수동 백업을 선택합니다.
    • 백업 이름을 입력하고 백업을 생성합니다.

NHN Toast DB 데이터베이스 복원

  1. 자동 백업 복원:
    • NHN Toast 콘솔에서 DB 인스턴스를 선택합니다.
    • 백업 및 복원 메뉴로 이동하여 복원할 백업을 선택합니다.
    • 복원 버튼을 클릭하고 복원 설정을 입력합니다.
  2. 수동 백업 복원:
    • NHN Toast 콘솔에서 DB 인스턴스를 선택합니다.
    • 백업 및 복원 메뉴로 이동하여 복원할 수동 백업을 선택합니다.
    • 복원 버튼을 클릭하고 복원 설정을 입력합니다.

데이터 내보내기 및 가져오기

NHN Toast DB에서도 mysqldumpmysql 명령어를 사용할 수 있습니다.

데이터베이스 내보내기

mysqldump -h [NHN Toast DB 엔드포인트] -u [사용자이름] -p [데이터베이스이름] > [백업파일경로/파일명.sql]

데이터베이스 가져오기

mysql -h [NHN Toast DB 엔드포인트] -u [사용자이름] -p [데이터베이스이름] < [백업파일경로/파일명.sql]

결론

AWS RDS와 NHN Toast DB 모두 백업 및 복원 기능을 제공하여 데이터베이스의 안정성을 높이고 데이터 손실을 방지할 수 있습니다. mysqldumpmysql 명령어를 사용하면 데이터를 쉽게 내보내고 가져올 수 있습니다. 정기적인 백업을 통해 데이터의 안전성을 확보하고, 필요 시 빠르게 복원할 수 있도록 대비하는 것이 중요합니다.


도커에서 Dump

1. MySQL 데이터 덤프 생성

먼저, 현재 실행 중인 MySQL 컨테이너에서 데이터베이스 덤프를 생성해야 합니다. 도커 exec 명령을 사용하여 컨테이너 내에서 mysqldump를 실행합니다.

docker exec -it [컨테이너_이름] /usr/bin/mysqldump -u [사용자명] -p[비밀번호] [데이터베이스명] > [백업파

2. 덤프 파일을 안전한 위치로 이동

이제 생성된 덤프 파일을 호스트 머신으로 복사합니다.

docker cp [컨테이너_이름]:/path/to/backup.sql /path/on/host

Subscribe to Keun's Story newsletter and stay updated.

Don't miss anything. Get all the latest posts delivered straight to your inbox. It's free!
Great! Check your inbox and click the link to confirm your subscription.
Error! Please enter a valid email address!