복제를 사용하여 MySQL DB 인스턴스에서 데이터 내보내기 - Amazon Relational Database Service

복제를 사용하여 MySQL DB 인스턴스에서 데이터 내보내기

RDS for MySQL DB 인스턴스에서 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스로 데이터를 내보내려면 복제 기능을 사용하면 됩니다. 이 시나리오에서 MySQL DB 인스턴스는 소스 MySQL DB 인스턴스이고, Amazon RDS 외부에서 실행 중인 MySQL 인스턴스는 외부 MySQL 데이터베이스입니다.

외부 MySQL 데이터베이스는 데이터 센터의 온프레미스 또는 Amazon EC2 인스턴스에서 실행할 수 있습니다. 외부 MySQL 데이터베이스는 원본 MySQL DB 인스턴스와 동일한 버전 또는 해당 버전 이상을 실행해야 합니다.

외부 MySQL 데이터베이스에 대한 복제는 원본 MySQL DB 인스턴스에서 데이터베이스를 내보내는 데 걸리는 시간 중에만 지원됩니다. 데이터 내보내기가 완료되어 애플리케이션이 외부 MySQL 인스턴스에 대한 액세스를 시작할 수 있을 때 복제가 종료되어야 합니다.

아래 목록에 수행할 단계가 나와 있습니다. 각 단계에 대해서는 이후 섹션에서 자세히 설명합니다.

  1. 외부 MySQL DB 인스턴스를 준비합니다.

  2. 복제할 원본 MySQL DB 인스턴스를 준비합니다.

  3. mysqldump 유틸리티를 사용하여 원본 MySQL DB 인스턴스에서 외부 MySQL 데이터베이스로 데이터베이스를 전송합니다.

  4. 외부 MySQL 데이터베이스에 대한 복제를 시작합니다.

  5. 내보내기가 완료된 후 복제를 중지합니다.

외부 MySQL 데이터베이스 준비

외부 MySQL 데이터베이스를 준비하려면 다음 단계를 수행하세요.

외부 MySQL 데이터베이스를 준비하려면
  1. 외부 MySQL 데이터베이스를 설치합니다.

  2. 마스터 사용자로 외부 MySQL 데이터베이스에 연결합니다. 그런 다음, 데이터베이스에 액세스하는 서비스, 애플리케이션 및 관리자를 지원하는 데 필요한 사용자를 생성합니다.

  3. MySQL 설명서의 지침에 따라 외부 MySQL 데이터베이스를 복제본으로 준비합니다. 자세한 내용은 MySQL 설명서를 참조하세요.

  4. 내보내기 중에 외부 MySQL 데이터베이스가 읽기 전용 복제본으로 작동하도록 송신 규칙을 구성합니다. 송신 규칙을 사용하면 복제 중에 외부 MySQL 데이터베이스를 원본 MySQL DB 인스턴스에 연결할 수 있습니다. 원본 MySQL DB 인스턴스의 포트와 IP 주소에 대한 Transmission Control Protocol(TCP) 연결을 허용하는 송신 규칙을 지정합니다.

    환경에 적합한 송신 규칙을 지정합니다.

    • 외부 MySQL 데이터베이스가 Amazon VPC 서비스를 기반으로 하는 Virtual Private Cloud(VPC)의 Amazon EC2 인스턴스에서 실행 중인 경우 VPC 보안 그룹에서 송신 규칙을 지정합니다. 자세한 내용은 보안 그룹을 통한 액세스 제어 섹션을 참조하세요.

    • 외부 MySQL 데이터베이스가 온프레미스에 설치되어 있는 경우 방화벽에서 송신 규칙을 지정합니다.

  5. 외부 MySQL 데이터베이스가 VPC에서 실행 중인 경우, 보안 그룹 송신 규칙 외에 VPC ACL(액세스 제어 목록) 규칙에 대한 규칙을 구성합니다.

    • 원본 MySQL DB 인스턴스의 IP 주소에서 포트 1024–65535로의 TCP 트래픽을 허용하는 ACL 송신 규칙을 구성합니다.

    • 원본 MySQL DB 인스턴스의 포트와 IP 주소로의 아웃바운드 TCP 트래픽을 허용하는 ACL 송신 규칙을 구성합니다.

    Amazon VPC 네트워크 ACL에 대한 자세한 내용은 Amazon VPC 사용 설명서네트워크 ACL을 참조하세요.

  6. (선택 사항) 복제 오류를 방지하려면 max_allowed_packet 파라미터를 최대 크기로 설정하세요. 이 설정을 사용하는 것이 좋습니다.

