mysqldump 및 mysqlpump
mysqldump
다음 다이어그램에서는 mysqldump 또는 mysqlpump 백업 파일을 사용하여 데이터베이스를 마이그레이션하는 데 수반되는 상위 수준 단계를 보여줍니다.
다음은 mysqldump 또는 mysqlpump를 사용하여 데이터베이스를 AWS 클라우드로 마이그레이션하는 단계입니다.
-
온프레미스 서버에 MySQL Shell을 설치하세요. 관련 지침은 MySQL 설명서의 Installing MySQL Shell
을 참조하세요. 그러면 mysqldump와 mysqlpump가 모두 설치됩니다. -
mysqldump 또는 mysqlpump를 사용하여 소스 온프레미스 데이터베이스의 백업을 생성하세요. 관련 지침은 MySQL 설명서의 mysqldump
및 mysqlpump 를 참조하거나 MariaDB 설명서의 Making Backups with mysqldump 를 참조하세요. MySQL 프로그램 간접 호출 및 옵션 지정에 대한 자세한 내용은Using MySQL programs 를 참조하세요. -
다음 방법 중 하나를 사용하여 백업 파일을 AWS 클라우드의 EC2 인스턴스로 이동하세요.
접근 방식 3A - Amazon FSx 또는 Amazon Elastic File System(Amazon EFS) 파일 시스템을 데이터베이스 인스턴스를 실행하는 온프레미스 서버에 탑재합니다. 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을 사용하여 파일을 더 빠르게 전송할 수 있습니다. s3fs-fuse
파일 시스템을 사용하여 EC2 인스턴스에 S3 버킷을 탑재하세요. 접근 방식 3C - 온프레미스 데이터 센터에 AWS DataSync 에이전트를 설치한 다음 AWS DataSync를 사용하여 백업 파일을 Amazon S3 버킷으로 이동합니다. s3fs-fuse
파일 시스템을 사용하여 EC2 인스턴스에 S3 버킷을 탑재하세요. 참고
Amazon S3 File Gateway를 사용하여 대용량 데이터베이스 백업 파일을 AWS 클라우드의 S3 버킷으로 전송할 수도 있습니다. 자세한 내용은 이 안내서의 Amazon S3 File Gateway를 사용하여 백업 파일 전송 섹션을 참조하세요.
-
네이티브 복원 방법을 사용하여 대상 데이터베이스에서 백업을 복원하세요. 관련 지침은 MySQL 설명서의 Reloading SQL-Format Backups
를 참조하거나 MariaDB 설명서의 Restoring Data from Dump Files 를 참조하세요. -
(선택 사항) 소스 데이터베이스와 대상 데이터베이스 인스턴스 간 복제를 설정할 수 있습니다. 바이너리 로그(binlog) 복제를 사용하여 가동 중지 시간을 줄일 수 있습니다. 자세한 내용은 다음 자료를 참조하세요.
-
Setting the replication source configuration
(MySQL 설명서) -
Amazon Aurora의 경우 다음을 참조하세요.
-
복제를 사용하여 Amazon Aurora MySQL DB 클러스터를 MySQL 데이터베이스와 동기화(Aurora 설명서)
-
Amazon Aurora에서 binlog 복제 사용(Aurora 설명서)
-
-
Amazon RDS의 경우 다음을 참조하세요.
-
MySQL 복제 작업(Amazon RDS 설명서)
-
MariaDB 복제 작업(Amazon RDS 설명서)
-
-
Amazon EC2의 경우 다음을 참조하세요.
-
Setting Up Binary Log File Position Based Replication
(MySQL 설명서) -
Setting Up Replicas
(MySQL 설명서) -
Setting Up Replication
(MariaDB 설명서)
-
-
장점
-
mysqldump 및 mysqlpump는 MySQL Server 설치에 포함됨
-
이러한 도구에서 생성된 백업 파일은 더 읽기 쉬운 형식입니다.
-
백업 파일을 복원하기 전에 표준 텍스트 편집기를 사용하여 결과 .sql 파일을 수정할 수 있습니다.
-
특정 테이블, 데이터베이스 또는 특정 데이터 선택 항목을 백업할 수 있습니다.
-
mysqldump 및 mysqlpump는 시스템 아키텍처에 독립적입니다.
제한 사항
-
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에서 사용되지 않습니다.
모범 사례
-
데이터베이스 백업을 복원하는 경우 대상 데이터베이스의 세션 수준에서
FOREIGN_KEY_CHECKS와 같은 키 검사를 비활성화합니다. 그러면 복원 속도가 빨라집니다. -
데이터베이스 사용자에게 백업을 생성하고 복원할 수 있는 충분한 권한
이 있는지 확인합니다.