2.6. MySQL 데이터 백업
MySQL 데이터베이스에서 데이터를 백업하는 두 가지 주요 방법이 있습니다.
- 논리 백업
논리적 백업은 데이터를 복원하는 데 필요한 SQL 문으로 구성됩니다. 이 유형의 백업은 일반 텍스트 파일에 정보와 레코드를 내보냅니다.
물리적 백업에 대한 논리적 백업의 주요 장점은 이식성과 유연성입니다. 물리적 백업에서는 데이터를 다른 하드웨어 구성, MySQL 버전 또는 DBMS(데이터베이스 관리 시스템)에서 복원할 수 있습니다.
논리 백업은
mysqld.service
가 실행 중인 경우에만 수행할 수 있습니다. 논리 백업에는 로그 및 구성 파일이 포함되지 않습니다.- 물리적 백업
물리적 백업은 콘텐츠를 저장하는 파일 및 디렉터리의 사본으로 구성됩니다.
물리적 백업은 논리 백업에 비해 다음과 같은 이점이 있습니다.
- 출력이 더 컴팩트합니다.
- 백업 크기가 작아집니다.
- 백업 및 복원 속도가 빨라집니다.
백업에는 로그 및 구성 파일이 포함됩니다.
물리적 백업은
mysqld.service
가 실행 중이 아니거나 백업 중 변경을 방지하기 위해 데이터베이스의 모든 테이블이 잠겼을 때 수행해야 합니다.
다음 MySQL 백업 방법 중 하나를 사용하여 MySQL 데이터베이스의 데이터를 백업할 수 있습니다.
-
mysqldump
를 사용한 논리 백업 - 파일 시스템 백업
- 백업 솔루션으로 복제
2.6.1. mysqldump를 사용하여 논리 백업 수행 링크 복사링크가 클립보드에 복사되었습니다!
mysqldump
클라이언트는 백업 목적으로 데이터베이스 또는 데이터베이스 컬렉션을 덤프하거나 다른 데이터베이스 서버로 전송하는 데 사용할 수 있는 백업 유틸리티입니다. mysqldump
의 출력은 일반적으로 서버 테이블 구조를 다시 생성하거나 데이터 또는 둘 다로 채우는 SQL 문으로 구성됩니다. mysqldump
는 XML 및 구분된 텍스트 형식(예: CSV)을 포함하여 다른 형식으로 파일을 생성할 수도 있습니다.
mysqldump
백업을 수행하려면 다음 옵션 중 하나를 사용할 수 있습니다.
- 하나 이상의 선택된 데이터베이스 백업
- 모든 데이터베이스 백업
- 하나의 데이터베이스에서 테이블 하위 집합 백업
프로세스
단일 데이터베이스를 덤프하려면 다음을 실행합니다.
mysqldump [options] --databases db_name > backup-file.sql
# mysqldump [options] --databases db_name > backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여러 데이터베이스를 한 번에 덤프하려면 다음을 실행합니다.
mysqldump [options] --databases db_name1 [db_name2 ...] > backup-file.sql
# mysqldump [options] --databases db_name1 [db_name2 ...] > backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 모든 데이터베이스를 덤프하려면 다음을 실행합니다.
mysqldump [options] --all-databases > backup-file.sql
# mysqldump [options] --all-databases > backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 덤프된 하나 이상의 전체 데이터베이스를 서버로 다시 로드하려면 다음을 실행합니다.
mysql < backup-file.sql
# mysql < backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터베이스를 원격 MySQL 서버에 로드하려면 다음을 실행합니다.
mysql --host=remote_host < backup-file.sql
# mysql --host=remote_host < backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 하나의 데이터베이스에서 테이블 서브 세트를 덤프하려면
mysqldump
명령 끝에 선택한 테이블 목록을 추가합니다.mysqldump [options] db_name [tbl_name ...] > backup-file.sql
# mysqldump [options] db_name [tbl_name ...] > backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 하나의 데이터베이스에서 덤프된 테이블의 하위 집합을 로드하려면 다음을 실행합니다.
mysql db_name < backup-file.sql
# mysql db_name < backup-file.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고db_name 데이터베이스는 이 시점에 있어야 합니다.
mysqldump
에서 지원하는 옵션 목록을 보려면 다음을 실행합니다.mysqldump --help
$ mysqldump --help
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.2. MySQL 서버에서 파일 시스템 백업 수행 링크 복사링크가 클립보드에 복사되었습니다!
MySQL 데이터 파일의 파일 시스템 백업을 생성하려면 MySQL 데이터 디렉터리의 콘텐츠를 백업 위치에 복사합니다.
현재 구성 또는 로그 파일도 백업하려면 다음 절차의 선택적 단계를 사용합니다.
프로세스
mysqld
서비스를 중지합니다.systemctl stop mysqld.service
# systemctl stop mysqld.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 파일을 필요한 위치에 복사합니다.
cp -r /var/lib/mysql/ /backup-location/data/
# cp -r /var/lib/mysql/ /backup-location/data/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 구성 파일을 필요한 위치에 복사합니다.
cp -r /etc/my.cnf /etc/my.cnf.d/ /backup-location/configuration/
# cp -r /etc/my.cnf /etc/my.cnf.d/ /backup-location/configuration/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 선택 사항: 로그 파일을 필요한 위치로 복사합니다.
cp /var/log/mysql/* /backup-location/logs/
# cp /var/log/mysql/* /backup-location/logs/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mysqld
서비스를 시작합니다.systemctl start mysqld.service
# systemctl start mysqld.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 백업 위치의 백업 데이터를
/var/lib/mysql/
디렉토리로 로드할 때mysql:mysql
이/var/lib/mysql/
:에 있는 모든 데이터의 소유자인지 확인합니다.chown -R mysql:mysql /var/lib/mysql/
# chown -R mysql:mysql /var/lib/mysql/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow