Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

mysql.rds_set_external_master_with_auto_position

Amazon RDS MySQL DB 인스턴스를 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 구성합니다. 또한 이 절차는 전역 트랜잭션 식별자(GTID)를 기반으로 한 지연된 복제 및 복제를 구성합니다.

구문

CALL mysql.rds_set_external_master_with_auto_position ( host_name , host_port , replication_user_name , replication_user_password , ssl_encryption , delay );

파라미터

host_name

복제 마스터가 될 Amazon RDS의 외부에서 실행 중인 MySQL 인스턴스의 호스트 이름 또는 IP 주소입니다.

host_port

복제 마스터로 구성될 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스에서 사용하는 포트입니다. 네트워크 구성에 포트 번호를 변환하는 SSH 포트 복제가 포함되는 경우 SSH(Secure Shell)에 의해 공개되는 포트 이름을 지정하십시오.

replication_user_name

Amazon RDS 외부에서 실행하는 MySQL 인스턴스에서 REPLICATION CLIENT 및 REPLICATION SLAVE 권한을 보유한 사용자의 ID입니다. 외부 인스턴스를 사용한 복제에만 사용되는 계정을 제공하는 것이 좋습니다.

replication_user_password

replication_user_name에 지정된 사용자 ID의 암호입니다.

ssl_encryption

이 옵션은 현재 구현되지 않습니다. 기본값은 0입니다.

delay

마스터에서 복제를 지연할 최소 시간(초)입니다.

이 파라미터에 대한 제한은 1일(86,400초)입니다.

사용 시 주의사항

마스터 사용자는 mysql.rds_set_external_master_with_auto_position 절차를 실행해야 합니다. 이 절차는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 구성될 MySQL DB 인스턴스에서 실행해야 합니다.

Amazon RDS MySQL 5.7의 경우 이 절차는 MySQL 5.7.23 및 MySQL 5.7 이상 버전에서 지원합니다. Amazon RDS MySQL 5.5, 5.6 또는 8.0의 경우 이 절차는 지원하지 않습니다.

mysql.rds_set_external_master_with_auto_position를 실행하기 전에 먼저 Amazon RDS 외부에서 실행하는 MySQL 인스턴스를 복제 마스터로 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 replication_user_namereplication_user_password의 값을 지정해야 합니다. 이러한 값은 MySQL의 외부 인스턴스에 대해 REPLICATION CLIENTREPLICATION SLAVE 권한을 가진 복제 사용자를 나타내야 합니다.

MySQL의 외부 인스턴스를 복제 마스터로 구성하려면

  1. 선택한 MySQL 클라이언트를 사용하여 MySQL의 외부 인스턴스에 연결하고 복제에 사용될 사용자 계정을 생성합니다. 다음은 예제입니다.

    CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
  2. MySQL의 외부 인스턴스에서 복제 사용자에게 REPLICATION CLIENTREPLICATION SLAVE 권한을 부여합니다. 다음 예제에서는 도메인의 'repl_user' 사용자에게 모든 데이터베이스에 대한 REPLICATION CLIENTREPLICATION SLAVE 권한을 부여합니다.

    GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'

자세한 내용은 Amazon RDS 외부에서 실행 중인 MySQL 또는 MariaDB 인스턴스를 사용한 복제 단원을 참조하십시오.

참고

가능하면 읽기 전용 복제본을 사용하여 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 절차만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. AWS는 주로 Amazon RDS 외부에서 실행하는 MySQL 인스턴스를 사용하여 복제가 가능한 이러한 저장 절차를 제공합니다. Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 MariaDB, MySQL 및 PostgreSQL DB 인스턴스의 읽기 전용 복제본 작업 주제를 참조하십시오.

mysql.rds_set_external_master_with_auto_position를 호출하여 Amazon RDS DB 인스턴스를 읽기 전용 복제본으로 구성한 후 읽기 전용 복제본에서 mysql.rds_start_replication을 호출하여 복제 프로세스를 시작할 수 있습니다. mysql.rds_reset_external_master를 호출하여 읽기 전용 복제본 구성을 제거할 수 있습니다.

mysql.rds_set_external_master_with_auto_position를 호출하면 Amazon RDS는 "set master"의 시간, 사용자 및 작업을 mysql.rds_historymysql.rds_replication_status 테이블에 기록합니다.

재해 복구의 경우 이 절차를 mysql.rds_start_replication_until 또는 mysql.rds_start_replication_until_gtid 저장 절차와 함께 사용할 수 있습니다. 절차를 실행하여 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤 포워드하려면 mysql.rds_set_external_master_with_auto_position 절차를 실행할 수 있습니다. mysql.rds_start_replication_until_gtid 프로시저에서 복제를 중지한 이후에 읽기 전용 복제본을 독립 DB 인스턴스로 승격의 지침에 따라 읽기 전용 복제본을 새 마스터 DB 인스턴스로 승격할 수 있습니다.

mysql.rds_rds_start_replication_until_gtid 절차를 사용하려면 GTID를 기반으로 한 복제를 활성화해야 합니다. 재해 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너 뛰려면 mysql.rds_skip_transaction_with_gtid 저장 절차를 사용할 수 있습니다. GTID 기반 복제 작업에 대한 자세한 내용은 Amazon RDS MySQL용 GTID 기반 복제 사용 단원을 참조하십시오.

예제

MySQL DB 인스턴스에서 다음 예제를 실행하면 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되도록 DB 인스턴스가 구성됩니다. MySQL DB 인스턴스에서 최소 복제 지연을 1시간(3,600초)으로 설정합니다. Amazon RDS 외부에서 실행 중인 MySQL 마스터의 변경 사항은 최소 1시간 동안 MySQL DB 인스턴스 읽기 전용 복제본에 적용되지 않습니다.

call mysql.rds_set_external_master_with_auto_position( 'Externaldb.some.com', 3306, 'repl_user'@'mydomain.com', 'SomePassW0rd', 0, 3600);