원본 MySQL DB 인스턴스 준비

원본 MySQL DB 인스턴스를 복제 소스로 준비하려면 다음 단계를 수행하세요.

원본 MySQL DB 인스턴스를 준비하려면
  1. 클라이언트 컴퓨터에서 복제를 설정하는 동안 이진 로그를 저장하기에 충분한 디스크 공간을 사용할 수 있는지 확인합니다.

  2. 원본 MySQL DB 인스턴스에 연결하고 MySQL 설명서의 복제를 위한 사용자 생성에 나와 있는 지침에 따라 복제 계정을 생성합니다.

  3. 원본 MySQL DB 인스턴스를 실행 중인 시스템에서 복제 중에 외부 MySQL 데이터베이스의 연결을 허용하도록 송신 규칙을 구성합니다. 외부 MySQL 데이터베이스의 IP 주소에서 MySQL DB 인스턴스가 사용하는 포트에 대한 TCP 연결을 허용하는 수신 규칙을 지정합니다.

  4. 송신 규칙을 지정합니다.

    • VPC에서 원본 MySQL DB 인스턴스가 실행 중인 경우 VPC 보안 그룹에서 수신 규칙을 지정합니다. 자세한 내용은 보안 그룹을 통한 액세스 제어 섹션을 참조하세요.

  5. MySQL DB 인스턴스가 VPC에서 실행 중인 경우 보안 그룹 수신 규칙 이외에 VPC ACL 규칙을 구성합니다.

    • 외부 MySQL 데이터베이스의 IP 주소에서 Amazon RDS 인스턴스가 사용하는 포트에 대한 TCP 연결을 허용하도록 ACL 수신 규칙을 구성합니다.

    • 포트 1024–65535에서 외부 MySQL 데이터베이스의 IP 주소로 TCP 연결을 허용하도록 ACL 송신 규칙을 구성합니다.

    Amazon VPC 네트워크 ACL에 대한 자세한 내용은 Amazon VPC 사용 설명서네트워크 ACL을 참조하세요.

  6. 내보내기 중에 아무런 이진 로그도 제거되지 않을 만큼 백업 보존 기간이 충분히 길게 설정되어 있는지 확인합니다. 내보내기가 완료되기 전에 제거되는 로그가 있으면, 복제를 처음부터 다시 시작해야 합니다. 백업 보존 기간 설정에 대한 자세한 정보는 백업 소개 단원을 참조하십시오.

  7. mysql.rds_set_configuration 저장 프로시저를 사용하여 내보내기 중에 이진 로그가 제거되지 않을 만큼 충분히 길게 이진 로그 보존 기간을 설정합니다. 자세한 내용은 MySQL 이진 로그 액세스 섹션을 참조하세요.

  8. 원본 MySQL DB 인스턴스의 이진 로그가 제거되지 않도록 더욱 확실히 하려면 원본 MySQL DB 인스턴스에서 Amazon RDS 읽기 전용 복제본을 생성합니다. 자세한 내용은 읽기 전용 복제본 생성 섹션을 참조하세요.

  9. Amazon RDS 읽기 전용 복제본이 생성된 후 mysql.rds_stop_replication 저장 프로시저를 호출하여 복제 프로세스를 중지합니다. 원본 MySQL DB 인스턴스가 더 이상 이진 로그 파일을 제거하지 않을 것이므로, 복제 프로세스에 해당 파일을 사용할 수 있습니다.

  10. (선택 사항) 복제 오류를 방지하려면 max_allowed_packet 파라미터와 slave_max_allowed_packet 파라미터 모두 최대 크기로 설정하세요. 두 파라미터의 최대 크기는 모두 1GB입니다. 두 파라미터 모두에 대해 이 설정을 사용하는 것이 좋습니다. 파라미터 설정에 대한 자세한 내용은 DB 파라미터 그룹의 파라미터 수정을 참조하세요.

데이터베이스 복사

데이터베이스를 복사하려면 다음 단계를 수행하세요.

