

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# mysqldump 및 mysqlpump
<a name="mysqldump-and-mysqlpump"></a>

[mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) 및 [mysqlpump](https://dev.mysql.com/doc/refman/8.0/en/mysqlpump.html)는 MySQL용 네이티브 데이터베이스 백업 도구입니다. MariaDB는 mysqldump를 지원하지만 mysqlpump는 지원하지 않습니다. 이러한 두 도구 모두 논리적 백업을 생성하며 MySQL 클라이언트 프로그램의 일부입니다. mysqldump는 단일 스레드 처리를 지원합니다. mysqlpump는 데이터베이스 및 데이터베이스 내 객체의 병렬화를 지원하여 덤프 프로세스의 속도를 높입니다. MySQL 버전 5.7.8에 도입되었습니다. MySQL 버전 8.4에서는 mysqlpump가 제거되었습니다.

다음 다이어그램에서는 mysqldump 또는 mysqlpump 백업 파일을 사용하여 데이터베이스를 마이그레이션하는 데 수반되는 상위 수준 단계를 보여줍니다.



![\[mysqldump 또는 mysqlpump 백업 파일을 마이그레이션하고 AWS DB 인스턴스에서 복원하는 다이어그램입니다.\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/migration-large-mysql-mariadb-databases/images/mysqldump-mysqlpump-migration-aws.png)


다음은 mysqldump 또는 mysqlpump를 사용하여 데이터베이스를 AWS 클라우드로 마이그레이션하는 단계입니다.

1. 온프레미스 서버에 MySQL Shell을 설치하세요. 관련 지침은 MySQL 설명서의 [Installing MySQL Shell](https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install-linux-quick.html)을 참조하세요. 그러면 mysqldump와 mysqlpump가 모두 설치됩니다.

1. mysqldump 또는 mysqlpump를 사용하여 소스 온프레미스 데이터베이스의 백업을 생성하세요. 관련 지침은 MySQL 설명서의 [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) 및 [mysqlpump](https://dev.mysql.com/doc/refman/8.0/en/mysqlpump.html)를 참조하거나 MariaDB 설명서의 [Making Backups with mysqldump](https://mariadb.com/kb/en/making-backups-with-mysqldump/)를 참조하세요. MySQL 프로그램 간접 호출 및 옵션 지정에 대한 자세한 내용은[Using MySQL programs](https://dev.mysql.com/doc/refman/8.0/en/programs-using.html)를 참조하세요.

1. 다음 방법 중 하나를 사용하여 백업 파일을의 EC2 인스턴스 AWS 클라우드 로 이동합니다.

   **접근 방식** **3A** - [Amazon FSx](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-file-shares.html) 또는 [Amazon Elastic File System(Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html) 파일 시스템을 데이터베이스 인스턴스를 실행하는 온프레미스 서버에 탑재합니다. AWS Direct Connect 또는 Site-to-Site VPN 를 사용하여 연결을 설정할 수 있습니다. 데이터베이스를 탑재된 파일 공유에 직접 백업하거나 데이터베이스를 로컬 파일 시스템에 백업한 다음 탑재된 FSx 또는 EFS 볼륨에 업로드하여 두 단계로 백업을 수행할 수 있습니다. 그런 다음 온프레미스 서버에도 탑재된 Amazon FSx 또는 Amazon EFS 파일 시스템을 EC2 인스턴스에 탑재하세요.

   **접근 방식 3B** - AWS CLI, AWS SDK 또는 Amazon S3 REST API를 사용하여 백업 파일을 온프레미스 서버에서 S3 버킷으로 직접 이동합니다. 대상 S3 버킷이 데이터 센터와 멀리 떨어진에 AWS 리전 있는 경우 [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html)을 사용하여 파일을 더 빠르게 전송할 수 있습니다. [s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse) 파일 시스템을 사용하여 EC2 인스턴스에 S3 버킷을 탑재하세요.

   **접근 방식 3C** - 온프레미스 데이터 센터에 AWS DataSync 에이전트를 설치한 다음 [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)를 사용하여 백업 파일을 Amazon S3 버킷으로 이동합니다. [s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse) 파일 시스템을 사용하여 EC2 인스턴스에 S3 버킷을 탑재하세요.
**참고**  
Amazon S3 File Gateway를 사용하여 대용량 데이터베이스 백업 파일을 AWS 클라우드의 S3 버킷으로 전송할 수도 있습니다. 자세한 내용은 이 안내서의 [Amazon S3 File Gateway를 사용하여 백업 파일 전송](amazon-s3-file-gateway.md) 섹션을 참조하세요.

1. 네이티브 복원 방법을 사용하여 대상 데이터베이스에서 백업을 복원하세요. 관련 지침은 MySQL 설명서의 [Reloading SQL-Format Backups](https://dev.mysql.com/doc/refman/8.0/en/reloading-sql-format-dumps.html)를 참조하거나 MariaDB 설명서의 [Restoring Data from Dump Files](https://mariadb.com/kb/en/restoring-data-from-dump-files/)를 참조하세요.

1. (선택 사항) 소스 데이터베이스와 대상 데이터베이스 인스턴스 간 복제를 설정할 수 있습니다. 바이너리 로그(binlog) 복제를 사용하여 가동 중지 시간을 줄일 수 있습니다. 자세한 내용은 다음을 참조하세요.
   + [Setting the replication source configuration](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html)(MySQL 설명서)
   + Amazon Aurora의 경우 다음을 참조하세요.
     + [복제를 사용하여 Amazon Aurora MySQL DB 클러스터를 MySQL 데이터베이스와 동기화](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.RepSync)(Aurora 설명서)
     + [Amazon Aurora에서 binlog 복제 사용](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html)(Aurora 설명서)
   + Amazon RDS의 경우 다음을 참조하세요.
     + [MySQL 복제 작업](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MySQL.Replication.html)(Amazon RDS 설명서)
     + [MariaDB 복제 작업](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MariaDB.Replication.html)(Amazon RDS 설명서)
   + Amazon EC2의 경우 다음을 참조하세요.
     + [Setting Up Binary Log File Position Based Replication](https://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-howto.html)(MySQL 설명서)
     + [Setting Up Replicas](https://dev.mysql.com/doc/refman/8.0/en/replication-setup-replicas.html)(MySQL 설명서)
     + [Setting Up Replication](https://mariadb.com/kb/en/setting-up-replication/)(MariaDB 설명서)

## 장점
<a name="advantages-mysqlpump-mysqldump"></a>
+ mysqldump 및 mysqlpump는 MySQL Server 설치에 포함됨
+ 이러한 도구에서 생성된 백업 파일은 더 읽기 쉬운 형식입니다.
+ 백업 파일을 복원하기 전에 표준 텍스트 편집기를 사용하여 결과 .sql 파일을 수정할 수 있습니다.
+ 특정 테이블, 데이터베이스 또는 특정 데이터 선택 항목을 백업할 수 있습니다.
+ mysqldump 및 mysqlpump는 시스템 아키텍처에 독립적입니다.

## 제한 사항
<a name="limitations-mysqlpump-mysqldump"></a>
+ mysqldump는 단일 스레드 백업 프로세스입니다. 백업을 수행하는 성능은 작은 데이터베이스에서 적당하지만 백업 크기가 10GB보다 크면 비효율적일 수 있습니다.
+ 논리적 형식의 백업 파일은 특히 텍스트로 저장될 때 볼륨이 크며, 종종 생성 및 복원 속도가 느립니다.
+ 대상 DB 인스턴스에서 SQL 문을 다시 적용하려면 삽입, 인덱스 생성 및 참조 무결성 제약 조건 적용을 위해 집약적 디스크 I/O 및 CPU 처리가 필요하기 때문에 데이터 복원 속도가 느려질 수 있습니다.
+ mysqlpump 유틸리티는 MySQL 버전 5.7.8 이하 또는 버전 8.4 이상에서 지원되지 않습니다.
+ 기본적으로 mysqlpump는 `performance_schema` 또는 `sys`와 같은 시스템 데이터베이스를 백업하지 않습니다. 시스템 데이터베이스의 일부를 백업하려면 명령줄에 명시적으로 이름을 지정합니다.
+ mysqldump는 InnoDB `CREATE TABLESPACE` 문을 백업하지 않습니다.

**참고**  
CREATE TABLESPACE 문 및 시스템 데이터베이스 백업은 MySQL 또는 MariaDB 데이터베이스 백업을 EC2 인스턴스로 복원하는 경우에만 유용합니다. 이러한 백업은 Amazon RDS 또는 Aurora에서 사용되지 않습니다.

## 모범 사례
<a name="best-practices-mysqlpump-mysqldump"></a>
+ 데이터베이스 백업을 복원하는 경우 대상 데이터베이스의 세션 수준에서 `FOREIGN_KEY_CHECKS`와 같은 키 검사를 비활성화합니다. 그러면 복원 속도가 빨라집니다.
+ 데이터베이스 사용자에게 백업을 생성하고 복원할 수 있는 충분한 [권한](https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html)이 있는지 확인합니다.