Windows용 MySQL 데이터베이스 백업 및 복원

페이지 생성 날짜 :

동작 확인 환경

MySQL
  • MySQL 8.0 커뮤니티 에디션
윈도우
  • 윈도우 11

필요한 환경

MySQL
  • MySQL 8.0
윈도우
  • 윈도우 11
  • 윈도우 10
윈도우 서버
  • 윈도우 서버 2022
  • 윈도우 서버 2019
  • 윈도우 서버 2016
  • 윈도우 서버 2012 R2

전제 조건

  • MySQL 데이터베이스를 설치해야 합니다.
  • 백업할 데이터베이스가 이미 존재합니다.
  • 환경 변수를 구성하고 명령 프롬프트에서 MySQL을 실행할 수 있도록 허용합니다.

백업 유형 정보

여기서는 자세히 설명하지 않겠지만 MySQL에는 다음과 같은 유형의 백업이 있습니다.

백업 명령 백업 데이터 형식 설명
mysql덤프 논리적 백업 이전 백업 방법입니다. GUI에서도 이
mysql펌프 논리적 백업 mysqldump의 개선된 버전
MySQL Shell 인스턴스 덤프 유틸리티 및 덤프 로딩 유틸리티 논리적 백업 논리적 백업으로는 현재 최신 백업입니다
Percona XtraBackup 물리적 백업 물리적 백업을 허용하는 타사 제품
클론 플러그인 물리적 백업 MySQL 공식 물리적 백업. 그러나 추가 플러그인이 필요합니다

GUI를 사용하여 데이터베이스 백업(MySQL Workbench)

명령을 사용하지 않고 GUI에서 안전하게 작동하려면 MySQL Workbench에서 백업을 수행할 수 있습니다. MySQL Workbench에서 수행되는 백업 유형은 "mysqldump"입니다.

MySQL Workbench를 시작합니다.

백업할 데이터베이스와의 연결을 선택합니다.

백업할 데이터베이스를 사용하여 왼쪽의 네비게이터에서 관리 탭을 선택하고 데이터 내보내기를 선택합니다.

데이터 내보내기 화면이 열립니다. 화면이 상당히 크기 때문에 오른쪽 하단에 "내보내기 시작" 버튼이 나타날 때까지 창을 확장하십시오.

먼저 백업할 데이터베이스를 선택합니다. 둘 이상을 선택할 수도 있습니다.

"내보낼 개체"에서는 절차, 트리거 등을 백업할지 여부도 선택할 수 있습니다. 이 항목은 선택 사항입니다.

"내보내기 옵션"에서 다음 두 가지 옵션 중에서 선택할 수 있습니다.

설명
유형
덤프 프로젝트 폴더로 내보내기 지정된 폴더에 테이블 또는 프로시저별 파일로 출력됩니다.
독립 파일로 내보내기 모든 것을 단일 파일에 삽입하고 출력합니다.

어느 것을 출력하는지는 중요하지 않습니다. 위를 선택하면 특정 테이블만 복원하고 싶은 경우 쉽게 제거할 수 있기 때문에 쉽습니다. 다음 선택 항목은 단일 파일로 출력되므로 파일을 데이터베이스 단위로 더 쉽게 이동하고 관리할 수 있습니다. 이번에는 다음을 선택했습니다.

구성이 완료되면 오른쪽 하단의 내보내기 시작 버튼을 클릭하여 내보내기를 시작합니다.

내보내기가 시작되고 완료됩니다.

단일 파일로 출력하면 다음과 같습니다.

폴더로 내보내면 다음과 같이 표시됩니다.

GUI를 사용하여 데이터베이스 복원(MySQL Workbench)

MySQL Workbench를 열고 연결을 선택한 다음 왼쪽의 Navigator에서 Administration 탭을 선택한 다음 Data Import/Restore를 선택합니다. "가져오기/복원"이라고 표시되어 있으므로 내보낸 파일에서 새 데이터베이스를 만들거나 원본 데이터베이스를 덮어쓸 수 있습니다.

오른쪽 하단 모서리에 "가져오기 시작" 버튼이 보일 때까지 창을 확장합니다.

내보낸 파일 형식에 따라 "가져오기 옵션"을 선택하십시오. 이번에는 단일 파일로 내보내고 있었기 때문에 아래의 "Self-Contained File에서 가져오기"를 선택하고 내보낸 파일을 지정했습니다.