데이터베이스를 복사하려면
  1. 소스 MySQL DB 인스턴스의 RDS 읽기 전용 복제본에 연결하고 MySQL SHOW REPLICA STATUS\G 문을 실행합니다. 다음에 대한 값을 확인합니다.

    • Master_Host

    • Master_Port

    • Master_Log_File

    • Exec_Master_Log_Pos

    참고

    이전 버전의 MySQL에는 SHOW SLAVE STATUS 대신 SHOW REPLICA STATUS가 사용되었습니다. 8.0.23 이전 MySQL 버전을 사용하는 경우 SHOW SLAVE STATUS를 사용합니다.

  2. mysqldump 유틸리티를 사용하여 Amazon RDS에서 로컬 클라이언트 컴퓨터로 데이터를 복사하는 스냅샷을 생성합니다. 클라이언트 컴퓨터에 복제할 데이터베이스의 mysqldump 파일을 보관하기에 충분한 공간이 있는지 확인합니다. 매우 큰 데이터베이스의 경우 이 프로세스는 여러 시간이 걸릴 수 있습니다. MySQL 설명서의 mysqldump를 사용하여 데이터 스냅샷 생성에 나와 있는 지침을 따르세요.

    다음 예에서는 클라이언트에서 mysqldump를 실행하고 덤프를 파일에 씁니다.

    Linux, macOS 또는 Unix 대상:

    mysqldump -h source_MySQL_DB_instance_endpoint \ -u user \ -ppassword \ --port=3306 \ --single-transaction \ --routines \ --triggers \ --databases database database2 > path/rds-dump.sql

    Windows의 경우:

    mysqldump -h source_MySQL_DB_instance_endpoint ^ -u user ^ -ppassword ^ --port=3306 ^ --single-transaction ^ --routines ^ --triggers ^ --databases database database2 > path\rds-dump.sql

    외부 MySQL 데이터베이스에 백업 파일을 로드할 수 있습니다. 자세한 내용은 MySQL 설명서의 SQL 형식 백업 다시 로드를 참조하세요. 다른 유틸리티를 실행하여 외부 MySQL 데이터베이스로 데이터를 로드할 수 있습니다.

내보내기 완료

내보내기를 완료하려면 다음 단계를 수행하세요.

내보내기를 완료하려면
  1. MySQL CHANGE MASTER 문을 사용하여 외부 MySQL 데이터베이스를 구성합니다. 사용자가 부여한 REPLICATION SLAVE 권한의 ID와 암호를 지정합니다. RDS 읽기 전용 복제본에서 실행한 MySQL SHOW REPLICA STATUS\G 문에서 얻은 Master_Host, Master_Port, Relay_Master_Log_FileExec_Master_Log_Pos 값을 지정합니다. 자세한 내용은 MySQL 설명서를 참조하세요.

    참고

    이전 버전의 MySQL에는 SHOW SLAVE STATUS 대신 SHOW REPLICA STATUS가 사용되었습니다. 8.0.23 이전 MySQL 버전을 사용하는 경우 SHOW SLAVE STATUS를 사용합니다.

  2. MySQL START REPLICA 명령을 사용하여 소스 MySQL DB 인스턴스에서 외부 MySQL 데이터베이스로 복제를 시작합니다.

    이렇게 하면 원본 MySQL DB 인스턴스에서 복제가 시작되고 Amazon RDS 읽기 전용 복제본에서 복제를 중지한 후 발생한 모든 원본 변경 사항이 내보내집니다.

    참고

    이전 버전의 MySQL에는 START SLAVE 대신 START REPLICA가 사용되었습니다. 8.0.23 이전 MySQL 버전을 사용하는 경우 START SLAVE를 사용합니다.

  3. 외부 MySQL 데이터베이스에서 MySQL SHOW REPLICA STATUS\G 명령을 실행하여 이 데이터베이스가 읽기 전용 복제본으로 작동 중인지 확인합니다. 결과 해석에 대한 자세한 내용은 MySQL 설명서를 참조하십시오.

  4. 외부 MySQL 데이터베이스에서의 복제가 원본 MySQL DB 인스턴스를 따라잡은 후, MySQL STOP REPLICA 명령을 사용하여 원본 MySQL DB 인스턴스에서의 복제를 중지하세요.

    참고

    이전 버전의 MySQL에는 STOP SLAVE 대신 STOP REPLICA가 사용되었습니다. 8.0.23 이전 MySQL 버전을 사용하는 경우 STOP SLAVE를 사용합니다.

  5. Amazon RDS 읽기 전용 복제본에서 mysql.rds_start_replication 저장 프로시저를 호출합니다. 이렇게 하면 Amazon RDS가 원본 MySQL DB 인스턴스에서 이진 로그 파일 제거를 시작할 수 있습니다.