

# RDS for MySQL 저장 프로시저 참조
<a name="Appendix.MySQL.SQLRef"></a>

이 주제에서는 MySQL DB 엔진을 실행 중인 Amazon RDS 인스턴스에 사용할 수 있는 시스템 저장 프로시저를 설명합니다. 마스터 사용자는 이 프로시저를 실행해야 합니다.

**Topics**
+ [

# 글로벌 상태 기록 수집 및 유지
](mysql-stored-proc-gsh.md)
+ [

# 이진수 로그(binlog) 복제 구성, 시작 및 중지
](mysql-stored-proc-replicating.md)
+ [

# 세션 또는 쿼리 종료
](mysql-stored-proc-ending.md)
+ [

# 활성-활성 클러스터
](mysql-stored-proc-active-active-clusters.md)
+ [

# 다중 소스 복제 관리
](mysql-stored-proc-multi-source-replication.md)
+ [

# GTID를 사용한 트랜잭션 복제
](mysql-stored-proc-gtid.md)
+ [

# 쿼리 로그 교체
](mysql-stored-proc-logging.md)
+ [

# 이진수 로그 구성 설정 및 표시
](mysql-stored-proc-configuring.md)
+ [

# InnoDB 캐시 워밍
](mysql-stored-proc-warming.md)

# 글로벌 상태 기록 수집 및 유지
<a name="mysql-stored-proc-gsh"></a>

Amazon RDS는 시간에 따른 상태 변수 값의 스냅샷을 생성하고 이를 마지막 스냅샷 이후의 변경 사항과 함께 테이블에 쓰는 일련의 프로시저를 제공합니다. 이 인프라를 전역적 상태 이력이라고 합니다. 자세한 내용은 [RDS for MySQL의 글로벌 상태 기록 관리](Appendix.MySQL.CommonDBATasks.GoSH.md)를 참조하세요.

다음 저장 프로시저는 전역적 상태 이력을 수집하고 유지하는 방법을 관리합니다.

