메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

MariaDB DB 인스턴스로 데이터 가져오기

MariaDB를 실행하는 Amazon RDS DB 인스턴스로 MariaDB 데이터를 가져오는 방법에 대한 정보를 찾을 수 있습니다.

최초로 MariaDB DB 인스턴스로 데이터를 가져오려면, 다음과 같이 Amazon RDS MySQL DB 인스턴스로 데이터 가져오기에서 설명하는 프로시저를 사용할 수 있습니다.

AWS Database Migration Service(AWS DMS)를 사용하여 데이터를 Amazon RDS DB 인스턴스로 가져올 수도 있습니다. AWS DMS는 가동 중지 없이 데이터베이스를 마이그레이션할 수 있으며 대부분의 데이터베이스 엔진에서는 대상 데이터베이스로 전환할 준비가 될 때까지 지속적으로 복제를 계속할 수 있습니다. AWS DMS를 사용하여 동일하거나 다른 데이터베이스 엔진에서 MariaDB로 마이그레이션할 수 있습니다. 다른 데이터베이스 엔진에서 마이그레이션하는 경우 AWS Schema Conversion Tool을 사용하여 AWS DMS를 통해 마이그레이션되지 않는 스키마 객체를 마이그레이션할 수 있습니다. AWS DMS에 대한 자세한 내용은 AWS Database Migration Service란 무엇입니까? 단원을 참조하십시오.

외부 인스턴스가 MariaDB 버전 10.0.24 이상인 경우 MariaDB 전역 트랜잭션 ID(GTID)를 사용하여 Amazon RDS MariaDB DB 인스턴스로의 복제를 구성할 수 있으며, MySQL 인스턴스이거나 10.0.24보다 이전 버전의 MariaDB 인스턴스인 경우에는 이진 로그 좌표를 사용합니다. 단, MariaDB GTID는 MySQL GTID와 다르게 구성되며, Amazon RDS에서는 이를 지원하지 않습니다.

MariaDB DB 인스턴스로의 복제를 구성하려면 다음 프로시저를 사용할 수 있습니다.

참고

mysql 시스템 데이터베이스에는 DB 인스턴스에 로그인하고 데이터에 액세스하는 데 필요한 인증 및 권한 부여 정보가 포함되어 있습니다. DB 인스턴스에 있는 mysql 데이터베이스의 각종 테이블, 데이터 또는 기타 콘텐츠를 삭제하거나 변경하거나 이름을 바꾸거나 자르면 오류가 발생하여 DB 인스턴스와 데이터에 액세스할 수 없게 될 수 있습니다. 이런 문제가 발생할 경우 AWS CLI restore-db-instance-from-db-snapshot 명령을 사용하여 DB 인스턴스를 스냅샷에서 복원하거나 restore-db-instance-to-point-in-time 명령을 사용하여 DB 인스턴스를 복구할 수 있습니다.

Amazon RDS MariaDB DB 인스턴스로의 GTID 기반 복제 구성

버전 10.0.24 이상을 실행하는 외부 MariaDB 인스턴스에서 Amazon RDS MariaDB DB 인스턴스로의 GTID 기반 복제를 설정할 수 있습니다. Amazon RDS에서 외부 복제 마스터와 복제본을 설정할 때 다음 지침을 준수해야 합니다.

  • 사용자의 복제본인 Amazon RDS MariaDB DB 인스턴스에 대한 장애 조치 이벤트를 모니터링합니다. 장애 조치가 발생할 경우에는 사용자의 복제본인 DB 인스턴스가 다른 네트워크 주소를 가진 새 호스트에서 다시 생성될 수도 있습니다. 장애 조치 이벤트를 모니터링하는 자세한 방법은 Amazon RDS 이벤트 알림 서비스 사용 단원을 참조하십시오.

  • Binlog가 복제본에 적용되었음을 확인할 때까지는 마스터 인스턴스에서 binlog를 유지 관리합니다. 이렇게 유지 관리해야 오류 발생 시 마스터 인스턴스를 복원할 수 있습니다.

  • Amazon RDS 상의 MariaDB DB 인스턴스에서 자동 백업을 활성화합니다. 자동 백업을 활성화하면 마스터 및 복제본을 다시 동기화할 필요가 있을 때 복제본을 특정 시점으로 복원할 수 있습니다. 백업과 특정 시점으로 복원하는 방법에 대한 자세한 내용은 Amazon RDS DB 인스턴스 백업 및 복원 단원을 참조하십시오.

참고

Amazon RDS MariaDB DB 인스턴스에서 복제를 시작하는 데 필요한 권한은 제한되고 Amazon RDS 마스터 사용자는 사용할 수 없습니다. 이 때문에 Amazon RDS mysql.rds_set_external_master_gtidmysql.rds_start_replication 명령을 사용하여 라이브 데이터베이스와 Amazon RDS MariaDB 데이터베이스 사이의 복제를 설정해야 합니다.

외부 마스터 인스턴스와 Amazon RDS의 MariaDB DB 인스턴스 간에 복제를 시작하려면 다음 절차를 수행하십시오.