복원할 스키마(데이터베이스)를 선택합니다. 기존 데이터베이스로 복원하거나 오른쪽의 "새로 만들기" 버튼에서 새 데이터베이스로 복원할 수 있습니다.

지정 후 오른쪽 하단 모서리에 있는 "가져오기 시작" 버튼을 클릭하여 복구를 시작합니다.

복원이 완료되면 데이터가 돌아왔는지 확인합니다.

다음을 통해 데이터베이스 백업용 계정 만들기

1회 백업하는 명령을 실행하려는 경우에는 문제가 없습니다만, 예를 들어 미리 명령어를 파일로 준비하여 실행하는 경우에는 비밀번호를 일반 텍스트로 작성해야 하므로 백업을 실행하기 위해 별도의 계정을 만드는 것이 안전합니다.

백업에 필요한 권한은 다음과 같으나, 필요한 정보에 따라 증가하거나 감소할 수 있습니다.

  • 이벤트
  • 테이블 잠금
  • 고르다
  • 보기

명령으로 만들면 다음과 같습니다. MySQL 명령줄 도구를 사용하여 실행합니다.

create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;

본보기

create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;

백업 대상에 대한 폴더 권한

백업 파일이 저장된 폴더에 대한 권한은 명령 실행 권한과 동일한 권한으로 설정해야 합니다. 관리자 권한으로 명령을 실행하려면 폴더에 대한 추가 권한을 설정할 필요가 없습니다.

명령(mysqldump)을 사용하여 데이터베이스 백업

몇 가지 명령 백업이 있지만 이번에는 오래되고 안정적인 "mysqldump"로 백업합니다.

시작 메뉴를 마우스 오른쪽 버튼으로 클릭하고 터미널(명령 프롬프트)을 시작합니다. "MySQL 8.0 명령줄 클라이언트"가 아닙니다.

다음 명령을 사용하여 백업할 수 있습니다.

mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"

본보기

mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"

  • --default-character-set=utf8 GUI에서 백업할 때와 동일한 문자 코드가 됩니다. 이를 통해 GUI로도 가져올 수 있습니다.
  • 암호 필드 -p 와 암호 사이에 공백을 두지 마십시오.
  • 테이블스페이스 정보 --no-tablespaces 도 출력하려면 의 선택을 취소하십시오. 이 경우 실행 사용자의 권한이 PROCESS 필요합니다.

지정된 위치에 백업 파일이 생성됩니다.

명령(mysqldump)을 사용하여 데이터베이스 복원

mysqldump로 백업된 파일은 SQL로 실행할 수 있는 형식이므로 대상 SQL만 실행하면 됩니다. 복원은 수동으로 하는 경우가 많기 때문에 루트 계정에서 실행해도 괜찮다고 생각합니다.

명령에서 실행하려면 PowerShell 대신 명령 프롬프트에서 실행합니다. < PowerShell은 기호를 허용하지 않기 때문입니다.

다음 명령을 실행합니다.

mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>

본보기

mysql -u root -ppassword test_database < C:\Temporary\Backup.sql

자동 데이터베이스 백업

Windows의 경우 작업 스케줄러를 사용하는 것이 일반적입니다. 배치 파일을 만들어 시작합니다. bat 파일을 만들고 명령으로 백업한 내용을 입력하고 저장합니다. Shift-JIS로 문자 코드를 저장합니다. 배치 파일의 위치와 파일 이름은 임의로 지정할 수 있습니다.

작업 스케줄러에 등록합니다. 시작 메뉴를 마우스 오른쪽 버튼으로 클릭하고 "컴퓨터 관리"를 선택합니다.

왼쪽 메뉴에서 컴퓨터 관리 > 시스템 도구 > 작업 스케줄러 > 작업 스케줄러 라이브러리를 선택합니다. 오른쪽 메뉴에서 작업 만들기를 선택합니다.

일반 탭을 설정합니다. 작업 목록에 "이름"이 표시되므로 알기 쉬운 이름을 넣으십시오. 보안 옵션에서 "사용자가 로그온했는지 여부에 관계없이 실행"을 선택합니다.

트리거 탭은 백업을 수행해야 하는 시기를 설정합니다. 이 설정은 작업에 따라 설정해야 합니다.

작업 탭에서 방금 생성한 배치 파일을 시작하도록 설정합니다.

각각을 설정했으면 확인 버튼을 눌러 확인합니다.

지정된 계정에서 실행하도록 등록할 암호를 입력합니다.

이제 백업이 지정된 시간에 실행되는지 확인하십시오.