**Topics**
+ [

## mysql.rds\$1collect\$1global\$1status\$1history
](#mysql_rds_collect_global_status_history)
+ [

## mysql.rds\$1disable\$1gsh\$1collector
](#mysql_rds_disable_gsh_collector)
+ [

## mysql.rds\$1disable\$1gsh\$1rotation
](#mysql_rds_disable_gsh_rotation)
+ [

## mysql.rds\$1enable\$1gsh\$1collector
](#mysql_rds_enable_gsh_collector)
+ [

## mysql.rds\$1enable\$1gsh\$1rotation
](#mysql_rds_enable_gsh_rotation)
+ [

## mysql.rds\$1rotate\$1global\$1status\$1history
](#mysql_rds_rotate_global_status_history)
+ [

## mysql.rds\$1set\$1gsh\$1collector
](#mysql_rds_set_gsh_collector)
+ [

## mysql.rds\$1set\$1gsh\$1rotation
](#mysql_rds_set_gsh_rotation)

## mysql.rds\$1collect\$1global\$1status\$1history
<a name="mysql_rds_collect_global_status_history"></a>

전역적 상태 이력에 대해 요청 시 스냅샷을 생성합니다.

### 구문
<a name="rds_collect_global_status_history-syntax"></a>

 

```
CALL mysql.rds_collect_global_status_history;
```

## mysql.rds\$1disable\$1gsh\$1collector
<a name="mysql_rds_disable_gsh_collector"></a>

전역적 상태 이력에서 생성한 스냅샷을 비활성화합니다.

### 구문
<a name="mysql_rds_disable_gsh_collector-syntax"></a>

 

```
CALL mysql.rds_disable_gsh_collector;
```

## mysql.rds\$1disable\$1gsh\$1rotation
<a name="mysql_rds_disable_gsh_rotation"></a>

`mysql.global_status_history` 테이블 회전을 비활성화합니다.

### 구문
<a name="mysql_rds_disable_gsh_rotation-syntax"></a>

 

```
CALL mysql.rds_disable_gsh_rotation;
```

## mysql.rds\$1enable\$1gsh\$1collector
<a name="mysql_rds_enable_gsh_collector"></a>

전역적 상태 이력을 활성화하여 `rds_set_gsh_collector`로 지정한 간격에 따라 기본 스냅샷을 생성합니다.

### 구문
<a name="mysql_rds_enable_gsh_collector-syntax"></a>

 

```
CALL mysql.rds_enable_gsh_collector;
```

## mysql.rds\$1enable\$1gsh\$1rotation
<a name="mysql_rds_enable_gsh_rotation"></a>

`mysql.global_status_history` 테이블의 내용이 `rds_set_gsh_rotation`에서 설정한 주기에 따라 `mysql.global_status_history_old`로 회전되도록 회전을 활성화합니다.

### 구문
<a name="mysql_rds_enable_gsh_rotation-syntax"></a>

 

```
CALL mysql.rds_enable_gsh_rotation;
```

## mysql.rds\$1rotate\$1global\$1status\$1history
<a name="mysql_rds_rotate_global_status_history"></a>

필요에 따라 `mysql.global_status_history` 테이블의 내용을 `mysql.global_status_history_old`로 로테이션합니다.

### 구문
<a name="mysql_rds_rotate_global_status_history-syntax"></a>

 

```
CALL mysql.rds_rotate_global_status_history;
```

## mysql.rds\$1set\$1gsh\$1collector
<a name="mysql_rds_set_gsh_collector"></a>

전역적 상태 이력에서 생성하는 스냅샷 간격(분)을 지정합니다.

### 구문
<a name="mysql_rds_set_gsh_collector-syntax"></a>

 

```
CALL mysql.rds_set_gsh_collector(intervalPeriod);
```

### 파라미터
<a name="mysql_rds_set_gsh_collector-parameters"></a>

 *intervalPeriod*   
스냅샷 주기(분)입니다. 기본값은 `5`입니다.

## mysql.rds\$1set\$1gsh\$1rotation
<a name="mysql_rds_set_gsh_rotation"></a>

`mysql.global_status_history` 테이블의 로테이션 주기(일)을 지정합니다.

### 구문
<a name="mysql_rds_set_gsh_rotation-syntax"></a>

 

```
CALL mysql.rds_set_gsh_rotation(intervalPeriod);
```

### 파라미터
<a name="mysql_rds_set_gsh_rotation-parameters"></a>

 *intervalPeriod*   
테이블 로테이션 주기(일)입니다. 기본값은 `7`입니다.

# 이진수 로그(binlog) 복제 구성, 시작 및 중지
<a name="mysql-stored-proc-replicating"></a>

다음 저장 프로시저는 트랜잭션이 외부 데이터베이스에서 RDS for MySQL로 또는 RDS for MySQL에서 외부 데이터베이스로 복제되는 방식을 제어합니다.

`caching_sha2_password`로 구성된 복제 사용자로 복제를 관리하기 위해 이러한 저장 프로시저를 사용하는 경우, `SOURCE_SSL=1`을 지정하여 TLS를 구성해야 합니다. `caching_sha2_password`는 RDS for MySQL 8.4의 기본 인증 플러그인입니다. 자세한 내용은 [SSL/TLS를 사용하여 암호화](mysql-ssl-connections.md) 섹션을 참조하세요.

읽기 전용 복제본 구성, 사용 및 관리에 대한 자세한 내용은 [MySQL 읽기 전용 복제본 작업](USER_MySQL.Replication.ReadReplicas.md) 섹션을 참조하세요.

**Topics**
+ [

## vmysql.rds\$1next\$1master\$1log(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)
](#mysql_rds_next_master_log)
+ [

## mysql.rds\$1next\$1source\$1log(RDS for MySQL 메이저 버전 8.4 이상)
](#mysql_rds_next_source_log)
+ [

## mysql.rds\$1reset\$1external\$1master(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)
](#mysql_rds_reset_external_master)
+ [

## mysql.rds\$1reset\$1external\$1source(RDS for MySQL 메이저 버전 8.4 이상)
](#mysql_rds_reset_external_source)
+ [

## mysql.rds\$1set\$1external\$1master(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)
](#mysql_rds_set_external_master)
+ [

## mysql.rds\$1set\$1external\$1source(RDS for MySQL 메이저 버전 8.4 이상)
](#mysql_rds_set_external_source)
+ [

## mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position(RDS for MySQL 메이저 버전 8.0 이하)
](#mysql_rds_set_external_master_with_auto_position)
+ [

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position(RDS for MySQL 메이저 버전 8.4 이상)
](#mysql_rds_set_external_source_with_auto_position)
+ [

## mysql.rds\$1set\$1external\$1master\$1with\$1delay(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)
](#mysql_rds_set_external_master_with_delay)
+ [

## mysql.rds\$1set\$1external\$1source\$1with\$1delay(RDS for MySQL 메이저 버전 8.4 이상)
](#mysql_rds_set_external_source_with_delay)
+ [

## mysql.rds\$1set\$1external\$1source\$1gtid\$1purged
](#mysql_rds_set_external_source_gtid_purged)
+ [

## mysql.rds\$1set\$1master\$1auto\$1position(RDS for MySQL 메이저 버전 8.0 이하)
](#mysql_rds_set_master_auto_position)
+ [

## mysql.rds\$1set\$1source\$1auto\$1position(RDS for MySQL 메이저 버전 8.4 이상)
](#mysql_rds_set_source_auto_position)
+ [

## mysql.rds\$1set\$1source\$1delay
](#mysql_rds_set_source_delay)
+ [

## mysql.rds\$1skip\$1repl\$1error
](#mysql_rds_skip_repl_error)
+ [

## mysql.rds\$1start\$1replication
](#mysql_rds_start_replication)
+ [

## mysql.rds\$1start\$1replication\$1until
](#mysql_rds_start_replication_until)
+ [

## mysql.rds\$1stop\$1replication
](#mysql_rds_stop_replication)

## vmysql.rds\$1next\$1master\$1log(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)
<a name="mysql_rds_next_master_log"></a>

소스 데이터베이스 인스턴스 로그 위치를 소스 데이터베이스 인스턴스에서 다음 이진 로그의 시작으로 변경합니다. 읽기 전용 복제본에 대한 복제 I/O 오류 1236을 수신 중일 경우에만 이 프로시저를 사용하십시오.

### 구문
<a name="mysql_rds_next_master_log-syntax"></a>

 

```
CALL mysql.rds_next_master_log(
curr_master_log
);
```

### 파라미터
<a name="mysql_rds_next_master_log-parameters"></a>

 *curr\$1master\$1log*   
현재 마스터 로그 파일의 인덱스입니다. 예를 들어, 현재 파일의 이름이 `mysql-bin-changelog.012345`이면 인덱스는 12345입니다. 현재 마스터 로그 파일 이름을 확인하려면 `SHOW REPLICA STATUS` 명령을 실행하고 `Master_Log_File` 필드를 봅니다.

### 사용 노트
<a name="mysql_rds_next_master_log-usage-notes"></a>

마스터 사용자는 `mysql.rds_next_master_log` 프로시저를 실행해야 합니다.

**주의**  
복제 원본인 다중 AZ DB 인스턴스의 장애 조치 후 복제가 실패하고 `mysql.rds_next_master_log`의 `Last_IO_Errno`필드에서 I/O 오류 1236을 보고하는 경우에만 `SHOW REPLICA STATUS`를 호출합니다.  
장애 조치 이벤트가 발생하기 전에 원본 인스턴스의 트랜잭션이 디스크의 바이너리 로그에 기록되지 않은 경우 `mysql.rds_next_master_log`를 호출하면 읽기 전용 복제본에서 데이터가 손실될 수 있습니다. 소스 인스턴스 파라미터 `sync_binlog` 및 `innodb_support_xa`를 `1`로 설정하여 이런 상황이 발생할 가능성을 줄일 수 있으나, 성능이 저하될 수 있습니다. 자세한 내용은 [MySQL 읽기 전용 복제본의 문제 해결](USER_ReadRepl.Troubleshooting.md) 섹션을 참조하세요.

### 예제
<a name="mysql_rds_next_master_log-examples"></a>

RDS for MySQL 읽기 전용 복제본에서 복제가 실패한다고 가정해 보겠습니다. 읽기 전용 복제본에서 `SHOW REPLICA STATUS\G`를 실행하면 다음 결과가 반환됩니다.

```
*************************** 1. row ***************************
             Replica_IO_State:
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: MasterUser
                  Source_Port: 3306
                Connect_Retry: 10
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: relaylog.012340
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 30223232
              Relay_Log_Space: 5248928866
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File:
           Source_SSL_CA_Path:
              Source_SSL_Cert:
            Source_SSL_Cipher:
               Source_SSL_Key:
        Seconds_Behind_Master: NULL
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Source_Server_Id: 67285976
```

`Last_IO_Errno` 필드가 인스턴스에서 I/O 오류 1236을 수신하고 있음을 보여 줍니다. `Master_Log_File` 필드는 파일 이름이 `mysql-bin-changelog.012345`임을 보여 줍니다. 이는 로그 파일 인덱스가 `12345`임을 의미합니다. 오류를 해결하려면 다음 파라미터와 함께 `mysql.rds_next_master_log`를 호출합니다.

```
CALL mysql.rds_next_master_log(12345);
```

## mysql.rds\$1next\$1source\$1log(RDS for MySQL 메이저 버전 8.4 이상)
<a name="mysql_rds_next_source_log"></a>

소스 데이터베이스 인스턴스 로그 위치를 소스 데이터베이스 인스턴스에서 다음 이진 로그의 시작으로 변경합니다. 읽기 전용 복제본에 대한 복제 I/O 오류 1236을 수신 중일 경우에만 이 프로시저를 사용하십시오.

### 구문
<a name="mysql_rds_next_source_log-syntax"></a>

 

```
CALL mysql.rds_next_source_log(
curr_source_log
);
```

### 파라미터
<a name="mysql_rds_next_source_log-parameters"></a>

 *curr\$1source\$1log*   
현재 소스 로그 파일의 인덱스입니다. 예를 들어, 현재 파일의 이름이 `mysql-bin-changelog.012345`이면 인덱스는 12345입니다. 현재 소스 로그 파일 이름을 확인하려면 `SHOW REPLICA STATUS` 명령을 실행하고 `Source_Log_File` 필드를 봅니다.

### 사용 노트
<a name="mysql_rds_next_source_log-usage-notes"></a>

관리 사용자는 `mysql.rds_next_source_log` 프로시저를 실행해야 합니다.

**주의**  
복제 원본인 다중 AZ DB 인스턴스의 장애 조치 후 복제가 실패하고 `mysql.rds_next_source_log`의 `Last_IO_Errno`필드에서 I/O 오류 1236을 보고하는 경우에만 `SHOW REPLICA STATUS`를 호출합니다.  
장애 조치 이벤트가 발생하기 전에 원본 인스턴스의 트랜잭션이 디스크의 바이너리 로그에 기록되지 않은 경우 `mysql.rds_next_source_log`를 호출하면 읽기 전용 복제본에서 데이터가 손실될 수 있습니다. 소스 인스턴스 파라미터 `innodb_support_xa` 및 `sync_binlog`를 `1`로 설정하여 이런 상황이 발생할 가능성을 줄일 수 있으나, 성능이 저하될 수 있습니다. 자세한 내용은 [MySQL 읽기 전용 복제본의 문제 해결](USER_ReadRepl.Troubleshooting.md) 섹션을 참조하세요.

### 예제
<a name="mysql_rds_next_source_log-examples"></a>

RDS for MySQL 읽기 전용 복제본에서 복제가 실패한다고 가정해 보겠습니다. 읽기 전용 복제본에서 `SHOW REPLICA STATUS\G`를 실행하면 다음 결과가 반환됩니다.

```
*************************** 1. row ***************************
             Replica_IO_State:
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: MasterUser
                  Source_Port: 3306
                Connect_Retry: 10
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: relaylog.012340
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Source_Log_Pos: 30223232
              Relay_Log_Space: 5248928866
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Source_SSL_Allowed: No
           Source_SSL_CA_File:
           Source_SSL_CA_Path:
              Source_SSL_Cert:
            Source_SSL_Cipher:
               Source_SSL_Key:
        Seconds_Behind_Source: NULL
Source_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from source when reading data from binary log: 'Client requested source to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Source_Server_Id: 67285976
```

`Last_IO_Errno` 필드가 인스턴스에서 I/O 오류 1236을 수신하고 있음을 보여 줍니다. `Source_Log_File` 필드는 파일 이름이 `mysql-bin-changelog.012345`임을 보여 줍니다. 이는 로그 파일 인덱스가 `12345`임을 의미합니다. 오류를 해결하려면 다음 파라미터와 함께 `mysql.rds_next_source_log`를 호출합니다.

```
CALL mysql.rds_next_source_log(12345);
```

## mysql.rds\$1reset\$1external\$1master(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)
<a name="mysql_rds_reset_external_master"></a>

이제 RDS for MySQL DB 인스턴스가 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되지 않도록 다시 구성합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

### 구문
<a name="mysql_rds_reset_external_master-syntax"></a>

 

```
CALL mysql.rds_reset_external_master;
```

### 사용 노트
<a name="mysql_rds_reset_external_master-usage-notes"></a>

마스터 사용자는 `mysql.rds_reset_external_master` 프로시저를 실행해야 합니다. 이 프로시저는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 제거되도록 MySQL DB 인스턴스에서 실행해야 합니다.

**참고**  
가능하면 읽기 전용 복제본을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 프로시저만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. 이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 주제를 참조하십시오.

복제를 사용하여 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스에서 데이터 가져오기에 대한 자세한 내용은 [외부 소스 인스턴스를 사용하여 이진 로그 파일 위치 복제 구성](MySQL.Procedural.Importing.External.Repl.md) 주제를 참조하십시오.

## mysql.rds\$1reset\$1external\$1source(RDS for MySQL 메이저 버전 8.4 이상)
<a name="mysql_rds_reset_external_source"></a>

이제 RDS for MySQL DB 인스턴스가 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되지 않도록 다시 구성합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

### 구문
<a name="mysql_rds_reset_external_source-syntax"></a>

 

```
CALL mysql.rds_reset_external_source;
```

### 사용 노트
<a name="mysql_rds_reset_external_source-usage-notes"></a>

관리 사용자는 `mysql.rds_reset_external_source` 프로시저를 실행해야 합니다. 이 프로시저는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 제거되도록 MySQL DB 인스턴스에서 실행해야 합니다.

**참고**  
가능하면 읽기 전용 복제본을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 프로시저만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. 이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다.  
Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 주제를 참조하십시오. 복제를 사용하여 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스에서 데이터 가져오기에 대한 자세한 내용은 [외부 소스 인스턴스를 사용하여 이진 로그 파일 위치 복제 구성](MySQL.Procedural.Importing.External.Repl.md) 주제를 참조하십시오.

## mysql.rds\$1set\$1external\$1master(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)
<a name="mysql_rds_set_external_master"></a>

RDS for MySQL DB 인스턴스가 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되도록 구성합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

**참고**  
[mysql.rds\$1set\$1external\$1master\$1with\$1delay(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)](#mysql_rds_set_external_master_with_delay) 저장 프로시저를 사용하여 외부 소스 데이터베이스 인스턴스 및 지연된 복제를 구성할 수 있습니다.

### 구문
<a name="mysql_rds_set_external_master-syntax"></a>

 

```
CALL mysql.rds_set_external_master (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
);
```

### 파라미터
<a name="mysql_rds_set_external_master-parameters"></a>

 *host\$1name*   
소스 데이터베이스 인스턴스가 될 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 호스트 이름 또는 IP 주소입니다.

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

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

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *mysql\$1binary\$1log\$1file\$1name*   
복제 정보를 포함하는 소스 데이터베이스 인스턴스의 이진 로그 이름입니다.

 *mysql\$1binary\$1log\$1file\$1location*   
복제 시 복제 정보를 읽기 시작하는 `mysql_binary_log_file_name` 이진수 로그 내 위치입니다.  
소스 데이터베이스 인스턴스의 `SHOW MASTER STATUS`를 실행하여 binlog 파일 이름 및 위치를 확인할 수 있습니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`MASTER_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

### 사용 노트
<a name="mysql_rds_set_external_master-usage-notes"></a>

마스터 사용자는 `mysql.rds_set_external_master` 프로시저를 실행해야 합니다. 이 프로시저는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 구성되도록 MySQL DB 인스턴스에서 실행해야 합니다.

`mysql.rds_set_external_master`을 실행하기 전에 소스 데이터베이스 인스턴스가 되도록 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스를 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 MySQL의 외부 인스턴스에서 `replication_user_name` 및 `replication_user_password` 권한이 있는 복제 사용자를 나타내는 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 값을 지정해야 합니다.

**MySQL의 외부 인스턴스를 소스 데이터베이스 인스턴스로 구성하려면**

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

   **MySQL 5.7**

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
   ```

   **MySQL 8.0**

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED WITH mysql_native_password BY 'password';
   ```
**참고**  
보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

1. MySQL의 외부 인스턴스에서 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 'repl\$1user' 사용자에게 모든 데이터베이스에 대한 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다.

   **MySQL 5.7**

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

   **MySQL 8.0**

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
   ```

암호화된 복제를 사용하려면 SSL 연결을 사용하도록 소스 데이터베이스 인스턴스를 구성합니다.

**참고**  
가능하면 읽기 전용 복제본을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 프로시저만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. 이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 주제를 참조하십시오.

`mysql.rds_set_external_master`을 호출하여 Amazon RDS DB 인스턴스를 읽기 전용 복제본으로 구성한 후 읽기 전용 복제본에서 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)을 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1master(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)](#mysql_rds_reset_external_master)를 호출하여 읽기 전용 복제본 구성을 제거할 수 있습니다.

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

### 예제:
<a name="mysql_rds_set_external_master-examples"></a>

MySQL DB 인스턴스에서 다음 예제를 실행하면 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되도록 DB 인스턴스가 구성됩니다.

```
call mysql.rds_set_external_master(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.0777',
  120,
  1);
```

## mysql.rds\$1set\$1external\$1source(RDS for MySQL 메이저 버전 8.4 이상)
<a name="mysql_rds_set_external_source"></a>

RDS for MySQL DB 인스턴스가 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되도록 구성합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

### 구문
<a name="mysql_rds_set_external_source-syntax"></a>

 

```
CALL mysql.rds_set_external_source (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
);
```

### 파라미터
<a name="mysql_rds_set_external_source-parameters"></a>

 *host\$1name*   
소스 데이터베이스 인스턴스가 될 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 호스트 이름 또는 IP 주소입니다.

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

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

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *mysql\$1binary\$1log\$1file\$1name*   
복제 정보를 포함하는 소스 데이터베이스 인스턴스의 이진 로그 이름입니다.

 *mysql\$1binary\$1log\$1file\$1location*   
복제 시 복제 정보를 읽기 시작하는 `mysql_binary_log_file_name` 이진수 로그 내 위치입니다.  
소스 데이터베이스 인스턴스의 `SHOW MASTER STATUS`를 실행하여 binlog 파일 이름 및 위치를 확인할 수 있습니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`SOURCE_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

### 사용 노트
<a name="mysql_rds_set_external_source-usage-notes"></a>

관리 사용자는 `mysql.rds_set_external_source` 프로시저를 실행해야 합니다. 이 프로시저는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 구성되도록 RDS for MySQL DB 인스턴스에서 실행해야 합니다.

 `mysql.rds_set_external_source`을 실행하기 전에 소스 데이터베이스 인스턴스가 되도록 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스를 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 MySQL의 외부 인스턴스에서 `replication_user_name` 및 `replication_user_password` 권한이 있는 복제 사용자를 나타내는 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 값을 지정해야 합니다.

**MySQL의 외부 인스턴스를 소스 데이터베이스 인스턴스로 구성하려면**

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

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
   ```
**참고**  
보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

1. MySQL의 외부 인스턴스에서 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 'repl\$1user' 사용자에게 모든 데이터베이스에 대한 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
   ```

암호화된 복제를 사용하려면 SSL 연결을 사용하도록 소스 데이터베이스 인스턴스를 구성합니다. 또한 [mysql.rds\$1import\$1binlog\$1ssl\$1material](url-rds-user;mysql_rds_import_binlog_ssl_material.html) 프로시저를 사용하여 인증 기관(CA) 인증서, 클라이언트 인증서, 클라이언트 키를 DB 인스턴스나 DB 클러스터로 가져옵니다.

**참고**  
가능하면 읽기 전용 복제본을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 프로시저만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. 이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 주제를 참조하십시오.

`mysql.rds_set_external_source`를 직접 호출하여 RDS for MySQL DB 인스턴스를 읽기 전용 복제본으로 구성한 후 읽기 전용 복제본에서 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)을 직접 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1source(RDS for MySQL 메이저 버전 8.4 이상)](#mysql_rds_reset_external_source)를 호출하여 읽기 전용 복제본 구성을 제거할 수 있습니다.

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

### 예제
<a name="mysql_rds_set_external_source-examples"></a>

RDS for MySQL DB 인스턴스에서 실행할 경우 다음 예시는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되도록 DB 인스턴스를 구성합니다.

```
call mysql.rds_set_external_source(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.0777',
  120,
  1);
```

## mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position(RDS for MySQL 메이저 버전 8.0 이하)
<a name="mysql_rds_set_external_master_with_auto_position"></a>

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

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

### 구문
<a name="mysql_rds_set_external_master_with_auto_position-syntax"></a>

 

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

### 파라미터
<a name="mysql_rds_set_external_master_with_auto_position-parameters"></a>

 *host\$1name*   
소스 데이터베이스 인스턴스가 될 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 호스트 이름 또는 IP 주소입니다.

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

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

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`MASTER_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

 *delay*   
소스 데이터베이스 인스턴스에서 복제를 지연할 최소 시간(초)입니다.  
이 파라미터에 대한 제한은 1일(86,400초)입니다.

### 사용 노트
<a name="mysql_rds_set_external_master_with_auto_position-usage-notes"></a>

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

이 프로시저는 모든 RDS for MySQL 5.7 버전 및 RDS for MySQL 8.0.26 이상의 8.0 버전에서 지원됩니다.

`mysql.rds_set_external_master_with_auto_position`을 실행하기 전에 소스 데이터베이스 인스턴스가 되도록 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스를 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 `replication_user_name` 및 `replication_user_password`의 값을 지정해야 합니다. 이러한 값은 MySQL의 외부 인스턴스에 대해 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 가진 복제 사용자를 나타내야 합니다.

**MySQL의 외부 인스턴스를 소스 데이터베이스 인스턴스로 구성하려면**

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

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. MySQL의 외부 인스턴스에서 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 `REPLICATION CLIENT` 사용자에게 모든 데이터베이스에 대한 `REPLICATION SLAVE` 및 `'repl_user'` 권한을 부여합니다.

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

자세한 내용은 [외부 소스 인스턴스를 사용하여 이진 로그 파일 위치 복제 구성](MySQL.Procedural.Importing.External.Repl.md) 섹션을 참조하세요.

**참고**  
가능하면 읽기 전용 복제본을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 프로시저만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. 이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 주제를 참조하십시오.

`mysql.rds_set_external_master_with_auto_position` 직접 호출 전에 [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](#mysql_rds_set_external_source_gtid_purged)를 직접 호출하여 외부 소스의 지정된 GTID 범위로 시스템 변수를 설정합니다.

`mysql.rds_set_external_master_with_auto_position`을 호출하여 Amazon RDS DB 인스턴스를 읽기 전용 복제본으로 구성한 후 읽기 전용 복제본에서 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)을 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1master(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)](#mysql_rds_reset_external_master)를 호출하여 읽기 전용 복제본 구성을 제거할 수 있습니다.

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

재해 복구의 경우 이 프로시저를 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 또는 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 저장 프로시저와 함께 사용할 수 있습니다. 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤포워드하려면 `mysql.rds_set_external_master_with_auto_position` 프로시저를 실행할 수 있습니다. `mysql.rds_start_replication_until_gtid` 프로시저에서 복제를 중지한 이후에 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 기본 DB 인스턴스가 되도록 승격할 수 있습니다.

`mysql.rds_rds_start_replication_until_gtid` 프로시저를 사용하려면 GTID를 기반으로 한 복제를 활성화해야 합니다. 재해 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너 뛰려면 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 저장 프로시저를 사용할 수 있습니다. GTID 기반 복제 작업에 대한 자세한 내용은 [GTID 기반 복제 사용](mysql-replication-gtid.md) 섹션을 참조하십시오.

### 예제:
<a name="mysql_rds_set_external_master_with_auto_position-examples"></a>

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',
  'SomePassW0rd',
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position(RDS for MySQL 메이저 버전 8.4 이상)
<a name="mysql_rds_set_external_source_with_auto_position"></a>

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

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

### 구문
<a name="mysql_rds_set_external_source_with_auto_position-syntax"></a>

 

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

### 파라미터
<a name="mysql_rds_set_external_source_with_auto_position-parameters"></a>

 *host\$1name*   
소스 데이터베이스 인스턴스가 될 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 호스트 이름 또는 IP 주소입니다.

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

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

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`SOURCE_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

 *delay*   
소스 데이터베이스 인스턴스에서 복제를 지연할 최소 시간(초)입니다.  
이 파라미터에 대한 제한은 1일(86,400초)입니다.

### 사용 노트
<a name="mysql_rds_set_external_source_with_auto_position-usage-notes"></a>

관리 사용자는 `mysql.rds_set_external_source_with_auto_position` 프로시저를 실행해야 합니다. 이 프로시저는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 구성되도록 MySQL DB 인스턴스에서 실행해야 합니다.

`mysql.rds_set_external_source_with_auto_position`을 실행하기 전에 소스 데이터베이스 인스턴스가 되도록 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스를 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 `replication_user_name` 및 `replication_user_password`의 값을 지정해야 합니다. 이러한 값은 MySQL의 외부 인스턴스에 대해 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 가진 복제 사용자를 나타내야 합니다.

**MySQL의 외부 인스턴스를 소스 데이터베이스 인스턴스로 구성하려면**

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

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. MySQL의 외부 인스턴스에서 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 `REPLICATION CLIENT` 사용자에게 모든 데이터베이스에 대한 `REPLICATION SLAVE` 및 `'repl_user'` 권한을 부여합니다.

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

자세한 내용은 [외부 소스 인스턴스를 사용하여 이진 로그 파일 위치 복제 구성](MySQL.Procedural.Importing.External.Repl.md) 섹션을 참조하세요.

**참고**  
가능하면 읽기 전용 복제본을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 프로시저만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. 이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 주제를 참조하십시오.

`mysql.rds_set_external_source_with_auto_position` 직접 호출 전에 [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](#mysql_rds_set_external_source_gtid_purged)를 직접 호출하여 외부 소스의 지정된 GTID 범위로 `gtid_purged` 시스템 변수를 설정합니다.

`mysql.rds_set_external_source_with_auto_position`을 호출하여 Amazon RDS DB 인스턴스를 읽기 전용 복제본으로 구성한 후 읽기 전용 복제본에서 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)을 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1source(RDS for MySQL 메이저 버전 8.4 이상)](#mysql_rds_reset_external_source)를 호출하여 읽기 전용 복제본 구성을 제거할 수 있습니다.

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

재해 복구의 경우 이 프로시저를 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 또는 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 저장 프로시저와 함께 사용할 수 있습니다. 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤포워드하려면 `mysql.rds_set_external_source_with_auto_position` 프로시저를 실행할 수 있습니다. `mysql.rds_start_replication_until_gtid` 프로시저에서 복제를 중지한 이후에 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 기본 DB 인스턴스가 되도록 승격할 수 있습니다.

`mysql.rds_rds_start_replication_until_gtid` 프로시저를 사용하려면 GTID를 기반으로 한 복제를 활성화해야 합니다. 재해 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너 뛰려면 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 저장 프로시저를 사용할 수 있습니다. GTID 기반 복제 작업에 대한 자세한 내용은 [GTID 기반 복제 사용](mysql-replication-gtid.md) 섹션을 참조하십시오.

### 예제:
<a name="mysql_rds_set_external_source_with_auto_position-examples"></a>

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

```
call mysql.rds_set_external_source_with_auto_position(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1master\$1with\$1delay(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)
<a name="mysql_rds_set_external_master_with_delay"></a>

Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되도록 RDS for MySQL DB 인스턴스를 구성하고 지연 복제를 구성합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

### 구문
<a name="mysql_rds_set_external_master_with_delay-syntax"></a>

 

```
CALL mysql.rds_set_external_master_with_delay(
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
);
```

### 파라미터
<a name="mysql_rds_set_external_master_with_delay-parameters"></a>

 *host\$1name*   
소스 데이터베이스 인스턴스가 될 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 호스트 이름 또는 IP 주소입니다.

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

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

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *mysql\$1binary\$1log\$1file\$1name*   
복제 정보를 포함하는 소스 데이터베이스 인스턴스의 이진 로그 이름입니다.

 *mysql\$1binary\$1log\$1file\$1location*   
복제 시 복제 정보를 읽기 시작할 `mysql_binary_log_file_name` 이진 로그 내 위치입니다.  
소스 데이터베이스 인스턴스의 `SHOW MASTER STATUS`를 실행하여 binlog 파일 이름 및 위치를 확인할 수 있습니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`MASTER_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

 *delay*   
소스 데이터베이스 인스턴스에서 복제를 지연할 최소 시간(초)입니다.  
이 파라미터에 대한 제한은 1일(86,400초)입니다.

### 사용 노트
<a name="mysql_rds_set_external_master_with_delay-usage-notes"></a>

 마스터 사용자는 `mysql.rds_set_external_master_with_delay` 프로시저를 실행해야 합니다. 이 프로시저는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 구성되도록 MySQL DB 인스턴스에서 실행해야 합니다.

 `mysql.rds_set_external_master_with_delay`을 실행하기 전에 소스 데이터베이스 인스턴스가 되도록 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스를 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 `replication_user_name` 및 `replication_user_password`의 값을 지정해야 합니다. 이러한 값은 MySQL의 외부 인스턴스에 대해 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 가진 복제 사용자를 나타내야 합니다.

**MySQL의 외부 인스턴스를 소스 데이터베이스 인스턴스로 구성하려면**

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

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. MySQL의 외부 인스턴스에서 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 `REPLICATION CLIENT` 사용자에게 모든 데이터베이스에 대한 `REPLICATION SLAVE` 및 `'repl_user'` 권한을 부여합니다.

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

자세한 내용은 [외부 소스 인스턴스를 사용하여 이진 로그 파일 위치 복제 구성](MySQL.Procedural.Importing.External.Repl.md) 섹션을 참조하세요.

**참고**  
가능하면 읽기 전용 복제본을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 프로시저만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. 이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 주제를 참조하십시오.

`mysql.rds_set_external_master_with_delay`을 호출하여 Amazon RDS DB 인스턴스를 읽기 전용 복제본으로 구성한 후 읽기 전용 복제본에서 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)을 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1master(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)](#mysql_rds_reset_external_master)를 호출하여 읽기 전용 복제본 구성을 제거할 수 있습니다.

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

재해 복구의 경우 이 프로시저를 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 또는 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 저장 프로시저와 함께 사용할 수 있습니다. 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤포워드하려면 `mysql.rds_set_external_master_with_delay` 프로시저를 실행할 수 있습니다. `mysql.rds_start_replication_until` 프로시저에서 복제를 중지한 이후에 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 기본 DB 인스턴스가 되도록 승격할 수 있습니다.

`mysql.rds_rds_start_replication_until_gtid` 프로시저를 사용하려면 GTID를 기반으로 한 복제를 활성화해야 합니다. 재해 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너 뛰려면 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 저장 프로시저를 사용할 수 있습니다. GTID 기반 복제 작업에 대한 자세한 내용은 [GTID 기반 복제 사용](mysql-replication-gtid.md) 섹션을 참조하십시오.

`mysql.rds_set_external_master_with_delay` 프로시저는 다음 버전의 RDS for MySQL에서 사용할 수 있습니다.
+ MySQL 8.0.26 및 8.0 버전 이상
+ 모든 5.6 버전

### 예제
<a name="mysql_rds_set_external_master_with_delay-examples"></a>

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

```
call mysql.rds_set_external_master_with_delay(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1with\$1delay(RDS for MySQL 메이저 버전 8.4 이상)
<a name="mysql_rds_set_external_source_with_delay"></a>

Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본이 되도록 RDS for MySQL DB 인스턴스를 구성하고 지연 복제를 구성합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

### 구문
<a name="mysql_rds_set_external_source_with_delay-syntax"></a>

```
CALL mysql.rds_set_external_source_with_delay (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
);
```

### 파라미터
<a name="mysql_rds_set_external_source_with_delay-parameters"></a>

 *host\$1name*   
소스 데이터베이스 인스턴스가 될 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 호스트 이름 또는 IP 주소입니다.

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

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

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *mysql\$1binary\$1log\$1file\$1name*   
복제 정보를 포함하는 소스 데이터베이스 인스턴스의 이진 로그 이름입니다.

 *mysql\$1binary\$1log\$1file\$1location*   
복제 시 복제 정보를 읽기 시작할 `mysql_binary_log_file_name` 이진 로그 내 위치입니다.  
소스 데이터베이스 인스턴스의 `SHOW MASTER STATUS`를 실행하여 binlog 파일 이름 및 위치를 확인할 수 있습니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`SOURCE_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

 *delay*   
소스 데이터베이스 인스턴스에서 복제를 지연할 최소 시간(초)입니다.  
이 파라미터에 대한 제한은 1일(86,400초)입니다.

### 사용 노트
<a name="mysql_rds_set_external_source_with_delay-usage-notes"></a>

관리 사용자는 `mysql.rds_set_external_source_with_delay` 프로시저를 실행해야 합니다. 이 프로시저는 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본으로 구성되도록 MySQL DB 인스턴스에서 실행해야 합니다.

 `mysql.rds_set_external_source_with_delay`을 실행하기 전에 소스 데이터베이스 인스턴스가 되도록 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스를 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 `replication_user_name` 및 `replication_user_password`의 값을 지정해야 합니다. 이러한 값은 MySQL의 외부 인스턴스에 대해 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 가진 복제 사용자를 나타내야 합니다.

**MySQL의 외부 인스턴스를 소스 데이터베이스 인스턴스로 구성하려면**

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

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'SomePassW0rd'
   ```

1. MySQL의 외부 인스턴스에서 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 `REPLICATION CLIENT` 사용자에게 모든 데이터베이스에 대한 `REPLICATION SLAVE` 및 `'repl_user'` 권한을 부여합니다.

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

자세한 내용은 [외부 소스 인스턴스를 사용하여 이진 로그 파일 위치 복제 구성](MySQL.Procedural.Importing.External.Repl.md) 섹션을 참조하세요.

**참고**  
가능하면 읽기 전용 복제본을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 관리하는 것이 좋습니다. 그렇게 하면 이 복제 및 다른 복제 관련 저장 프로시저만 사용하는 것이 좋습니다. 이러한 방법을 사용하면 Amazon RDS DB 인스턴스 간 더욱 복잡한 복제 토폴로지를 사용할 수 있습니다. 이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. Amazon RDS DB 인스턴스 간 복제 관리에 대한 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 주제를 참조하십시오.

`mysql.rds_set_external_source_with_delay`을 호출하여 Amazon RDS DB 인스턴스를 읽기 전용 복제본으로 구성한 후 읽기 전용 복제본에서 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)을 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1source(RDS for MySQL 메이저 버전 8.4 이상)](#mysql_rds_reset_external_source)를 호출하여 읽기 전용 복제본 구성을 제거할 수 있습니다.

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

재해 복구의 경우 이 프로시저를 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 또는 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 저장 프로시저와 함께 사용할 수 있습니다. 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤포워드하려면 `mysql.rds_set_external_source_with_delay` 프로시저를 실행할 수 있습니다. `mysql.rds_start_replication_until` 프로시저에서 복제를 중지한 이후에 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 기본 DB 인스턴스가 되도록 승격할 수 있습니다.

`mysql.rds_rds_start_replication_until_gtid` 프로시저를 사용하려면 GTID를 기반으로 한 복제를 활성화해야 합니다. 재해 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너 뛰려면 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 저장 프로시저를 사용할 수 있습니다. GTID 기반 복제 작업에 대한 자세한 내용은 [GTID 기반 복제 사용](mysql-replication-gtid.md) 섹션을 참조하십시오.

### 예제:
<a name="mysql_rds_set_external_master_with_delay-examples"></a>

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

```
call mysql.rds_set_external_source_with_delay(
  'Externaldb.some.com',
  3306,
  'repl_user',
  'SomePassW0rd',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600);
```

## mysql.rds\$1set\$1external\$1source\$1gtid\$1purged
<a name="mysql_rds_set_external_source_gtid_purged"></a>

외부 소스의 지정된 GTID 범위를 사용하여 [gtid\$1purged](https://dev.mysql.com/doc/refman/8.0/en/replication-options-gtids.html#sysvar_gtid_purged) 시스템 변수를 설정합니다. `gtid_purged` 값은 자동 위치 지정을 사용하여 복제를 재개하도록 GTID 기반 복제를 구성하는 데 필요합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하십시오.

### 구문
<a name="mysql_rds_set_external_source_gtid_purged-syntax"></a>

 

```
CALL mysql.rds_set_external_source_gtid_purged(
  server_uuid
  , start_pos
  , end_pos
);
```

### 파라미터
<a name="mysql_rds_set_external_source_gtid_purged-parameters"></a>

 *server\$1uuid*   
GTID 범위를 가져오는 외부 서버의 범용 고유 식별자(UUID)입니다.

 *start\$1pos*   
설정할 GTID 범위의 시작 위치입니다.

 *end\$1pos*   
설정할 GTID 범위의 종료 위치입니다.

### 사용 노트
<a name="mysql_rds_set_external_source_gtid_purged-usage-notes"></a>

`mysql.rds_set_external_source_gtid_purged` 프로시저는 MySQL 8.0.37 이상의 8.0 버전에서만 사용할 수 있습니다.

[mysql.rds\$1set\$1external\$1master\$1with\$1auto\$1position(RDS for MySQL 메이저 버전 8.0 이하)](#mysql_rds_set_external_master_with_auto_position), [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position(RDS for MySQL 메이저 버전 8.4 이상)](#mysql_rds_set_external_source_with_auto_position) 또는 [mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel](mysql-stored-proc-multi-source-replication.md#mysql_rds_set_external_source_with_auto_position_for_channel)을 직접 호출하기 전에 `mysql.rds_set_external_source_gtid_purged`를 직접 호출합니다.

`mysql.rds_set_external_source_gtid_purged` 직접 호출 전에 데이터베이스의 모든 활성 복제 채널을 중지해야 합니다. 채널 상태를 확인하려면 `SHOW REPLICA STATUS` MySQL 문을 사용합니다. 채널에서 복제를 중지하려면 [mysql.rds\$1stop\$1replication\$1for\$1channel](mysql-stored-proc-multi-source-replication.md#mysql_rds_stop_replication_for_channel)을 직접 호출합니다.

지정하는 GTID 범위는 기존 `GTID_PURGED` 값의 상위 집합이어야 합니다. 이 저장 프로시저는 `GTID_PURGED` 값을 설정하기 전에 다음 값을 확인합니다.
+ `server_uuid`는 유효합니다.
+ `start_pos` 값이 `0`보다 크거나 `end_pos`보다 작습니다.
+ `end_pos` 값이 `start_pos`보다 크거나 같습니다.

외부 서버의 GTID 집합에 여러 범위의 값이 포함된 경우 다른 GTID 집합 값을 사용하여 프로시저를 여러 번 직접 호출해 보세요.

`mysql.rds_set_external_source_gtid_purged`를 직접 호출하면 Amazon RDS는 `set gtid_purged`의 시간, 사용자 및 작업을 `mysql.rds_history` 테이블에 기록합니다.

복제에 사용하는 백업의 `gtid_purged` 값을 적절하게 설정하지 않으면 복제 프로세스 중에 트랜잭션이 누락되거나 중복될 수 있습니다. 다음 단계를 수행하여 올바른 `gtid_purged` 값을 설정합니다.

**복제본에 gtid\$1purged 값을 설정하려면**

1. 복제 시작 지점으로 사용할 시점 또는 특정 백업 파일을 결정합니다. 이는 논리적 백업(mysqldump 파일) 또는 물리적 백업(Amazon RDS 스냅샷)일 수 있습니다.

1. `gtid_executed` 값을 결정합니다. 이 값은 서버에서 커밋된 모든 GTID 집합을 나타냅니다. 이 값을 검색하려면 소스 인스턴스에서 다음 중 하나를 수행합니다.
   + 백업을 수행할 때 SQL 문(`SELECT @@GLOBAL.GTID_EXECUTED;`)을 실행합니다.
   + 관련 옵션이 해당 백업 유틸리티에 포함되어 있는 경우 백업 파일에서 값을 추출합니다. 자세한 내용은 MySQL 설명서의 [set-gtid-purged](https://dev.mysql.com/doc/refman/8.4/en/mysqldump.html#option_mysqldump_set-gtid-purged) 옵션을 참조하세요.

1. `mysql.rds_set_external_source_gtid_purged`에 대한 직접 호출에 사용할 `gtid_purged` 값을 결정합니다. `gtid_purged` 값에는 소스 인스턴스에서 실행되어 복제에 더 이상 필요하지 않은 GTID가 모두 포함되어야 합니다. 따라서 `gtid_purged` 값은 이전 단계에서 검색한 `gtid_executed` 값의 하위 집합이어야 합니다.

   `gtid_purged` 값을 확인하려면 백업에 포함되지 않아 복제에 더 이상 필요하지 않은 GTID를 식별합니다. 바이너리 로그를 분석하거나 mysqlbinlog와 같은 도구를 사용하여 바이너리 로그에서 제거된 GTID를 찾으면 됩니다.

   또는 백업 지점까지의 모든 바이너리 로그를 포함하는 일관된 백업이 있는 경우 백업 지점의 `gtid_executed` 값과 동일하게 `gtid_purged` 값을 설정할 수 있습니다.

1. 백업과 일치하는 적절한 `gtid_purged` 값을 결정한 후 RDS for MySQL DB 인스턴스에서 `mysql.rds_set_external_source_gtid_purged` 저장 프로시저를 직접 호출하여 값을 설정합니다.

### 예제
<a name="mysql_rds_set_external_source_gtid_purged-examples"></a>

MySQL DB 인스턴스에서 실행하는 경우 다음 예제에서는 UUID가 `12345678-abcd-1234-efgh-123456789abc`, 시작 위치가 `1`, 종료 위치가 `100`인 외부 MySQL 서버의 GTID 범위를 설정합니다. 결과 GTID 값은 `+12345678-abcd-1234-efgh-123456789abc:1-100`으로 설정됩니다.

```
CALL mysql.rds_set_external_source_gtid_purged('12345678-abcd-1234-efgh-123456789abc', 1, 100);
```

## mysql.rds\$1set\$1master\$1auto\$1position(RDS for MySQL 메이저 버전 8.0 이하)
<a name="mysql_rds_set_master_auto_position"></a>

복제 모드를 바이너리 로그 파일 위치 또는 전역 트랜잭션 식별자(GTID)를 기반으로 설정합니다.

### 구문
<a name="mysql_rds_set_master_auto_position-syntax"></a>

 

```
CALL mysql.rds_set_master_auto_position (
auto_position_mode
);
```

### 파라미터
<a name="mysql_rds_set_master_auto_position-parameters"></a>

 *auto\$1position\$1mode*   
로그 파일 위치 복제 또는 GTID를 기반으로 하는 복제를 사용할지 여부를 나타내는 값:  
+ `0` – 바이너리 로그 파일 위치를 기반으로 한 복제 방법을 사용합니다. 기본값은 `0`입니다.
+ `1` – GTID 기반 복제 방법을 사용합니다.

### 사용 노트
<a name="mysql_rds_set_master_auto_position-usage-notes"></a>

마스터 사용자는 `mysql.rds_set_master_auto_position` 프로시저를 실행해야 합니다.

이 프로시저는 모든 RDS for MySQL 5.7 버전 및 RDS for MySQL 8.0.26 이상의 8.0 버전에서 지원됩니다.

## mysql.rds\$1set\$1source\$1auto\$1position(RDS for MySQL 메이저 버전 8.4 이상)
<a name="mysql_rds_set_source_auto_position"></a>

복제 모드를 바이너리 로그 파일 위치 또는 전역 트랜잭션 식별자(GTID)를 기반으로 설정합니다.

### 구문
<a name="mysql_rds_set_source_auto_position-syntax"></a>

```
CALL mysql.rds_set_source_auto_position (auto_position_mode);
```

### 파라미터
<a name="mysql_rds_set_source_auto_position-parameters"></a>

*auto\$1position\$1mode*  
로그 파일 위치 복제 또는 GTID를 기반으로 하는 복제를 사용할지 여부를 나타내는 값:  
+  `0` – 바이너리 로그 파일 위치를 기반으로 한 복제 방법을 사용합니다. 기본값은 `0`입니다.
+  `1` – GTID 기반 복제 방법을 사용합니다.

### 사용 노트
<a name="mysql_rds_set_source_auto_position-usage-notes"></a>

관리 사용자는 `mysql.rds_set_source_auto_position` 프로시저를 실행해야 합니다.

## mysql.rds\$1set\$1source\$1delay
<a name="mysql_rds_set_source_delay"></a>

소스 데이터베이스 인스턴스에서 현재 읽기 전용 복제본으로의 복제를 지연할 최소 시간(초)을 설정합니다. 읽기 전용 복제본에 연결된 경우에 이 프로시저를 사용하여 소스 데이터베이스 인스턴스에서 복제를 지연합니다.

### 구문
<a name="mysql_rds_set_source_delay-syntax"></a>

```
CALL mysql.rds_set_source_delay(
delay
);
```

### 파라미터
<a name="mysql_rds_set_source_delay-parameters"></a>

 *delay*   
소스 데이터베이스 인스턴스에서 복제를 지연할 최소 시간(초)입니다.  
이 파라미터에 대한 제한은 1일(86,400초)입니다.

### 사용 노트
<a name="mysql_rds_set_source_delay-usage-notes"></a>

마스터 사용자는 `mysql.rds_set_source_delay` 프로시저를 실행해야 합니다.

재해 복구의 경우 이 프로시저를 [mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 저장 프로시저 또는 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 저장 프로시저와 함께 사용할 수 있습니다. 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤포워드하려면 `mysql.rds_set_source_delay` 프로시저를 실행할 수 있습니다. `mysql.rds_start_replication_until` 또는 `mysql.rds_start_replication_until_gtid` 프로시저에서 복제를 중지한 이후에 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 기본 DB 인스턴스가 되도록 승격할 수 있습니다.

`mysql.rds_rds_start_replication_until_gtid` 프로시저를 사용하려면 GTID를 기반으로 한 복제를 활성화해야 합니다. 재해 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너 뛰려면 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 저장 프로시저를 사용할 수 있습니다. GTID 기반 복제에 대한 자세한 내용은 [GTID 기반 복제 사용](mysql-replication-gtid.md) 섹션을 참조하십시오.

`mysql.rds_set_source_delay` 프로시저는 다음 버전의 RDS for MySQL에서 사용할 수 있습니다.
+ 모든 RDS for MySQL 8.4 버전
+ MySQL 8.0.26 및 8.0 버전 이상
+ 모든 5.6 버전

### 예제
<a name="mysql_rds_set_source_delay-examples"></a>

소스 데이터베이스 인스턴스에서 현재 읽기 전용 복제본으로의 복제를 최소 1시간(3,600초) 동안 지연하려면 다음 파라미터를 사용하여 `mysql.rds_set_source_delay`를 호출하면 됩니다.

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

## mysql.rds\$1skip\$1repl\$1error
<a name="mysql_rds_skip_repl_error"></a>

MySQL DB 읽기 전용 복제본의 복제 오류를 건너뛰고 삭제합니다.

### 구문
<a name="mysql_rds_skip_repl_error-syntax"></a>

 

```
CALL mysql.rds_skip_repl_error;
```

### 사용 노트
<a name="mysql_rds_skip_repl_error-usage-notes"></a>

마스터 사용자는 읽기 전용 복제본에서 `mysql.rds_skip_repl_error` 프로시저를 실행해야 합니다. 이 프로시저에 대한 자세한 내용은 [mysql.rds\$1skip\$1repl\$1error 프로시저 호출](Appendix.MySQL.CommonDBATasks.SkipError.md#Appendix.MySQL.CommonDBATasks.SkipError.procedure)를 참조하세요.

오류가 있는지 여부를 판별하려면 MySQL `SHOW REPLICA STATUS\G` 명령을 실행합니다. 중대한 복제 오류가 아닌 경우 `mysql.rds_skip_repl_error`를 사용하여 오류를 건너뛸 수 있습니다. 오류가 여러 개인 경우 `mysql.rds_skip_repl_error`는 첫 번째 오류를 삭제한 후 다른 오류가 있음을 경고합니다. `SHOW REPLICA STATUS\G`를 사용하여 다음 오류에 대한 적합한 조치를 결정할 수 있습니다. 반환된 값에 대한 자세한 내용은 MySQL 설명서의 [SHOW SLAVE STATUS 문](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html)을 참조하세요.

Amazon RDS의 복제 오류 해결에 대한 자세한 내용은 [MySQL 읽기 전용 복제본의 문제 해결](USER_ReadRepl.Troubleshooting.md) 주제를 참조하십시오.

#### 복제 중지 오류
<a name="skip_repl_error.stopped-error"></a>

`mysql.rds_skip_repl_error` 프로시저를 호출할 때 복제본이 중단되었거나 사용 중지되었다는 오류 메시지가 표시될 수 있습니다.

읽기 전용 복제본 대신 기본 인스턴스에서 프로시저를 실행하면 이 오류 메시지가 나타납니다. 이 프로시저가 작동하려면 읽기 전용 복제본에서 이 프로시저를 실행해야 합니다.

이 오류 메시지는 읽기 전용 복제본에서 프로시저를 실행하지만 복제를 성공적으로 다시 시작할 수 없는 경우에도 나타날 수 있습니다.

많은 수의 오류를 건너뛰어야 하는 경우, 복제 지연이 바이너리 로그(binlog) 파일의 기본값 보관 기간 이상으로 늘어날 수 있습니다. 이 경우 binlog 파일이 읽기 전용 복제본에서 재생되기 전에 지워지기 때문에 치명적 오류가 발생할 수 있습니다. 이 제거는 복제를 중지시키며, 복제 오류를 건너뛰기 위해 더 이상 `mysql.rds_skip_repl_error` 명령을 호출할 수 없습니다.

이 문제는 소스 데이터베이스 인스턴스에서 binlog 파일이 보관되는 시간을 늘려서 완화할 수 있습니다. binlog 보관 시간을 늘린 후에 복제를 재시작하고 필요에 따라 `mysql.rds_skip_repl_error` 명령을 호출할 수 있습니다.

binlog 보관 기간을 설정하려면 [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration) 프로시저를 사용하여 `'binlog retention hours'` 구성 파라미터와 DB 클러스터에 binlog 파일을 보관할 시간을 함께 지정하십시오. 다음 예제에서는 binlog 파일의 보관 기간을 48시간으로 설정합니다.

```
CALL mysql.rds_set_configuration('binlog retention hours', 48);
```

## mysql.rds\$1start\$1replication
<a name="mysql_rds_start_replication"></a>

RDS for MySQL DB 인스턴스에서 복제를 시작합니다.

**참고**  
[mysql.rds\$1start\$1replication\$1until](#mysql_rds_start_replication_until) 또는 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 저장 프로시저를 사용하여 RDS for MySQL DB 인스턴스에서 복제를 시작하고 지정된 바이너리 로그 파일 위치에서 복제를 중지할 수 있습니다.

### 구문
<a name="mysql_rds_start_replication-syntax"></a>

 

```
CALL mysql.rds_start_replication;
```

### 사용 노트
<a name="mysql_rds_start_replication-usage-notes"></a>

마스터 사용자는 `mysql.rds_start_replication` 프로시저를 실행해야 합니다.

Amazon RDS 외부에서 실행 중인 MySQL 인스턴스에서 데이터를 가져오려면 [mysql.rds\$1set\$1external\$1master(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)](#mysql_rds_set_external_master) 또는 [mysql.rds\$1set\$1external\$1source(RDS for MySQL 메이저 버전 8.4 이상)](#mysql_rds_set_external_source)를 직접 호출하여 복제 구성을 빌드한 다음, 읽기 전용 복제본에서 `mysql.rds_start_replication`을 직접 호출하여 복제 프로세스를 시작합니다. 자세한 내용은 [Amazon RDS for MySQL DB 인스턴스로 백업 복원](MySQL.Procedural.Importing.md) 섹션을 참조하세요.

Amazon RDS 외부의 MySQL 인스턴스로 데이터를 내보내려면 읽기 전용 복제본에서 `mysql.rds_start_replication` 및 `mysql.rds_stop_replication`을 호출하여 바이너리 로그 삭제 등의 몇 가지 복제 작업을 제어합니다. 자세한 내용은 [복제를 사용하여 MySQL DB 인스턴스에서 데이터 내보내기](MySQL.Procedural.Exporting.NonRDSRepl.md) 섹션을 참조하세요.

읽기 전용 복제본에서 `mysql.rds_start_replication`을 호출하여 이전에 `mysql.rds_stop_replication`을 호출하여 중지한 복제 프로세스를 재시작할 수도 있습니다. 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 섹션을 참조하세요.

## mysql.rds\$1start\$1replication\$1until
<a name="mysql_rds_start_replication_until"></a>

RDS for MySQL DB 인스턴스에서 복제를 시작하고 지정된 바이너리 로그 파일 위치에서 복제를 중지합니다.

### 구문
<a name="mysql_rds_start_replication_until-syntax"></a>

 

```
CALL mysql.rds_start_replication_until (
replication_log_file
  , replication_stop_point
);
```

### 파라미터
<a name="mysql_rds_start_replication_until-parameters"></a>

 *replication\$1log\$1file*   
복제 정보를 포함하는 소스 데이터베이스 인스턴스의 이진 로그 이름입니다.

 *replication\$1stop\$1point *   
복제를 중지할 `replication_log_file` 바이너리 로그 내 위치입니다.

### 사용 노트
<a name="mysql_rds_start_replication_until-usage-notes"></a>

마스터 사용자는 `mysql.rds_start_replication_until` 프로시저를 실행해야 합니다.

`mysql.rds_start_replication_until` 프로시저는 다음 버전의 RDS for MySQL에서 사용할 수 있습니다.
+ 모든 RDS for MySQL 8.4 버전
+ MySQL 8.0.26 및 8.0 버전 이상
+ 모든 5.6 버전

이 프로시저는 지연 복제에서 재해 복구를 위해 사용할 있습니다. 지연된 복제를 구성한 경우 이 프로시저를 사용하여 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤포워드할 수 있습니다. 이 프로시저에서 복제를 중지한 이후에 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 기본 DB 인스턴스가 되도록 승격할 수 있습니다.

다음 저장 프로시저를 사용하여 지연 복제를 구성할 수 있습니다.
+ [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1delay(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)](#mysql_rds_set_external_master_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay(RDS for MySQL 메이저 버전 8.4 이상)](#mysql_rds_set_external_source_with_delay)
+ [mysql.rds\$1set\$1source\$1delay](#mysql_rds_set_source_delay)

`replication_log_file` 파라미터에 지정된 파일 이름은 소스 데이터베이스 인스턴스 binlog 파일 이름과 일치해야 합니다.

`replication_stop_point` 파라미터가 과거에 해당하는 중지 위치를 지정하는 경우 복제가 즉시 중지됩니다.

### 예제
<a name="mysql_rds_start_replication_until-examples"></a>

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

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

## mysql.rds\$1stop\$1replication
<a name="mysql_rds_stop_replication"></a>

MySQL DB 인스턴스에서 복제를 중지합니다.

### 구문
<a name="mysql_rds_stop_replication-syntax"></a>

 

```
CALL mysql.rds_stop_replication;
```

### 사용 노트
<a name="mysql_rds_stop_replication-usage-notes"></a>

마스터 사용자는 `mysql.rds_stop_replication` 프로시저를 실행해야 합니다.

Amazon RDS 외부에서 실행 중인 MySQL 인스턴스에서 데이터를 가져오도록 복제를 구성하는 경우 가져오기가 완료된 후 읽기 전용 복제본에서 `mysql.rds_stop_replication`을 호출하여 복제 프로세스를 중지합니다. 자세한 내용은 [Amazon RDS for MySQL DB 인스턴스로 백업 복원](MySQL.Procedural.Importing.md) 섹션을 참조하세요.

Amazon RDS 외부의 MySQL 인스턴스로 데이터를 내보내도록 복제를 구성할 경우 읽기 전용 복제본에서 `mysql.rds_start_replication` 및 `mysql.rds_stop_replication`을 호출하여 이진 로그 삭제 등의 몇 가지 복제 작업을 제어합니다. 자세한 내용은 [복제를 사용하여 MySQL DB 인스턴스에서 데이터 내보내기](MySQL.Procedural.Exporting.NonRDSRepl.md) 섹션을 참조하세요.

`mysql.rds_stop_replication`을 사용하여 두 Amazon RDS DB 인스턴스 간 복제를 중지할 수도 있습니다. 일반적으로 읽기 전용 복제본에서 대규모 인덱스 생성과 같이 읽기 전용 복제본에서 장기 실행 작업을 수행하려는 경우 복제를 중지합니다. 읽기 전용 복제본에서 [mysql.rds\$1start\$1replication](#mysql_rds_start_replication)을 호출하여 중지한 복제 프로세스를 재시작할 수 있습니다. 자세한 내용은 [DB 인스턴스 읽기 전용 복제본 작업](USER_ReadRepl.md) 섹션을 참조하세요.

# 세션 또는 쿼리 종료
<a name="mysql-stored-proc-ending"></a>

다음 저장 프로시저는 세션 또는 쿼리를 종료합니다.

**Topics**
+ [

## mysql.rds\$1kill
](#mysql_rds_kill)
+ [

## mysql.rds\$1kill\$1query
](#mysql_rds_kill_query)

## mysql.rds\$1kill
<a name="mysql_rds_kill"></a>

MySQL Server와의 연결을 종료합니다.

### 구문
<a name="mysql_rds_kill-syntax"></a>

```
CALL mysql.rds_kill(processID);
```

### 파라미터
<a name="mysql_rds_kill-parameters"></a>

 *processID*   
종료할 연결 스레드의 ID입니다.

### 사용 노트
<a name="mysql_rds_kill-usage-notes"></a>

MySQL Server에 대한 각 연결은 별개의 스레드로 실행됩니다. 연결을 종료하려면 `mysql.rds_kill` 프로시저를 사용하여 해당 연결의 스레드 ID를 전달합니다. 스레드 ID를 확인하려면 MySQL [SHOW PROCESSLIST](https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html) 명령을 사용합니다.

제한 사항에 대한 자세한 내용은 [MySQL 저장 프로시저 제한 사항](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.KnownIssuesAndLimitations.KillProcedures) 섹션을 참조하세요.

### 예시
<a name="mysql_rds_kill-examples"></a>

다음 예제는 스레드 ID가 4243인 연결을 종료합니다.

```
CALL mysql.rds_kill(4243);
```

## mysql.rds\$1kill\$1query
<a name="mysql_rds_kill_query"></a>

MySQL Server에서 실행 중인 쿼리를 종료합니다.

### 구문
<a name="mysql_rds_kill_query-syntax"></a>

```
CALL mysql.rds_kill_query(processID);
```

### 파라미터
<a name="mysql_rds_kill_query-parameters"></a>

 *processID*   
종료할 쿼리를 실행 중인 프로세스 또는 스레드의 ID입니다.

### 사용 노트
<a name="mysql_rds_kill_query-usage-notes"></a>

MySQL Server에서 실행 중인 쿼리를 중지하려면 `mysql_rds_kill_query` 프로시저를 사용하여 해당 쿼리를 실행 중인 스레드의 연결 ID를 전달합니다. 그러면 프로시저가 연결을 종료합니다.

ID를 확인하려면 MySQL [INFORMATION\$1SCHEMA PROCESSLIST 테이블](https://dev.mysql.com/doc/refman/8.0/en/information-schema-processlist-table.html)을 쿼리하거나 MySQL [SHOW PROCESSLIST](https://dev.mysql.com/doc/refman/8.0/en/show-processlist.html) 명령을 사용합니다. `SHOW PROCESSLIST` 또는 `SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST`에서 가져온 ID 열의 값은 *processID*입니다.

제한 사항에 대한 자세한 내용은 [MySQL 저장 프로시저 제한 사항](MySQL.KnownIssuesAndLimitations.md#MySQL.Concepts.KnownIssuesAndLimitations.KillProcedures) 섹션을 참조하세요.

### 예시
<a name="mysql_rds_kill_query-examples"></a>

다음 예시는 쿼리 스레드 ID가 230040인 쿼리를 중지합니다.

```
CALL mysql.rds_kill_query(230040);
```

# 활성-활성 클러스터
<a name="mysql-stored-proc-active-active-clusters"></a>

다음 저장 프로시저는 RDS for MySQL의 활성-활성 클러스터를 설정하고 관리합니다. 자세한 내용은 [RDS for MySQL 액티브-액티브 클러스터 구성](mysql-active-active-clusters.md) 단원을 참조하십시오.

이러한 저장 프로시저는 다음 버전을 실행하는 RDS for MySQL DB 인스턴스에서만 사용할 수 있습니다.
+ 모든 MySQL 8.4 버전
+ MySQL 8.0.35 이상 마이너 버전

**Topics**
+ [

## mysql.rds\$1group\$1replication\$1advance\$1gtid
](#mysql_rds_group_replication_advance_gtid)
+ [

## mysql.rds\$1group\$1replication\$1create\$1user
](#mysql_rds_group_replication_create_user)
+ [

## mysql.rds\$1group\$1replication\$1set\$1recovery\$1channel
](#mysql_rds_group_replication_set_recovery_channel)
+ [

## mysql.rds\$1group\$1replication\$1start
](#mysql_rds_group_replication_start)
+ [

## mysql.rds\$1group\$1replication\$1stop
](#mysql_rds_group_replication_stop)

## mysql.rds\$1group\$1replication\$1advance\$1gtid
<a name="mysql_rds_group_replication_advance_gtid"></a>

현재 DB 인스턴스에 자리 표시자 GTID를 생성합니다.

### 구문
<a name="mysql_rds_group_replication_advance_gtid-syntax"></a>

```
CALL mysql.rds_group_replication_advance_gtid(
begin_id
, end_id
, server_uuid
);
```

### 파라미터
<a name="mysql_rds_group_replication_advance_gtid-parameters"></a>

 *begin\$1id*   
생성할 시작 트랜잭션 ID입니다.

 *end\$1id*   
생성할 종료 트랜잭션 ID입니다.

 *begin\$1id*   
생성할 트랜잭션을 위한 `group_replication_group_name`입니다. `group_replication_group_name`은 DB 인스턴스와 연결된 DB 파라미터 그룹에 UUID로 지정됩니다.

### 사용 노트
<a name="mysql_rds_group_replication_advance_gtid-usage-notes"></a>

활성-활성 클러스터에서 DB 인스턴스가 그룹에 가입하려면 새 DB 인스턴스에서 실행되는 모든 GTID 트랜잭션이 클러스터의 다른 구성원에 존재해야 합니다. 드문 경우지만, 인스턴스를 그룹에 조인하기 전에 트랜잭션을 실행하면 새 DB 인스턴스에서 더 많은 트랜잭션이 발생할 수 있습니다. 이 경우 기존 트랜잭션을 제거할 수는 없지만 이 프로시저를 사용하여 그룹의 다른 DB 인스턴스에 해당하는 자리 표시자 GTID를 만들 수 있습니다. 그러기 전에 트랜잭션이 **복제된 데이터에 영향을 주지 않는지 확인하세요.

이 프로시저를 직접 호출하면 `server_uuid:begin_id-end_id`의 GTID 트랜잭션이 빈 콘텐츠와 함께 생성됩니다. 복제 문제를 방지하려면 다른 조건에서는 이 프로시저를 사용하지 마세요.

**중요**  
활성-활성 클러스터가 정상적으로 작동할 때는 이 프로시저를 직접 호출하지 마세요. 생성 중인 트랜잭션으로 인해 발생할 수 있는 결과를 이해하지 못하면 이 프로시저를 직접 호출하지 마세요. 이 프로시저를 직접 호출하면 데이터가 일치하지 않을 수 있습니다.

### 예제
<a name="mysql_rds_group_replication_advance_gtid-examples"></a>

다음 예제는 현재 DB 인스턴스에 자리 표시자 GTID를 만듭니다.

```
CALL mysql.rds_group_replication_advance_gtid(5, 6, '11111111-2222-3333-4444-555555555555');
```

## mysql.rds\$1group\$1replication\$1create\$1user
<a name="mysql_rds_group_replication_create_user"></a>

DB 인스턴스의 그룹 복제를 위한 복제 사용자 `rdsgrprepladmin`를 생성합니다.

### 구문
<a name="mysql_rds_group_replication_create_user-syntax"></a>

```
CALL mysql.rds_group_replication_create_user(
replication_user_password
);
```

### 파라미터
<a name="mysql_rds_group_replication_create_user-parameters"></a>

 *replication\$1user\$1password*   
복제 사용자 `rdsgrprepladmin`의 암호입니다.

### 사용 노트
<a name="mysql_rds_group_replication_create_user-usage-notes"></a>
+ 활성-활성 클러스터의 모든 DB 인스턴스에서 복제 사용자 `rdsgrprepladmin`의 암호가 동일해야 합니다.
+ `rdsgrprepladmin` 사용자 이름은 그룹 복제 연결용으로 예약되어 있습니다. 마스터 사용자를 포함한 다른 사용자는 이 사용자 이름을 가질 수 없습니다.

### 예제
<a name="mysql_rds_group_replication_create_user-examples"></a>

다음 예제는 DB 인스턴스에서 그룹 복제를 위한 복제 사용자 `rdsgrprepladmin`를 생성합니다.

```
CALL mysql.rds_group_replication_create_user('password');
```

## mysql.rds\$1group\$1replication\$1set\$1recovery\$1channel
<a name="mysql_rds_group_replication_set_recovery_channel"></a>

활성-활성 클러스터의 `group_replication_recovery` 채널을 설정합니다. 이 프로시저에서는 예약된 `rdsgrprepladmin` 사용자를 사용하여 채널을 구성합니다.

### 구문
<a name="mysql_rds_group_replication_set_recovery_channel-syntax"></a>

```
CALL mysql.rds_group_replication_set_recovery_channel(
replication_user_password);
```

### 파라미터
<a name="mysql_rds_group_replication_set_recovery_channel-parameters"></a>

 *replication\$1user\$1password*   
복제 사용자 `rdsgrprepladmin`의 암호입니다.

### 사용 노트
<a name="mysql_rds_group_replication_set_recovery_channel-usage-notes"></a>

활성-활성 클러스터의 모든 DB 인스턴스에서 복제 사용자 `rdsgrprepladmin`의 암호가 동일해야 합니다. `mysql.rds_group_replication_create_user`를 직접 호출하면 암호가 지정됩니다.

### 예제
<a name="mysql_rds_group_replication_set_recovery_channel-examples"></a>

다음 예에서는 활성-활성 클러스터의 `group_replication_recovery` 채널을 설정합니다.

```
CALL mysql.rds_group_replication_set_recovery_channel('password');
```

## mysql.rds\$1group\$1replication\$1start
<a name="mysql_rds_group_replication_start"></a>

현재 DB 인스턴스에서 그룹 복제를 시작합니다.

### 구문
<a name="mysql_rds_group_replication_start-syntax"></a>

```
CALL mysql.rds_group_replication_start(
bootstrap
);
```

### 파라미터
<a name="mysql_rds_group_replication_start-parameters"></a>

 *부트스트랩*   
새 그룹을 초기화할지 기존 그룹에 가입할지를 지정하는 값입니다. `1`은 현재 DB 인스턴스로 새 그룹을 초기화합니다. `0`은 DB 인스턴스와 연결된 DB 파라미터 그룹의 `group_replication_group_seeds` 파라미터에 정의된 엔드포인트에 연결하여 현재 DB 인스턴스를 기존 그룹에 조인합니다.

### 예제
<a name="mysql_rds_group_replication_start-examples"></a>

다음 예제는 현재 DB 인스턴스로 새 그룹을 초기화합니다.

```
CALL mysql.rds_group_replication_start(1);
```

## mysql.rds\$1group\$1replication\$1stop
<a name="mysql_rds_group_replication_stop"></a>

현재 DB 인스턴스에서 그룹 복제를 중지합니다.

### 구문
<a name="mysql_rds_group_replication_stop-syntax"></a>

```
CALL mysql.rds_group_replication_stop();
```

### 사용 노트
<a name="mysql_rds_group_replication_stop-usage-notes"></a>

DB 인스턴스에서 복제를 중지해도 활성-활성 클러스터의 다른 DB 인스턴스에는 영향을 주지 않습니다.

# 다중 소스 복제 관리
<a name="mysql-stored-proc-multi-source-replication"></a>

다음 저장 프로시저는 RDS for MySQL의 다중 소스 복제본에서 복제 채널을 설정하고 관리합니다. 자세한 내용은 [Amazon RDS for MySQL용 다중 소스 복제 구성](mysql-multi-source-replication.md) 단원을 참조하십시오.

이러한 저장 프로시저는 다음 엔진 버전을 실행하는 RDS for MySQL DB 인스턴스에서만 사용할 수 있습니다.
+ 모든 8.4 버전
+ 8.0.35 이상 마이너 버전
+ 5.7.44 이상 마이너 버전

`caching_sha2_passwword`로 구성된 복제 사용자로 복제를 관리하기 위해 저장 프로시저를 사용하는 경우, `SOURCE_SSL=1`을 지정하여 TLS를 구성해야 합니다. `caching_sha2_password`는 RDS for MySQL 8.4의 기본 인증 플러그인입니다.

**참고**  
이 설명서에서는 소스 DB 인스턴스를 RDS for MySQL DB 인스턴스라고 하지만, 이러한 프로시저는 Amazon RDS 외부에서 실행되는 MySQL 인스턴스에도 적용됩니다.

**Topics**
+ [

## mysql.rds\$1next\$1source\$1log\$1for\$1channel
](#mysql_rds_next_source_log_for_channel)
+ [

## mysql.rds\$1reset\$1external\$1source\$1for\$1channel
](#mysql_rds_reset_external_source_for_channel)
+ [

## mysql.rds\$1set\$1external\$1source\$1for\$1channel
](#mysql_rds_set_external_source_for_channel)
+ [

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel
](#mysql_rds_set_external_source_with_auto_position_for_channel)
+ [

## mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel
](#mysql_rds_set_external_source_with_delay_for_channel)
+ [

## mysql.rds\$1set\$1source\$1auto\$1position\$1for\$1channel
](#mysql_rds_set_source_auto_position_for_channel)
+ [

## mysql.rds\$1set\$1source\$1delay\$1for\$1channel
](#mysql_rds_set_source_delay_for_channel)
+ [

## mysql.rds\$1skip\$1repl\$1error\$1for\$1channel
](#mysql_rds_skip_repl_error_for_channel)
+ [

## mysql.rds\$1start\$1replication\$1for\$1channel
](#mysql_rds_start_replication_for_channel)
+ [

## mysql.rds\$1start\$1replication\$1until\$1for\$1channel
](#mysql_rds_start_replication_until_for_channel)
+ [

## mysql.rds\$1start\$1replication\$1until\$1gtid\$1for\$1channel
](#mysql_rds_start_replication_until_gtid_for_channel)
+ [

## mysql.rds\$1stop\$1replication\$1for\$1channel
](#mysql_rds_stop_replication_for_channel)

## mysql.rds\$1next\$1source\$1log\$1for\$1channel
<a name="mysql_rds_next_source_log_for_channel"></a>

소스 DB 인스턴스 로그 위치를 채널에 대한 소스 DB 인스턴스에서 다음 이진 로그의 시작으로 변경합니다. 다중 소스 복제본에 대한 복제 I/O 오류 1236을 수신 중일 경우에만 이 프로시저를 사용하세요.

### 구문
<a name="mysql_rds_next_source_log_for_channel-syntax"></a>

 

```
CALL mysql.rds_next_source_log_for_channel(
curr_master_log,
channel_name           
);
```

### 파라미터
<a name="mysql_rds_next_source_log_for_channel-parameters"></a>

 *curr\$1master\$1log*  
현재 소스 로그 파일의 인덱스입니다. 예를 들어, 현재 파일의 이름이 `mysql-bin-changelog.012345`이면 인덱스는 12345입니다. 현재 소스 로그 파일 이름을 확인하려면 `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'` 명령을 실행하고 `Source_Log_File` 필드를 봅니다.

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_next_source_log_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_next_source_log_for_channel` 프로시저를 실행해야 합니다. 예를 들어 IO\$1Thread 오류가 있는 경우 이 프로시저를 사용하여 현재 바이너리 로그 파일의 모든 이벤트를 건너뛰고 `channel_name`에서 지정된 채널의 다음 바이너리 로그 파일에서 복제를 재개할 수 있습니다.

### 예제
<a name="mysql_rds_group_replication_advance_gtid-examples"></a>

다중 소스 복제본의 채널에서 복제가 실패했다고 가정해 보겠습니다. 다중 소스 복제본에서 `SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G`를 실행하면 다음 결과가 반환됩니다.

```
mysql> SHOW REPLICA STATUS FOR CHANNEL 'channel_1'\G
*************************** 1. row ***************************
             Replica_IO_State: Waiting for source to send event
                  Source_Host: myhost.XXXXXXXXXXXXXXX.rr-rrrr-1.rds.amazonaws.com
                  Source_User: ReplicationUser
                  Source_Port: 3306
                Connect_Retry: 60
              Source_Log_File: mysql-bin-changelog.012345
          Read_Source_Log_Pos: 1219393
               Relay_Log_File: replica-relay-bin.000003
                Relay_Log_Pos: 30223388
        Relay_Source_Log_File: mysql-bin-changelog.012345
           Replica_IO_Running: No
          Replica_SQL_Running: Yes
              Replicate_Do_DB:.
              .
              .
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position; the first event 'mysql-bin-changelog.013406' at 1219393, the last event read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4, the last byte read from '/rdsdbdata/log/binlog/mysql-bin-changelog.012345' at 4.'
               Last_SQL_Errno: 0
               Last_SQL_Error:
               .
               .
                 Channel_name: channel_1
              .
              .
 -- Some fields are omitted in this example output
```

`Last_IO_Errno` 필드가 인스턴스에서 I/O 오류 1236을 수신하고 있음을 보여 줍니다. `Source_Log_File` 필드는 파일 이름이 `mysql-bin-changelog.012345`임을 보여 줍니다. 이는 로그 파일 인덱스가 `12345`임을 의미합니다. 오류를 해결하려면 다음 파라미터와 함께 `mysql.rds_next_source_log_for_channel`을 직접 호출합니다.

```
CALL mysql.rds_next_source_log_for_channel(12345,'channel_1');
```

## mysql.rds\$1reset\$1external\$1source\$1for\$1channel
<a name="mysql_rds_reset_external_source_for_channel"></a>

지정된 채널에서 복제 프로세스를 중지하고 다중 소스 복제본에서 채널 및 관련 구성을 제거합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 단원을 참조하십시오.

### 구문
<a name="mysql_rds_reset_external_source_for_channel-syntax"></a>



```
CALL mysql.rds_reset_external_source_for_channel (channel_name);
```

### 파라미터
<a name="mysql_rds_reset_external_source_for_channel-parameters"></a>

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_reset_external_source_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_reset_external_source_for_channel` 프로시저를 실행해야 합니다. 이 프로시저를 수행하면 제거되는 채널에 속하는 모든 릴레이 로그가 삭제됩니다.

## mysql.rds\$1set\$1external\$1source\$1for\$1channel
<a name="mysql_rds_set_external_source_for_channel"></a>

RDS for MySQL DB 인스턴스의 복제 채널을 구성하여 다른 RDS for MySQL DB 인스턴스의 데이터를 복제합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 단원을 참조하십시오.

**참고**  
대신 [mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel](#mysql_rds_set_external_source_with_delay_for_channel) 저장 프로시저를 사용하여 이 채널에 지연 복제를 구성할 수 있습니다.

### 구문
<a name="mysql_rds_set_external_source_for_channel-syntax"></a>



```
CALL mysql.rds_set_external_source_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , channel_name
);
```

### 파라미터
<a name="mysql_rds_set_external_source_for_channel-parameters"></a>

 *host\$1name*   
RDS for MySQL 소스 DB 인스턴스의 호스트 이름 또는 IP 주소입니다.

 *host\$1port*   
RDS for MySQL 소스 DB 인스턴스에서 사용한 포트입니다. 네트워크 구성에 포트 번호를 변환하는 SSH 포트 복제가 포함되는 경우 SSH(Secure Shell)에 의해 공개되는 포트 이름을 지정하세요.

 *replication\$1user\$1name*   
RDS for MySQL 소스 DB 인스턴스에서 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 보유한 사용자의 ID입니다. 소스 인스턴스를 사용한 복제에만 사용되는 계정을 제공하는 것이 좋습니다.

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *mysql\$1binary\$1log\$1file\$1name*   
복제 정보를 포함하는 소스 DB 인스턴스의 이진 로그 이름입니다.

 *mysql\$1binary\$1log\$1file\$1location*   
복제 시 복제 정보를 읽기 시작하는 `mysql_binary_log_file_name` 이진수 로그 내 위치입니다.  
소스 DB 인스턴스의 `SHOW BINARY LOG STATUS`를 실행하여 binlog 파일 이름 및 위치를 확인할 수 있습니다.  
이전 버전의 MySQL에는 `SHOW MASTER STATUS` 대신 `SHOW BINARY LOG STATUS`가 사용되었습니다. 8.4 이전 MySQL 버전을 사용하는 경우 `SHOW MASTER STATUS`를 사용합니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`SOURCE_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

 *channel\$1name*   
복제 채널의 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_set_external_source_for_channel-usage-notes"></a>

 마스터 사용자는 `mysql.rds_set_external_source_for_channel` 프로시저를 실행해야 합니다. 이 프로시저는 복제 채널을 생성할 대상 RDS for MySQL DB 인스턴스에서 실행해야 합니다.

 `mysql.rds_set_external_source_for_channel`을 실행하기 전에 다중 소스 복제본에 필요한 권한을 가진 소스 DB 인스턴스의 복제 사용자를 구성하세요. 다중 소스 복제본을 소스 DB 인스턴스에 연결하려면 소스 DB 인스턴스에 대해 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 가진 복제 사용자의 `replication_user_name` 값과 `replication_user_password` 값을 지정해야 합니다.

**소스 DB 인스턴스에서 복제 사용자를 구성하려면**

1. 선택한 MySQL 클라이언트를 사용하여 소스 DB 인스턴스에 연결하고 복제에 사용될 사용자 계정을 생성합니다. 다음은 예입니다.
**중요**  
보안 모범 사례로 다음 예제에 표시된 자리 표시자 값 이외의 암호를 지정하는 것이 좋습니다.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. 소스 DB 인스턴스의 경우 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 'repl\$1user' 사용자에게 모든 데이터베이스에 대한 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

암호화된 복제를 사용하려면 SSL 연결을 사용하도록 소스 DB 인스턴스를 구성합니다.

`mysql.rds_set_external_source_for_channel`을 직접 호출하여 이 복제 채널을 구성한 후 [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel)을 직접 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel)을 직접 호출하여 채널에서 복제를 중지하고 복제본에서 채널 구성을 제거할 수 있습니다.

`mysql.rds_set_external_source_for_channel`을 직접 호출하면 Amazon RDS는 채널별 세부 정보 없이 `mysql.rds_history` 테이블에 시간, 사용자 및 `set channel source`의 작업을 기록하고 `mysql.rds_replication_status` 테이블에는 채널 이름과 함께 이들 정보를 기록합니다. 이 정보는 내부 사용 및 모니터링 목적으로만 기록됩니다. 감사 목적으로 전체 프로시저 직접 호출을 기록하려면 애플리케이션의 특정 요구 사항에 따라 감사 로그 또는 일반 로그를 활성화하는 것이 좋습니다.

### 예시
<a name="mysql_rds_set_external_source_for_channel-examples"></a>

RDS for MySQL DB 인스턴스에서 실행할 때 다음 예제는 이 DB 인스턴스에 `channel_1` 이름이 지정된 복제 채널을 구성하여 `sourcedb.example.com` 호스트와 `3306` 포트로 지정된 소스의 데이터를 복제합니다.

```
call mysql.rds_set_external_source_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.0777',
  120,
  0,
  'channel_1');
```

## mysql.rds\$1set\$1external\$1source\$1with\$1auto\$1position\$1for\$1channel
<a name="mysql_rds_set_external_source_with_auto_position_for_channel"></a>

RDS for MySQL DB 인스턴스에서 복제 채널을 구성하고 복제 지연 옵션을 설정합니다. 전역 트랜잭션 식별자(GTID)를 기반으로 한 복제입니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 단원을 참조하십시오.

### 구문
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_external_source_with_auto_position_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , ssl_encryption
  , delay
  , channel_name
);
```

### 파라미터
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-parameters"></a>

 *host\$1name*   
RDS for MySQL 소스 DB 인스턴스의 호스트 이름 또는 IP 주소입니다.

 *host\$1port*   
RDS for MySQL 소스 DB 인스턴스에서 사용한 포트입니다. 네트워크 구성에 포트 번호를 변환하는 SSH 포트 복제가 포함되는 경우 SSH(Secure Shell)에 의해 공개되는 포트 이름을 지정하세요.

 *replication\$1user\$1name*   
RDS for MySQL 소스 DB 인스턴스에서 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 보유한 사용자의 ID입니다. 소스 인스턴스를 사용한 복제에만 사용되는 계정을 제공하는 것이 좋습니다.

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`SOURCE_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

 *delay*   
소스 DB 인스턴스에서 복제를 지연할 최소 시간(초)입니다.  
이 파라미터에 대한 제한은 1일(86,400초)입니다.

 *channel\$1name*   
복제 채널의 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_set_external_source_with_auto_position_for_channel` 프로시저를 실행해야 합니다. 이 프로시저는 복제 채널을 생성할 대상 RDS for MySQL DB 인스턴스에서 실행해야 합니다.

`rds_set_external_source_with_auto_position_for_channel`을 실행하기 전에 다중 소스 복제본에 필요한 권한을 가진 소스 DB 인스턴스의 복제 사용자를 구성하세요. 다중 소스 복제본을 소스 DB 인스턴스에 연결하려면 소스 DB 인스턴스에 대해 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 가진 복제 사용자의 `replication_user_name` 값과 `replication_user_password` 값을 지정해야 합니다.

**소스 DB 인스턴스에서 복제 사용자를 구성하려면**

1. 선택한 MySQL 클라이언트를 사용하여 소스 DB 인스턴스에 연결하고 복제에 사용될 사용자 계정을 생성합니다. 다음은 예입니다.
**중요**  
보안 모범 사례로 다음 예제에 표시된 자리 표시자 값 이외의 암호를 지정하는 것이 좋습니다.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. 소스 DB 인스턴스의 경우 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 'repl\$1user' 사용자에게 모든 데이터베이스에 대한 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

암호화된 복제를 사용하려면 SSL 연결을 사용하도록 소스 DB 인스턴스를 구성합니다.

`mysql.rds_set_external_source_with_auto_position_for_channel` 직접 호출 전에 [mysql.rds\$1set\$1external\$1source\$1gtid\$1purged](mysql-stored-proc-replicating.md#mysql_rds_set_external_source_gtid_purged)를 직접 호출하여 외부 소스의 지정된 GTID 범위로 시스템 변수를 설정합니다.

`mysql.rds_set_external_source_with_auto_position_for_channel`을 직접 호출하여 Amazon RDS DB 인스턴스를 지정된 채널의 읽기 복제본으로 구성한 후, 읽기 복제본에서 [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel)을 직접 호출하여 해당 채널에서 복제 프로세스를 시작할 수 있습니다.

`mysql.rds_set_external_source_with_auto_position_for_channel`을 직접 호출하여 이 복제 채널을 구성한 후 [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel)을 직접 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel)을 직접 호출하여 채널에서 복제를 중지하고 복제본에서 채널 구성을 제거할 수 있습니다.

### 예시
<a name="mysql_rds_set_external_master_with_auto_position_for_channel-examples"></a>

MySQL용 RDS DB 인스턴스에서 실행할 때 다음 예제는 이 DB 인스턴스에 `channel_1` 이름이 지정된 복제 채널을 구성하여 `sourcedb.example.com` 호스트 및 `3306` 포트로 지정된 소스에서 데이터를 복제하도록 구성하고 최소 복제 지연 시간을 1시간(3,600초)으로 설정합니다. 즉 소스 RDS for MySQL DB 인스턴스의 변경 사항은 최소 1시간 동안 다중 소스 복제본에 적용되지 않습니다.

```
call mysql.rds_set_external_source_with_auto_position_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  1,
  3600,
  'channel_1');
```

## mysql.rds\$1set\$1external\$1source\$1with\$1delay\$1for\$1channel
<a name="mysql_rds_set_external_source_with_delay_for_channel"></a>

RDS for MySQL DB 인스턴스의 복제 채널을 지정된 복제 지연으로 구성합니다.

**중요**  
이 프로시저를 실행하려면 `autocommit`를 활성화해야 합니다. 활성화하려면 `autocommit` 파라미터를 `1`로 설정합니다. 파라미터 수정에 대한 자세한 정보는 [Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 단원을 참조하십시오.

### 구문
<a name="mysql_rds_set_external_source_with_delay_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_external_source_with_delay_for_channel (
  host_name
  , host_port
  , replication_user_name
  , replication_user_password
  , mysql_binary_log_file_name
  , mysql_binary_log_file_location
  , ssl_encryption
  , delay
  , channel_name
);
```

### 파라미터
<a name="mysql_rds_set_external_source_with_delay_for_channel-parameters"></a>

 *host\$1name*   
RDS for MySQL 소스 DB 인스턴스의 호스트 이름 또는 IP 주소입니다.

 *host\$1port*   
RDS for MySQL 소스 DB 인스턴스에서 사용한 포트입니다. 네트워크 구성에 포트 번호를 변환하는 SSH 포트 복제가 포함되는 경우 SSH(Secure Shell)에 의해 공개되는 포트 이름을 지정하세요.

 *replication\$1user\$1name*   
RDS for MySQL 소스 DB 인스턴스에서 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 보유한 사용자의 ID입니다. 소스 인스턴스를 사용한 복제에만 사용되는 계정을 제공하는 것이 좋습니다.

 *replication\$1user\$1password*   
`replication_user_name`에 지정된 사용자 ID의 암호입니다.

 *mysql\$1binary\$1log\$1file\$1name*   
복제 정보를 포함하는 소스 DB 인스턴스의 이진 로그 이름입니다.

 *mysql\$1binary\$1log\$1file\$1location*   
복제 시 복제 정보를 읽기 시작할 `mysql_binary_log_file_name` 이진 로그 내 위치입니다.  
소스 데이터베이스 인스턴스의 `SHOW BINARY LOG STATUS`를 실행하여 binlog 파일 이름 및 위치를 확인할 수 있습니다.  
이전 버전의 MySQL에는 `SHOW MASTER STATUS` 대신 `SHOW BINARY LOG STATUS`가 사용되었습니다. 8.4 이전 MySQL 버전을 사용하는 경우 `SHOW MASTER STATUS`를 사용합니다.

 *ssl\$1encryption*   
복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.  
`SOURCE_SSL_VERIFY_SERVER_CERT` 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

 *delay*   
소스 DB 인스턴스에서 복제를 지연할 최소 시간(초)입니다.  
이 파라미터에 대한 제한은 1일(86,400초)입니다.

 *channel\$1name*   
복제 채널의 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_set_external_source_with_delay_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_set_external_source_with_delay_for_channel` 프로시저를 실행해야 합니다. 이 프로시저는 복제 채널을 생성할 대상 RDS for MySQL DB 인스턴스에서 실행해야 합니다.

`mysql.rds_set_external_source_with_delay_for_channel`을 실행하기 전에 다중 소스 복제본에 필요한 권한을 가진 소스 DB 인스턴스의 복제 사용자를 구성하세요. 다중 소스 복제본을 소스 DB 인스턴스에 연결하려면 소스 DB 인스턴스에 대해 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 가진 복제 사용자의 `replication_user_name` 값과 `replication_user_password` 값을 지정해야 합니다.

**소스 DB 인스턴스에서 복제 사용자를 구성하려면**

1. 선택한 MySQL 클라이언트를 사용하여 소스 DB 인스턴스에 연결하고 복제에 사용될 사용자 계정을 생성합니다. 다음은 예입니다.
**중요**  
보안 모범 사례로 다음 예제에 표시된 자리 표시자 값 이외의 암호를 지정하는 것이 좋습니다.

   ```
   CREATE USER 'repl_user'@'example.com' IDENTIFIED BY 'password';
   ```

1. 소스 DB 인스턴스의 경우 복제 사용자에게 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다. 다음 예제에서는 도메인의 'repl\$1user' 사용자에게 모든 데이터베이스에 대한 `REPLICATION CLIENT` 및 `REPLICATION SLAVE` 권한을 부여합니다.

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'example.com';
   ```

암호화된 복제를 사용하려면 SSL 연결을 사용하도록 소스 DB 인스턴스를 구성합니다.

`mysql.rds_set_external_source_with_delay_for_channel`을 직접 호출하여 이 복제 채널을 구성한 후 [mysql.rds\$1start\$1replication\$1for\$1channel](#mysql_rds_start_replication_for_channel)을 직접 호출하여 복제 프로세스를 시작할 수 있습니다. [mysql.rds\$1reset\$1external\$1source\$1for\$1channel](#mysql_rds_reset_external_source_for_channel)을 직접 호출하여 채널에서 복제를 중지하고 복제본에서 채널 구성을 제거할 수 있습니다.

`mysql.rds_set_external_source_with_delay_for_channel`을 직접 호출하면 Amazon RDS는 채널별 세부 정보 없이 `mysql.rds_history` 테이블에 시간, 사용자 및 `set channel source`의 작업을 기록하고 `mysql.rds_replication_status` 테이블에는 채널 이름과 함께 이들 정보를 기록합니다. 이 정보는 내부 사용 및 모니터링 목적으로만 기록됩니다. 감사 목적으로 전체 프로시저 직접 호출을 기록하려면 애플리케이션의 특정 요구 사항에 따라 감사 로그 또는 일반 로그를 활성화하는 것이 좋습니다.

### 예시
<a name="mysql_rds_set_external_source_with_delay_for_channel-examples"></a>

MySQL용 RDS DB 인스턴스에서 실행할 때 다음 예제는 이 DB 인스턴스에 `channel_1` 이름이 지정된 복제 채널을 구성하여 `sourcedb.example.com` 호스트 및 `3306` 포트로 지정된 소스에서 데이터를 복제하도록 구성하고 최소 복제 지연 시간을 1시간(3,600초)으로 설정합니다. 즉 소스 RDS for MySQL DB 인스턴스의 변경 사항은 최소 1시간 동안 다중 소스 복제본에 적용되지 않습니다.

```
call mysql.rds_set_external_source_with_delay_for_channel(
  'sourcedb.example.com',
  3306,
  'repl_user',
  'password',
  'mysql-bin-changelog.000777',
  120,
  1,
  3600,
  'channel_1');
```

## mysql.rds\$1set\$1source\$1auto\$1position\$1for\$1channel
<a name="mysql_rds_set_source_auto_position_for_channel"></a>

지정된 채널의 복제 모드를 바이너리 로그 파일 위치 또는 글로벌 트랜잭션 식별자(GTID)를 기반으로 설정합니다.

### 구문
<a name="mysql_rds_set_source_auto_position_for_channel-syntax"></a>

 

```
CALL mysql.rds_set_source_auto_position_for_channel (
auto_position_mode
 , channel_name
);
```

### 파라미터
<a name="mysql_rds_set_source_auto_position_for_channel-parameters"></a>

 *auto\$1position\$1mode*   
로그 파일 위치 복제 또는 GTID를 기반으로 하는 복제를 사용할지 여부를 나타내는 값:  
+ `0` – 바이너리 로그 파일 위치를 기반으로 한 복제 방법을 사용합니다. 기본값은 `0`입니다.
+ `1` – GTID 기반 복제 방법을 사용합니다.

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_set_source_auto_position_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_set_source_auto_position_for_channel` 프로시저를 실행해야 합니다. 이 프로시저는 지정된 채널에서 복제를 다시 시작하여 지정된 자동 위치 모드를 적용합니다.

### 예시
<a name="mysql_rds_set_source_auto_position_for_channel-examples"></a>

다음 예제에서는 GTID 기반 복제 방법을 사용하도록 channel\$11의 자동 위치 모드를 설정합니다.

```
call mysql.rds_set_source_auto_position_for_channel(1,'channel_1');
```

## mysql.rds\$1set\$1source\$1delay\$1for\$1channel
<a name="mysql_rds_set_source_delay_for_channel"></a>

소스 데이터베이스 인스턴스에서 지정된 채널의 다중 소스 복제본으로 복제를 지연할 최소 시간(초)을 설정합니다.

### 구문
<a name="mysql_rds_set_source_delay_for_channel-syntax"></a>

```
CALL mysql.rds_set_source_delay_for_channel(delay, channel_name);
```

### 파라미터
<a name="mysql_rds_set_source_delay_for_channel-parameters"></a>

 *delay*   
소스 DB 인스턴스에서 복제를 지연할 최소 시간(초)입니다.  
이 파라미터에 대한 제한은 1일(86,400초)입니다.

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_set_source_delay_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_set_source_delay_for_channel` 프로시저를 실행해야 합니다. 프로시저를 사용하려면 우선 `mysql.rds_stop_replication_for_channel`을 직접 호출하여 복제를 중지합니다. 그런 다음 이 프로시저를 직접 호출하여 복제 지연 값을 설정합니다. 지연이 설정되면 `mysql.rds_start_replication_for_channel`을 직접 호출하여 복제를 다시 시작합니다.

### 예시
<a name="mysql_rds_set_source_delay_for_channel-examples"></a>

다음 예제에서는 다중 소스 복제본의 `channel_1`에 있는 소스 데이터베이스 인스턴스에서 최소 1시간(3,600초) 동안 지연을 설정합니다.

```
CALL mysql.rds_set_source_delay_for_channel(3600,'channel_1');
```

## mysql.rds\$1skip\$1repl\$1error\$1for\$1channel
<a name="mysql_rds_skip_repl_error_for_channel"></a>

지정된 채널의 MySQL DB 다중 소스 복제본의 바이너리 로그 이벤트를 건너뛰고 지정된 채널의 복제 오류를 삭제합니다.

### 구문
<a name="mysql_rds_skip_repl_error_for_channel-syntax"></a>

 

```
CALL mysql.rds_skip_repl_error_for_channel(channel_name);
```

### 파라미터
<a name="mysql_rds_skip_repl_error_for_channel-parameters"></a>

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_skip_repl_error_for_channel-usage-notes"></a>

마스터 사용자는 읽기 전용 복제본에서 `mysql.rds_skip_repl_error_for_channel` 프로시저를 실행해야 합니다. `mysql.rds_skip_repl_error`가 읽기 복제본의 오류를 건너뛰는 것과 비슷한 방식으로 이 프로시저를 사용할 수 있습니다. 자세한 내용은 [mysql.rds\$1skip\$1repl\$1error 프로시저 호출](Appendix.MySQL.CommonDBATasks.SkipError.md#Appendix.MySQL.CommonDBATasks.SkipError.procedure) 단원을 참조하십시오.

**참고**  
GTID 기반 복제의 오류를 건너뛰려면 이 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 프로시저를 대신 사용할 것을 권장합니다.

오류가 있는지 여부를 판별하려면 MySQL `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G` 명령을 실행합니다. 중대한 복제 오류가 아닌 경우 `mysql.rds_skip_repl_error_for_channel`를 사용하여 오류를 건너뛸 수 있습니다. 오류가 여러 개인 경우 `mysql.rds_skip_repl_error_for_channel`은 지정된 복제 채널의 첫 번째 오류를 삭제한 후 다른 오류가 있음을 경고합니다. `SHOW REPLICA STATUS FOR CHANNEL 'channel_name'\G`를 사용하여 다음 오류에 대한 적합한 조치를 결정할 수 있습니다. 반환된 값에 대한 자세한 내용은 MySQL 설명서의 [SHOW SLAVE STATUS 문](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html)을 참조하세요.

## mysql.rds\$1start\$1replication\$1for\$1channel
<a name="mysql_rds_start_replication_for_channel"></a>

RDS for MySQL DB 인스턴스에서 지정된 채널의 다중 소스 복제본으로의 복제를 시작합니다.

**참고**  
[mysql.rds\$1start\$1replication\$1until\$1for\$1channel](#mysql_rds_start_replication_until_for_channel) 또는 [mysql.rds\$1start\$1replication\$1until\$1gtid\$1for\$1channel](#mysql_rds_start_replication_until_gtid_for_channel) 저장 프로시저를 사용하여 RDS for MySQL DB 인스턴스에서 복제를 시작하고 지정된 바이너리 로그 파일 위치에서 복제를 중지할 수 있습니다.

### 구문
<a name="mysql_rds_start_replication_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_for_channel(channel_name);
```

### 파라미터
<a name="mysql_rds_start_replication_for_channel-parameters"></a>

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_start_replication_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_start_replication_for_channel` 프로시저를 실행해야 합니다. 소스 RDS for MySQL DB 인스턴스에서 데이터를 가져온 후 다중 소스 복제본에서 이 명령을 실행하여 지정된 채널에서 복제를 시작합니다.

### 예시
<a name="mysql_rds_start_replication_for_channel-examples"></a>

다음 예제에서는 다중 소스 복제본의 `channel_1`에서 복제를 시작합니다.

```
CALL mysql.rds_start_replication_for_channel('channel_1');
```

## mysql.rds\$1start\$1replication\$1until\$1for\$1channel
<a name="mysql_rds_start_replication_until_for_channel"></a>

지정된 채널의 RDS for MySQL DB 인스턴스에서 복제를 시작하고 지정된 바이너리 로그 파일 위치에서 복제를 중지합니다.

### 구문
<a name="mysql_rds_start_replication_until_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_until_for_channel (
replication_log_file
  , replication_stop_point
  , channel_name
);
```

### 파라미터
<a name="mysql_rds_start_replication_until_for_channel-parameters"></a>

 *replication\$1log\$1file*   
복제 정보를 포함하는 소스 DB 인스턴스의 이진 로그 이름입니다.

 *replication\$1stop\$1point *   
복제를 중지할 `replication_log_file` 바이너리 로그 내 위치입니다.

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_start_replication_until_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_start_replication_until_for_channel` 프로시저를 실행해야 합니다. 이 프로시저를 사용하면 복제가 시작되었다가 지정된 binlog 파일 위치에 도달하면 복제가 중지됩니다. 이 프로시저는 `SQL_THREAD` 및 `IO_THREAD`를 모두 중지합니다.

`replication_log_file` 파라미터에 지정된 파일 이름은 소스 DB 인스턴스 binlog 파일 이름과 일치해야 합니다.

`replication_stop_point` 파라미터가 과거에 해당하는 중지 위치를 지정하는 경우 복제가 즉시 중지됩니다.

### 예시
<a name="mysql_rds_start_replication_until_for_channel-examples"></a>

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

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

## mysql.rds\$1start\$1replication\$1until\$1gtid\$1for\$1channel
<a name="mysql_rds_start_replication_until_gtid_for_channel"></a>

RDS for MySQL DB 인스턴스에서 지정된 채널에 복제를 시작하고 지정된 전역 트랜잭션 식별자(GTID)에서 복제를 중지합니다.

### 구문
<a name="mysql_rds_start_replication_until_gtid_for_channel-syntax"></a>

 

```
CALL mysql.rds_start_replication_until_gtid_for_channel(gtid,channel_name);
```

### 파라미터
<a name="mysql_rds_start_replication_until_gtid_for_channel-parameters"></a>

 *gtid*   
GTID 이후 복제를 중지합니다.

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_start_replication_until_gtid_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_start_replication_until_gtid_for_channel` 프로시저를 실행해야 합니다. 이 프로시저는 지정된 채널에서 복제를 시작하고 지정된 GTID 값까지 모든 변경 내용을 적용합니다. 그런 다음 채널에서의 복제가 중지됩니다.

`gtid` 파라미터가 복제본으로 이미 실행한 트랜잭션을 지정하는 경우 복제가 즉시 중지됩니다.

이 프로시저를 실행하기 전에 `replica_parallel_workers` 또는 `slave_parallel_workers` 값을 `0`으로 설정하여 멀티스레드 복제를 비활성화해야 합니다.

### 예시
<a name="mysql_rds_start_replication_until_gtid_for_channel-examples"></a>

다음 예제에서는 `channel_1`에서 복제를 시작하고 GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23`에 도달할 때까지 변경 사항을 복제합니다.

```
call mysql.rds_start_replication_until_gtid_for_channel('3E11FA47-71CA-11E1-9E33-C80AA9429562:23','channel_1');
```

## mysql.rds\$1stop\$1replication\$1for\$1channel
<a name="mysql_rds_stop_replication_for_channel"></a>

지정된 채널의 MySQL DB 인스턴스에서 복제를 중지합니다.

### 구문
<a name="mysql_rds_stop_replication_for_channel-syntax"></a>

 

```
CALL mysql.rds_stop_replication_for_channel(channel_name);
```

### 파라미터
<a name="mysql_rds_stop_replication_for_channel-parameters"></a>

 *channel\$1name*   
다중 소스 복제본의 복제 채널 이름입니다. 각 복제 채널은 특정 호스트 및 포트에서 실행되는 단일 소스 RDS for MySQL DB 인스턴스로부터 바이너리 로그 이벤트를 수신합니다.

### 사용 노트
<a name="mysql_rds_stop_replication_for_channel-usage-notes"></a>

마스터 사용자는 `mysql.rds_stop_replication_for_channel` 프로시저를 실행해야 합니다.

### 예시
<a name="mysql_rds_stop_replication_for_channel-examples"></a>

다음 예시에서는 다중 소스 복제본의 `channel_1`에서 복제를 중지합니다.

```
CALL mysql.rds_stop_replication_for_channel('channel_1');
```

# GTID를 사용한 트랜잭션 복제
<a name="mysql-stored-proc-gtid"></a>

다음 저장 프로시저는 RDS for MySQL에서 전역 트랜잭션 식별자(GTID)를 사용하여 트랜잭션을 복제하는 방법을 제어합니다. RDS for MySQL에서 GTID 기반 복제에 대한 자세한 내용은 [GTID 기반 복제 사용](mysql-replication-gtid.md) 섹션을 참조하세요.

`caching_sha2_password`로 구성된 복제 사용자로 복제를 관리하기 위해 저장 프로시저를 사용하는 경우, `SOURCE_SSL=1`을 지정하여 TLS를 구성해야 합니다. `caching_sha2_password`는 RDS for MySQL 8.4의 기본 인증 플러그인입니다.

**Topics**
+ [

## mysql.rds\$1skip\$1transaction\$1with\$1gtid
](#mysql_rds_skip_transaction_with_gtid)
+ [

## mysql.rds\$1start\$1replication\$1until\$1gtid
](#mysql_rds_start_replication_until_gtid)

## mysql.rds\$1skip\$1transaction\$1with\$1gtid
<a name="mysql_rds_skip_transaction_with_gtid"></a>

MySQL DB 인스턴스에서 지정된 전역 트랜잭션 식별자(GTID)를 사용하여 트랜잭션 복제를 건너 뜁니다.

특정 GTID 트랜잭션이 문제의 원인으로 알려진 경우 재해 복구를 위해 이 프로시저를 사용할 수 있습니다. 이 저장 프로시저를 사용하여 문제의 트랜잭션을 건너 뛰십시오. 문제의 트랜잭션의 예로는 복제를 비활성화하거나 중요한 데이터를 삭제하거나 DB 인스턴스를 사용할 수 없도록 하는 트랜잭션이 포함됩니다.

### 구문
<a name="mysql_rds_skip_transaction_with_gtid-syntax"></a>

 

```
CALL mysql.rds_skip_transaction_with_gtid (
gtid_to_skip
);
```

### 파라미터
<a name="mysql_rds_skip_transaction_with_gtid-parameters"></a>

 *gtid\$1to\$1skip*   
건너 뛸 복제 트랜잭션의 GTID입니다.

### 사용 노트
<a name="mysql_rds_skip_transaction_with_gtid-usage-notes"></a>

마스터 사용자는 `mysql.rds_skip_transaction_with_gtid` 프로시저를 실행해야 합니다.

이 프로시저는 모든 RDS for MySQL 5.7 버전, 모든 RDS for MySQL 8.0 버전, 모든 RDS for MySQL 8.4 버전에서 지원됩니다.

### 예제
<a name="mysql_rds_skip_transaction_with_gtid-examples"></a>

다음 예에서는 GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23`을 사용하여 트랜잭션의 복제를 건너뜁니다.

```
CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
```

## mysql.rds\$1start\$1replication\$1until\$1gtid
<a name="mysql_rds_start_replication_until_gtid"></a>

RDS for MySQL DB 인스턴스에서 복제를 시작하고 지정된 글로벌 트랜잭션 식별자(GTID) 바로 다음에서 복제를 중지합니다.

### 구문
<a name="mysql_rds_start_replication_until_gtid-syntax"></a>

 

```
CALL mysql.rds_start_replication_until_gtid(gtid);
```

### 파라미터
<a name="mysql_rds_start_replication_until_gtid-parameters"></a>

 *gtid*   
GTID 이후 복제를 중지해야 합니다.

### 사용 노트
<a name="mysql_rds_start_replication_until_gtid-usage-notes"></a>

마스터 사용자는 `mysql.rds_start_replication_until_gtid` 프로시저를 실행해야 합니다.

이 프로시저는 모든 RDS for MySQL 5.7 버전, 모든 RDS for MySQL 8.0 버전, 모든 RDS for MySQL 8.4 버전에서 지원됩니다.

이 프로시저는 지연 복제에서 재해 복구를 위해 사용할 있습니다. 지연된 복제를 구성한 경우 이 프로시저를 사용하여 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤포워드할 수 있습니다. 이 프로시저에서 복제를 중지한 이후에 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 기본 DB 인스턴스가 되도록 승격할 수 있습니다.

다음 저장 프로시저를 사용하여 지연 복제를 구성할 수 있습니다.
+ [mysql.rds\$1set\$1configuration](mysql-stored-proc-configuring.md#mysql_rds_set_configuration)
+ [mysql.rds\$1set\$1external\$1master\$1with\$1delay(RDS for MariaDB 및 RDS for MySQL 메이저 버전 8.0 이하)](mysql-stored-proc-replicating.md#mysql_rds_set_external_master_with_delay)
+ [mysql.rds\$1set\$1external\$1source\$1with\$1delay(RDS for MySQL 메이저 버전 8.4 이상)](mysql-stored-proc-replicating.md#mysql_rds_set_external_source_with_delay)
+ [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay)

`gtid` 파라미터가 복제본으로 이미 실행한 트랜잭션을 지정하는 경우 복제가 즉시 중지됩니다.

### 예제
<a name="mysql_rds_start_replication_until_gtid-examples"></a>

다음 예제에서는 복제를 시작하고 GTID `3E11FA47-71CA-11E1-9E33-C80AA9429562:23`에 도달할 때까지 변경 사항을 복제합니다.

```
call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
```

# 쿼리 로그 교체
<a name="mysql-stored-proc-logging"></a>

다음 저장 프로시저는 MySQL 로그를 백업 테이블로 로테이션합니다. 자세한 내용은 [ MySQL 데이터베이스 로그 파일](USER_LogAccess.Concepts.MySQL.md) 단원을 참조하십시오.

**Topics**
+ [

## mysql.rds\$1rotate\$1general\$1log
](#mysql_rds_rotate_general_log)
+ [

## mysql.rds\$1rotate\$1slow\$1log
](#mysql_rds_rotate_slow_log)

## mysql.rds\$1rotate\$1general\$1log
<a name="mysql_rds_rotate_general_log"></a>

`mysql.general_log` 테이블을 백업 테이블로 로테이션합니다.

### 구문
<a name="mysql_rds_rotate_general_log-syntax"></a>

 

```
CALL mysql.rds_rotate_general_log;
```

### 사용 노트
<a name="mysql_rds_rotate_general_log-usage-notes"></a>

`mysql.rds_rotate_general_log` 프로시저를 호출하여 `mysql.general_log` 테이블을 백업 테이블로 로테이션할 수 있습니다. 로그 테이블이 순환되면 현재 로그 테이블은 백업 로그 테이블에 복사되며 현재 로그 테이블의 해당 항목들은 제거됩니다. 백업 로그 테이블이 이미 존재할 경우, 현재 로그 테이블이 백업으로 복사되기 전에 백업 로그 테이블이 삭제됩니다. 필요하다면 백업 로그 테이블을 쿼리할 수 있습니다. `mysql.general_log` 테이블에 대한 백업 로그 테이블 이름은 `mysql.general_log_backup`으로 지정됩니다.

이 절차는 `log_output` 파라미터를 `TABLE`로 설정한 경우에만 실행할 수 있습니다.

## mysql.rds\$1rotate\$1slow\$1log
<a name="mysql_rds_rotate_slow_log"></a>

`mysql.slow_log` 테이블을 백업 테이블로 로테이션합니다.

### 구문
<a name="mysql_rds_rotate_slow_log-syntax"></a>

 

```
CALL mysql.rds_rotate_slow_log;
```

### 사용 노트
<a name="mysql_rds_rotate_slow_log-usage-notes"></a>

`mysql.rds_rotate_slow_log` 프로시저를 호출하여 `mysql.slow_log` 테이블을 백업 테이블로 로테이션할 수 있습니다. 로그 테이블이 순환되면 현재 로그 테이블은 백업 로그 테이블에 복사되며 현재 로그 테이블의 해당 항목들은 제거됩니다. 백업 로그 테이블이 이미 존재할 경우, 현재 로그 테이블이 백업으로 복사되기 전에 백업 로그 테이블이 삭제됩니다.

필요하다면 백업 로그 테이블을 쿼리할 수 있습니다. `mysql.slow_log` 테이블에 대한 백업 로그 테이블 이름은 `mysql.slow_log_backup`으로 지정됩니다.

# 이진수 로그 구성 설정 및 표시
<a name="mysql-stored-proc-configuring"></a>

다음 저장 프로시저는 바이너리 로그 파일 유지에 대한 파라미터와 같은 구성 파라미터를 설정하고 표시합니다.

**Topics**
+ [

## mysql.rds\$1set\$1configuration
](#mysql_rds_set_configuration)
+ [

## mysql.rds\$1show\$1configuration
](#mysql_rds_show_configuration)

## mysql.rds\$1set\$1configuration
<a name="mysql_rds_set_configuration"></a>

바이너리 로그를 보관할 기간(시간) 또는 복제를 지연할 시간(초)을 지정합니다.

### 구문
<a name="mysql_rds_set_configuration-syntax"></a>

 

```
CALL mysql.rds_set_configuration(name,value);
```

### 파라미터
<a name="mysql_rds_set_configuration-parameters"></a>

 *이름*   
설정할 구성 파라미터의 이름입니다.

 *USD 상당*   
구성 파라미터의 값입니다.

### 사용 노트
<a name="mysql_rds_set_configuration-usage-notes"></a>

`mysql.rds_set_configuration` 프로시저는 다음 구성 파라미터를 지원합니다.
+ [binlog retention hours](#mysql_rds_set_configuration-usage-notes.binlog-retention-hours)
+ [소스 지연](#mysql_rds_set_configuration-usage-notes.source-delay)
+ [target delay](#mysql_rds_set_configuration-usage-notes.target-delay)

구성 파라미터는 영구적으로 저장되며 DB 인스턴스 재부팅 또는 장애 조치 이후에도 유지됩니다.

#### binlog retention hours
<a name="mysql_rds_set_configuration-usage-notes.binlog-retention-hours"></a>

`binlog retention hours` 파라미터는 이진 로그 파일을 보관할 기간(시간)을 지정하는 데 사용됩니다. Amazon RDS는 일반적으로 가능한 한 빨리 바이너리 로그를 삭제하지만 RDS 외부의 MySQL 데이터베이스 복제에는 바이너리 로그가 필요할 수 있습니다.

`binlog retention hours`의 기본값은 `NULL`입니다. RDS for MySQL의 경우 `NULL`은 바이너리 로그가 유지되지 않음을 의미합니다(0시간).

DB 인스턴스에 대한 바이너리 로그를 유지할 기간(시간)을 지정하려면 다음 예에 나와 있는 것처럼 `mysql.rds_set_configuration` 저장 프로시저를 사용하여 복제 수행에 충분한 기간을 지정합니다.

`call mysql.rds_set_configuration('binlog retention hours', 24);`

**참고**  
`binlog retention hours`에는 `0` 값을 사용할 수 없습니다.

MySQL DB 인스턴스의 경우 최대 `binlog retention hours` 값은 168(7일)입니다.

보존 기간을 설정한 후, DB 인스턴스 스토리지의 사용량을 모니터링하여 보존된 바이너리 로그가 너무 많은 스토리지를 차지하지 않도록 합니다.

다중 AZ DB 클러스터 배포의 경우 라이터 DB 인스턴스에서만 이진 로그 유지를 구성할 수 있으며, 설정은 모든 리더 DB 인스턴스에 비동기적으로 전파됩니다. DB 클러스터의 이진 로그가 총 로컬 스토리지 공간의 절반을 초과하는 경우 Amazon RDS는 자동으로 오래된 로그를 EBS 볼륨으로 이동합니다. 하지만 최신 로그는 로컬 스토리지에 남아 있으므로 호스트 교체가 필요한 장애가 발생하거나 데이터베이스를 확장 또는 축소하는 경우 손실될 수 있습니다.

#### 소스 지연
<a name="mysql_rds_set_configuration-usage-notes.source-delay"></a>

`source delay` 파라미터를 사용하여 읽기 전용 복제본에서 소스 DB 인스턴스로의 복제를 지연할 시간(초)을 지정합니다. Amazon RDS에서는 일반적으로 변경 사항을 최대한 빨리 복제하지만, 일부 환경에서는 복제를 지연하기를 원할 수 있습니다. 예를 들어, 복제가 지연될 경우 지연된 읽기 전용 복제본을 재해 직전 시간으로 롤포워드할 수 있습니다. 실수로 테이블이 삭제된 경우 지연된 복제를 사용하여 테이블을 빠르게 복구할 수 있습니다. `target delay`의 기본값은 `0`입니다(복제를 지연하지 않음).

이 파라미터를 사용하면 [mysql.rds\$1set\$1source\$1delay](mysql-stored-proc-replicating.md#mysql_rds_set_source_delay) 실행되고 CHANGE primary TO MASTER\$1DELAY = input value가 적용됩니다. 성공하면 프로시저가 `source delay` 파라미터를 `mysql.rds_configuration` 테이블에 저장합니다.

Amazon RDS에서 소스 DB 인스턴스에 대한 복제를 지연할 시간(초)을 지정하려면 `mysql.rds_set_configuration` 저장 프로시저를 사용하고 복제를 지연할 시간(초)을 지정합니다. 다음 예제에서는 복제를 1시간(3,600초) 이상 지연하도록 지정합니다.

`call mysql.rds_set_configuration('source delay', 3600);`

그러면 프로시저가 `mysql.rds_set_source_delay(3600)`를 실행합니다.

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

#### target delay
<a name="mysql_rds_set_configuration-usage-notes.target-delay"></a>

`target delay` 파라미터를 사용하여 DB 인스턴스와 이 인스턴스에서 생성되는 향후 RDS 관리 읽기 전용 복제본 간의 복제를 지연할 시간(초)을 지정합니다. RDS에서 관리되지 않는 읽기 전용 복제본에서는 이 파라미터가 무시됩니다. Amazon RDS에서는 일반적으로 변경 사항을 최대한 빨리 복제하지만, 일부 환경에서는 복제를 지연하기를 원할 수 있습니다. 예를 들어, 복제가 지연될 경우 지연된 읽기 전용 복제본을 재해 직전 시간으로 롤포워드할 수 있습니다. 실수로 테이블이 삭제된 경우 지연된 복제를 사용하여 테이블을 빠르게 복구할 수 있습니다. `target delay`의 기본값은 `0`입니다(복제를 지연하지 않음).

재해 복구의 경우 이 구성 파라미터를 [mysql.rds\$1start\$1replication\$1until](mysql-stored-proc-replicating.md#mysql_rds_start_replication_until) 저장 프로시저 또는 [mysql.rds\$1start\$1replication\$1until\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_start_replication_until_gtid) 저장 프로시저와 함께 사용할 수 있습니다. 지연된 읽기 전용 복제본에 대한 변경 사항을 재해 직전 시간으로 롤포워드하려면 이 파라미터를 설정한 상태에서 `mysql.rds_set_configuration` 프로시저를 실행할 수 있습니다. `mysql.rds_start_replication_until` 또는 `mysql.rds_start_replication_until_gtid` 프로시저에서 복제를 중지한 이후에 [읽기 전용 복제본을 독립 DB 인스턴스로 승격](USER_ReadRepl.Promote.md)의 지침에 따라 읽기 전용 복제본을 새 기본 DB 인스턴스가 되도록 승격할 수 있습니다.

`mysql.rds_rds_start_replication_until_gtid` 프로시저를 사용하려면 GTID를 기반으로 한 복제를 활성화해야 합니다. 재해 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너 뛰려면 [mysql.rds\$1skip\$1transaction\$1with\$1gtid](mysql-stored-proc-gtid.md#mysql_rds_skip_transaction_with_gtid) 저장 프로시저를 사용할 수 있습니다. GTID 기반 복제 작업에 대한 자세한 내용은 [GTID 기반 복제 사용](mysql-replication-gtid.md) 단원을 참조하십시오.

Amazon RDS에서 읽기 전용 복제본에 대한 복제를 지연할 시간(초)을 지정하려면 `mysql.rds_set_configuration` 저장 프로시저를 사용하고 복제를 지연할 시간(초)을 지정합니다. 다음 예제에서는 복제를 1시간(3,600초) 이상 지연하도록 지정합니다.

`call mysql.rds_set_configuration('target delay', 3600);`

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

## mysql.rds\$1show\$1configuration
<a name="mysql_rds_show_configuration"></a>

바이너리 로그가 유지되는 시간입니다.

### 구문
<a name="mysql_rds_show_configuration-syntax"></a>

 

```
CALL mysql.rds_show_configuration;
```

### 사용 노트
<a name="mysql_rds_show_configuration-usage-notes"></a>

Amazon RDS의 이진수 로그 보관 시간을 확인하려면 `mysql.rds_show_configuration` 저장 프로시저를 사용합니다.

### 예제
<a name="mysql_rds_show_configuration-examples"></a>

다음 예제는 보존 기간을 표시합니다.

```
call mysql.rds_show_configuration;
                name                         value     description
                binlog retention hours       24        binlog retention hours specifies the duration in hours before binary logs are automatically deleted.
```

# InnoDB 캐시 워밍
<a name="mysql-stored-proc-warming"></a>

다음 저장 프로시저는 RDS for MySQL DB 인스턴스에서 InnoDB 버퍼 풀을 저장 또는 로드하거나 로드를 취소합니다. 자세한 내용은 [Amazon RDS의 MySQL용 InnoDB 캐시 워밍](MySQL.Concepts.FeatureSupport.md#MySQL.Concepts.InnoDBCacheWarming) 단원을 참조하십시오.

**Topics**
+ [

## mysql.rds\$1innodb\$1buffer\$1pool\$1dump\$1now
](#mysql_rds_innodb_buffer_pool_dump_now)
+ [

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1abort
](#mysql_rds_innodb_buffer_pool_load_abort)
+ [

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1now
](#mysql_rds_innodb_buffer_pool_load_now)

## mysql.rds\$1innodb\$1buffer\$1pool\$1dump\$1now
<a name="mysql_rds_innodb_buffer_pool_dump_now"></a>

버퍼 풀의 현재 상태를 디스크에 덤프합니다.

### 구문
<a name="mysql_rds_innodb_buffer_pool_dump_now-syntax"></a>

 

```
CALL mysql.rds_innodb_buffer_pool_dump_now();
```

### 사용 노트
<a name="mysql_rds_innodb_buffer_pool_dump_now-usage"></a>

마스터 사용자는 `mysql.rds_innodb_buffer_pool_dump_now` 프로시저를 실행해야 합니다.

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1abort
<a name="mysql_rds_innodb_buffer_pool_load_abort"></a>

진행 중인 저장된 버퍼 풀 상태 로드를 취소합니다.

### 구문
<a name="mysql_rds_innodb_buffer_pool_load_abort-syntax"></a>

 

```
CALL mysql.rds_innodb_buffer_pool_load_abort();
```

### 사용 노트
<a name="mysql_rds_innodb_buffer_pool_load_abort-usage"></a>

마스터 사용자는 `mysql.rds_innodb_buffer_pool_load_abort` 프로시저를 실행해야 합니다.

## mysql.rds\$1innodb\$1buffer\$1pool\$1load\$1now
<a name="mysql_rds_innodb_buffer_pool_load_now"></a>

디스크에서 버퍼 풀의 저장된 상태를 디스크에 로드합니다.

### 구문
<a name="mysql_rds_innodb_buffer_pool_load_now-syntax"></a>

 

```
CALL mysql.rds_innodb_buffer_pool_load_now();
```

### 사용 노트
<a name="mysql_rds_innodb_buffer_pool_load_now-usage"></a>

마스터 사용자는 `mysql.rds_innodb_buffer_pool_load_now` 프로시저를 실행해야 합니다.