복제를 시작하려면

  1. 원본 MariaDB 인스턴스를 읽기 전용으로 설정합니다.

    mysql> FLUSH TABLES WITH READ LOCK; mysql> SET GLOBAL read_only = ON;
  2. 외부 MariaDB 인스턴스의 현재 GTID를 가져옵니다. 이를 위해 mysql 또는 원하는 쿼리 편집기를 사용하여 SELECT @@gtid_current_pos;를 실행할 수 있습니다.

    GTID는 <domain-id>-<server-id>-<sequence-id> 형식입니다. 0-1234510749-1728이 전형적인 GTID입니다. GTID 및 그 구성 요소에 대한 자세한 내용은 MariaDB 설명서의 전역 트랜잭션 ID를 참조하십시오.

  3. mysqldump를 사용하여 외부 MariaDB 인스턴스에서 Amazon RDS MariaDB DB 인스턴스로 데이터베이스를 복사합니다. 매우 큰 데이터베이스의 경우, 가동 중지 시간을 단축하여 Amazon RDS MySQL MariaDB DB 인스턴스로 데이터 가져오기에서 이 절차를 사용하고 싶을 것입니다.

    참고

    -p 옵션과 입력한 암호 사이에 공백이 없어야 합니다.

    Linux, OS X, Unix의 경우:

    mysqldump \ --databases <database_name> \ --single-transaction \ --compress \ --order-by-primary \ -u <local_user> \ -p<local_password> | mysql \ --host=hostname \ --port=3306 \ -u <RDS_user_name> \ -p <RDS_password>

    Windows의 경우:

    mysqldump ^ --databases <database_name> ^ --single-transaction ^ --compress ^ --order-by-primary \ -u <local_user> \ -p<local_password> | mysql ^ --host=hostname ^ --port=3306 ^ -u <RDS_user_name> ^ -p <RDS_password>

    Amazon RDS MariaDB DB 인스턴스에 연결하기 위해 호스트 이름, 사용자 이름, 포트 및 암호를 지정하려면 mysql 명령에 --host, --user (-u), --port-p 옵션을 사용합니다. 호스트 이름은 Amazon RDS MariaDB DB 인스턴스 엔드포인트의 DNS 이름입니다(예: myinstance.123456789012.us-east-1.rds.amazonaws.com). Amazon RDS Management Console의 인스턴스 세부 정보에서 엔드포인트 값을 찾을 수 있습니다.

  4. 원본 MariaDB 인스턴스를 다시 쓰기 가능한 상태로 만듭니다.

    mysql> SET GLOBAL read_only = OFF; mysql> UNLOCK TABLES;
  5. Amazon RDS Management Console에서 Amazon RDS MariaDB DB 인스턴스에 대한 VPC 보안 그룹에 외부 MariaDB 데이터베이스를 호스트하는 서버의 IP 주소를 추가합니다. VPC 보안 그룹 수정에 관한 자세한 정보는 Amazon Virtual Private Cloud User Guide에서 Security Groups for Your VPC 단원을 참조하십시오.

    외부 MariaDB 인스턴스와 통신할 수 있도록, Amazon RDS MariaDB DB 인스턴스 IP 주소에서의 연결을 허용하도록 로컬 네트워크를 구성해야 할 수도 있습니다. Amazon RDS MariaDB DB 인스턴스의 IP 주소를 찾으려면 host 명령을 사용합니다.

    host <RDS_MariaDB_DB_host_name>

    호스트 이름은 Amazon RDS MariaDB DB 인스턴스 엔드포인트의 DNS 이름입니다.

  6. 선택한 클라이언트를 사용하여 외부 MariaDB 인스턴스에 연결하고 복제에 사용될 MariaDB 사용자를 만듭니다. 이 계정은 오직 복제용으로만 사용되며 보안 향상을 위해 사용자의 도메인으로 제한되어야 합니다. 다음은 그 한 예입니다.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY '<password>';
  7. 외부 MariaDB 인스턴스의 경우 복제 사용자에게 REPLICATION CLIENTREPLICATION SLAVE 권한을 부여합니다. 예를 들어 도메인의 'repl_user' 사용자를 위해 모든 데이터베이스에서 REPLICATION CLIENTREPLICATION SLAVE 권한을 부여하려면 다음 명령을 실행합니다.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY '<password>';
  8. Amazon RDS MariaDB DB 인스턴스를 복제본으로 만듭니다. 마스터 사용자로서 Amazon RDS MariaDB DB 인스턴스에 연결하고 mysql.rds_set_external_master_gtid 명령을 사용하여 외부 MariaDB 데이터베이스를 복제 마스터로 식별합니다. 2단계에서 확인된 GTID를 사용하십시오. 다음은 그 한 예입니다.

    CALL mysql.rds_set_external_master_gtid ('mymasterserver.mydomain.com', 3306, 'repl_user', '<password>', '<GTID>', 0);
  9. Amazon RDS MariaDB DB 인스턴스에서 mysql.rds_start_replication 명령을 실행하여 복제를 시작합니다.

    CALL mysql.rds_start_replication;

이 페이지에서: