MySQL 데이터베이스 백업 및 복원(Windows 버전)

페이지 업데이트 :
페이지 생성 날짜 :

운영 환경

MySQL을 사용합니다.
  • MySQL 8.0 커뮤니티 에디션
윈도우
  • 윈도우 11

필수 구성 요소

MySQL을 사용합니다.
  • MySQL의 8.0
윈도우
  • 윈도우 11
  • 윈도우 10
윈도우 서버
  • 윈도우 서버 2022
  • 윈도우 서버 2019
  • 윈도우 서버 2016
  • 윈도우 서버 2012 R2

전제 조건

  • MySQL용 데이터베이스가 설치되어 있습니다.
  • 백업할 데이터베이스가 이미 있습니다.
  • 명령 프롬프트에서 mysql을 실행할 수 있도록 환경 변수를 설정했습니다.

백업 유형에는 어떤 것이 있습니까?

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

백업
명령백업 데이터 형식설명
mysqldump (영문) 논리적 백업 오래된 백업 방법입니다. GUI는 또한 이것을 사용합니다
mysql펌프 논리적 백업 mysqldump의 향상된 버전
MySQL 셸 인스턴스 덤프 유틸리티 및 덤프 로딩 유틸리티 논리적 백업 현재 가장 최근의 논리적 백업
퍼코나 엑스트라백업 물리적 백업 물리적 백업에 대한 타사 지원
클론 플러그인 물리적 백업 MySQL 공식 물리적 백업. 그러나 플러그인을 추가해야 합니다.

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

명령어를 사용하지 않고 GUI에서 안전하게 동작하고 싶다면 MySQL Workbench로 백업하면 됩니다. MySQL Workbench에서 수행하는 백업 유형은 "mysqldump"입니다.

MySQL Workbench를 시작합니다.

백업할 데이터베이스가 포함된 연결을 선택합니다.

백업할 데이터베이스를 사용하여 왼쪽의 탐색기에서 관리 탭을 선택한 다음 데이터 내보내기를 선택합니다.

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

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

"Objects to Export(내보낼 개체)"에서 프로시저와 트리거도 백업하도록 선택할 수 있습니다. 이 필드는 선택 사항입니다.

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

유형 설명
덤프 프로젝트 폴더로 내보내기 지정된 폴더에 테이블 또는 프로시저 파일로 출력합니다.
자체 포함 파일로 내보내기 모든 것을 단일 파일 및 출력에 포함합니다.

어떤 방식으로 출력하든 상관 없습니다. 위의 선택 항목은 특정 테이블만 복원하려는 경우 쉽게 제거할 수 있습니다. 아래 선택 항목은 단일 파일로 출력되므로 파일을 데이터베이스 단위로 쉽게 이동하고 관리할 수 있습니다. 이 경우 다음을 선택했습니다.

설정을 한 후 오른쪽 하단의 "내보내기 시작" 버튼을 클릭하여 내보내기를 시작합니다.

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

단일 파일로 출력하면 다음과 같이 표시됩니다.

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

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

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

오른쪽 하단에 "가져오기 시작" 버튼이 표시될 때까지 창을 확장합니다.

내보낸 파일 형식에 따라 "가져오기 옵션"을 선택합니다. 이번에는 단일 파일로 내보냈기 때문에 아래의 "자급 파일에서 가져 오기"를 선택하고 내 보낸 파일을 지정했습니다.

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

사양을 지정한 후 오른쪽 하단의 "가져오기 시작" 버튼을 클릭하여 복원을 시작합니다.

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

명령으로 데이터베이스 백업을 위한 계정 만들기

하나의 명령어를 실행해 백업하면 문제 없지만, 예를 들어 사전에 명령어를 파일로 준비해 실행하면 비밀번호를 평문으로 써야 하기 때문에 백업 실행을 위해 별도의 계정을 만드는 것이 무난하다.

백업에 필요한 일부 권한은 필요한 정보에 따라 증가하거나 감소할 수 있습니다.

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

명령어로 만들면 다음과 같은 느낌이 됩니다. 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에서 백업할 때와 동일합니다. 이렇게 하면 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로 저장됩니다. 배치 파일의 위치와 파일 이름은 임의적입니다.

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

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

일반 탭을 구성합니다. 작업 목록에 "이름"이 표시되므로 알기 쉬운 이름을 입력합니다. 보안 옵션에서 "사용자의 로그온 여부에 관계없이 실행"을 선택합니다.

"트리거" 탭에서 백업을 수행할 시기를 설정할 수 있습니다. 작업에 따라 이 설정을 지정합니다.

"작업" 탭에서 방금 만든 배치 파일을 시작하도록 설정합니다.

각각을 설정한 후 OK 버튼으로 확인합니다.

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

그런 다음 지정된 시간에 백업이 실행되는지 확인하십시오.