

# MySQL을 사용한 지연 복제 구성
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication"></a>

지연 복제를 재해 복구를 위한 전략으로 사용할 수 있습니다. 지연된 복제를 사용하여 원본에서 읽기 전용 복제본으로의 복제를 지연할 최소 시간(초)을 지정합니다. 재해 발생 시(예: 실수로 테이블 삭제) 다음 단계를 완료하여 재해로부터 빠르게 복구할 수 있습니다.
+ 재해를 일으킨 변경 사항이 읽기 전용 복제본으로 전송되기 이전에 읽기 전용 복제본에 대한 복제를 중지합니다.

  [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication) 저장 프로시저를 사용하여 복제를 중지합니다.
+ 복제를 시작하고 로그 파일 위치에서 복제가 자동으로 중지되도록 지정합니다.

  [mysql.rds\$1start\$1replication\$1until](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until) 저장 프로시저를 사용하여 재해 직전 위치를 지정합니다.
+ [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 원본 DB 인스턴스로 승격합니다.

**참고**  
RDS for MySQL 8.4에서는 지연 복제가 MySQL 8.4.3 이상에 대해 지원됩니다. RDS for MySQL 8.0에서는 지연 복제가 MySQL 8.0.28 이상에 대해 지원됩니다. RDS for MySQL 5.7에서는 지연 복제가 MySQL 5.7.44 이상에 대해 지원됩니다.
저장 프로시저를 사용하여 지연된 복제를 구성합니다. AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하여 지연 복제를 구성할 수 없습니다.
다음 버전에 대한 지연된 복제 구성에서 전역 트랜잭션 ID(GTID)를 기반으로 하는 복제를 사용할 수 있습니다.  
RDS for MySQL 버전 5.7.44 이상 5.7 버전
RDS for MySQL 버전 8.0.28 이상 8.0 버전
RDS for MySQL 버전 8.4.3 이상 8.4 버전
GTID 기반 복제를 사용하는 경우 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 저장 프로시저 대신 [mysql.rds\$1start\$1replication\$1until](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until) 저장 프로시저를 사용하십시오. GTID 기반 복제에 대한 자세한 내용은 [GTID 기반 복제 사용](mysql-replication-gtid.md) 단원을 참조하십시오.

**Topics**
+ [읽기 전용 복제본 생성 중 지연 복제 구성](#USER_MySQL.Replication.ReadReplicas.DelayReplication.ReplicaCreation)
+ [기존 읽기 전용 복제본에 대한 지연 복제 수정](#USER_MySQL.Replication.ReadReplicas.DelayReplication.ExistingReplica)
+ [읽기 전용 복제본에 대한 복제를 중지할 위치 설정](#USER_MySQL.Replication.ReadReplicas.DelayReplication.StartUntil)
+ [읽기 전용 복제본 승격](#USER_MySQL.Replication.ReadReplicas.DelayReplication.Promote)

## 읽기 전용 복제본 생성 중 지연 복제 구성
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication.ReplicaCreation"></a>

DB 인스턴스에서 향후에 생성되는 읽기 전용 복제본에 대한 지연된 복제를 구성하려면 [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) 파라미터와 함께 `target delay` 저장 프로시저를 실행합니다.

**읽기 전용 복제본을 생성하는 동안 지연된 복제를 구성하려면**

1. MySQL 클라이언트를 사용하여 마스터 사용자로 읽기 전용 복제본에 대한 원본이 될 MySQL DB 인스턴스에 연결합니다.

1. [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) 파라미터와 함께 `target delay` 저장 프로시저를 실행합니다.

   예를 들어, 현재 DB 인스턴스에서 생성되는 모든 읽기 전용 복제본에 대해 1시간(3,600초) 이상 복제를 지연하도록 지정하려면 다음 저장 프로시저를 실행합니다.

   ```
   call mysql.rds_set_configuration('target delay', 3600);
   ```
**참고**  
이 저장 프로시저를 실행한 후 AWS CLI 또는 Amazon RDS API를 사용하여 생성하는 모든 읽기 전용 복제본은 지정된 시간(초)만큼 복제를 지연하도록 구성됩니다.

## 기존 읽기 전용 복제본에 대한 지연 복제 수정
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication.ExistingReplica"></a>

기존 읽기 전용 복제본에 대한 지연된 복제를 수정하려면 [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay) 저장 프로시저를 실행합니다.

**기존 읽기 전용 복제본에 대한 지연된 복제를 수정하려면**

1. MySQL 클라이언트를 사용하여 마스터 사용자로 읽기 전용 복제본에 연결합니다.

1. [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication) 저장 프로시저를 사용하여 복제를 중지합니다.

1. [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay) 저장 프로시저를 실행합니다.

   예를 들어, 읽기 전용 복제본에 대한 복제가 1시간(3,600초) 이상 지연되도록 지정하려면 다음 저장 프로시저를 실행합니다.

   ```
   call mysql.rds_set_source_delay(3600);
   ```

1. [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) 저장 프로시저를 사용하여 복제를 시작합니다.

## 읽기 전용 복제본에 대한 복제를 중지할 위치 설정
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication.StartUntil"></a>

읽기 전용 복제본에 대한 복제를 중단한 이후에 [mysql.rds\$1start\$1replication\$1until](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until) 저장 프로시저를 사용하여 복제를 시작한 다음 지정된 이진 로그 파일 위치에서 복제를 중지할 수 있습니다.

**읽기 전용 복제본에 대한 복제를 시작하고 특정 위치에서 복제를 중지하려면**

1. MySQL 클라이언트를 사용하여 원본 MySQL DB 인스턴스에 마스터 사용자로 연결합니다.

1. [mysql.rds\$1start\$1replication\$1until](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until) 저장 프로시저를 실행합니다.

   다음 예제에서는 복제를 시작하고 `120` 바이너리 로그 파일의 `mysql-bin-changelog.000777` 위치에 도달할 때까지 변경 사항을 복제합니다. 재해 복구 시나리오에서 `120`이 재해 직전 위치라고 가정합니다.

   ```
   call mysql.rds_start_replication_until(
     'mysql-bin-changelog.000777',
     120);
   ```

중지 지점에 도달하면 복제가 자동으로 중지됩니다. `Replication has been stopped since the replica reached the stop point specified by the rds_start_replication_until stored procedure` RDS 이벤트가 생성됩니다.

## 읽기 전용 복제본 승격
<a name="USER_MySQL.Replication.ReadReplicas.DelayReplication.Promote"></a>

복제가 중지된 후 재해 복구 시나리오에서 읽기 전용 복제본을 새 원본 DB 인스턴스로 승격할 수 있습니다. 읽기 전용 복제본 승격에 대한 자세한 내용은 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md) 단원을 참조하십시오.