복제 - Amazon Aurora

복제

Aurora MySQL 클러스터에 있는 기본 인스턴스에 연결된 상태에서 다음과 같은 저장 프로시저를 호출할 수 있습니다. 이 프로시저에서는 트랜잭션이 외부 데이터베이스에서 Aurora MySQL로, 또는 Aurora MySQL에서 외부 데이터베이스로 복제되는 방식을 제어합니다. Aurora MySQL에서 글로벌 트랜잭션 식별자(GTID)에 근거하여 복제를 사용하는 방법을 알아보려면 GTID 기반 복제 사용 단원을 참조하세요.

mysql.rds_assign_gtids_to_anonymous_transactions(Aurora MySQL 버전 3)

CHANGE REPLICATION SOURCE TO 문의 ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS 옵션을 구성합니다. 이렇게 하면 복제 채널에서 GTID를 가지고 있지 않은 복제된 트랜잭션에 GTID를 할당합니다. 이렇게 하면 GTID 기반 복제를 사용하지 않는 소스에서 GTID 기반 복제를 사용하는 복제본으로 바이너리 로그 복제를 수행할 수 있습니다. 자세한 내용은 MySQL 참조 설명서복제 소스를 명령문으로 변경GTID를 사용하지 않는 소스에서 GTID를 사용하는 복제본으로 복제를 참조하세요.

구문

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

파라미터

gtid_option

문자열 값입니다. 허용 값은 OFF, LOCAL 또는 지정된 UUID입니다.

사용 노트

이 프로시저에는 커뮤니티 MySQL에서 CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = gtid_option 문을 실행하는 것과 동일한 효과가 있습니다.

GTID는 gtid_option에 대한 ON로 튜닝되어 LOCAL 또는 특정 UUID로 설정되어야 합니다.

기본값은 OFF이며, 기능이 사용되지 않음을 의미합니다.

LOCAL은 복제본의 자체 UUID(server_uuid 설정)를 포함하는 GTID를 할당합니다.

UUID인 파라미터를 전달하면 지정된 UUID(예: 복제 소스 서버에 대한 server_uuid 설정)를 포함하는 GTID를 할당합니다.

예제

이 기능을 해제하려면 다음과 같이 하세요.

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('OFF'); +-------------------------------------------------------------+ | Message | +-------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: OFF | +-------------------------------------------------------------+ 1 row in set (0.07 sec)

복제본의 자체 UUID를 사용하려면 다음과 같이 하세요.

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('LOCAL'); +---------------------------------------------------------------+ | Message | +---------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: LOCAL | +---------------------------------------------------------------+ 1 row in set (0.07 sec)

지정된 UUID를 사용하려면 다음과 같이 하세요.

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('317a4760-f3dd-3b74-8e45-0615ed29de0e'); +----------------------------------------------------------------------------------------------+ | Message | +----------------------------------------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: 317a4760-f3dd-3b74-8e45-0615ed29de0e | +----------------------------------------------------------------------------------------------+ 1 row in set (0.07 sec)

mysql.rds_disable_session_binlog(Aurora MySQL 버전 2)

sql_log_bin 변수를 OFF로 설정하여 현재 세션에 대한 이진 로깅을 끕니다.

구문

CALL mysql.rds_disable_session_binlog;

파라미터

None

사용 노트

Aurora MySQL DB 클러스터의 경우, 기본 인스턴스에 연결된 상태에서 이 저장 프로시저를 호출합니다.

Aurora의 경우, 이 프로시저는 Aurora MySQL 버전 2.12 이상과 MySQL 5.7 호환 버전에서 지원됩니다.

참고

Aurora MySQL 버전 3에서는 SESSION_VARIABLES_ADMIN 권한이 있는 경우 다음 명령을 사용하여 현재 세션에 대한 바이너리 로깅을 비활성화할 수 있습니다.

SET SESSION sql_log_bin = OFF;

mysql.rds_enable_session_binlog(Aurora MySQL 버전 2)

sql_log_bin 변수를 ON으로 설정하여 현재 세션에 대한 이진 로깅을 켭니다.

구문

CALL mysql.rds_enable_session_binlog;

파라미터

None

사용 노트

Aurora MySQL DB 클러스터의 경우, 기본 인스턴스에 연결된 상태에서 이 저장 프로시저를 호출합니다.

Aurora의 경우, 이 프로시저는 Aurora MySQL 버전 2.12 이상과 MySQL 5.7 호환 버전에서 지원됩니다.

참고

Aurora MySQL 버전 3에서는 SESSION_VARIABLES_ADMIN 권한이 있는 경우 다음 명령을 사용하여 현재 세션에 대한 바이너리 로깅을 활성화할 수 있습니다.

SET SESSION sql_log_bin = ON;

mysql.rds_gtid_purged(Aurora MySQL 버전 3)

시스템 변수 gtid_purged의 글로벌 값을 지정된 글로벌 트랜잭션 식별자(GTID) 집합으로 설정합니다. gtid_purged 시스템 변수는 서버에서 커밋되었지만 서버의 이진 로그 파일에는 존재하지 않는 모든 트랜잭션의 GTID로 구성된 GTID 집합입니다.

MySQL 8.0과의 호환되도록 하기 위해 다음 두 가지 방법으로 gtid_purged 값을 설정할 수 있습니다.

  • gtid_purged의 값을 지정된 GTID 집합으로 교체합니다.

  • 지정된 GTID 집합을 gtid_purged에 이미 포함된 GTID 집합 세트에 덧붙입니다.

구문

gtid_purged의 값을 지정된 GTID 집합으로 교체하는 방법:

CALL mysql.rds_gtid_purged (gtid_set);

gtid_purged의 값을 지정된 GTID 집합에 덧붙이는 방법:

CALL mysql.rds_gtid_purged (+gtid_set);

파라미터

gtid_set

gtid_set의 값은 현재 gtid_purged 값의 상위 집합이어야 하며, gtid_subtract(gtid_executed,gtid_purged)와 겹쳐서는 안 됩니다. 즉, 새 GTID 집합에는 gtid_purged에 이미 들어 있던 모든 GTID를 포함해야 하며, gtid_executed에서 아직 삭제되지 않은 GTID는 포함할 수 없습니다. 또한 gtid_set 파라미터는 글로벌 gtid_owned 집합에 있는 GTID, 즉 현재 서버에서 처리 중인 트랜잭션에 대한 GTID를 포함할 수 없습니다.

사용 노트

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

이 프로시저는 Aurora MySQL 버전 3.04 이상에서 지원됩니다.

예제

다음 예에서는 GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23을 gtid_purged 글로벌 변수에 할당합니다.

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

mysql.rds_import_binlog_ssl_material

인증 기관(CA) 인증서, 클라이언트 인증서, 클라이언트 키를 Aurora MySQL DB 클러스터로 가져옵니다. SSL 통신과 암호화된 복제에 필요한 정보입니다.

참고

현재 이 프로시저는 Aurora MySQL 버전 2 중 2.09.2, 2.10.0, 2.10.1, 2.11.0 및 버전 3 중 3.01.1 이상에서 지원됩니다.

구문

CALL mysql.rds_import_binlog_ssl_material ( ssl_material );

파라미터

ssl_material

MySQL 클라이언트를 위한 다음 .pem 형식 파일 내용이 포함된 JSON 페이로드.

  • "ssl_ca":"Certificate authority certificate"

  • "ssl_cert":"Client certificate"

  • "ssl_key":"Client key"

사용 노트

이 프로시저를 실행하기 전에 암호화된 복제를 준비합니다.

  • 외부 MySQL 소스 데이터베이스 인스턴스에서 SSL을 활성화하지 않았고 클라이언트 키와 클라이언트 인증서가 준비되지 않았다면, MySQL 데이터베이스 서버의 SSL을 활성화하고 필요한 클라이언트 키와 클라이언트 인증서를 생성합니다.

  • 외부 소스 데이터베이스 인스턴스에 SSL이 활성화되어 있으면 Aurora MySQL DB 클러스터에 클라이언트 키와 인증서를 제공합니다. 인증서와 키가 없다면, Aurora MySQL DB 클러스터에 대해 새 키와 인증서를 생성합니다. 클라이언트 인증서에 서명하려면, 외부 MySQL 소스 데이터베이스 인스턴스에 SSL을 구성할 때 사용하는 인증 기관(CA) 키가 있어야 합니다.

자세한 내용은 MySQL 설명서의 openssl을 사용하여 SSL 인증서 및 키 생성을 참조하십시오.

중요

암호화된 복제를 준비한 후, SSL 연결을 사용해 이 프로시저를 실행합니다. 클라이언트 키를 보안성이 낮은 연결을 이용해 전송할 수 없습니다.

이 프로시저는 외부 MySQL 데이터베이스의 SSL 정보를 Aurora MySQL DB 클러스터로 가져옵니다. SSL 정보는 Aurora MySQL DB 클러스터에 대한 SSL 정보가 포함되어 있는 .pem 형식의 파일입니다. 암호화 복제 중, Aurora MySQL DB 클러스터는 MySQL 데이터베이스 서버의 클라이언트 역할을 합니다. Aurora MySQL 클라이언트 인증서와 키는 .pem 형식의 파일입니다.

이들 파일에서 올바른 JSON 페이로드의 ssl_material 파라미터로 정보를 복사할 수 있습니다. 암호화된 복제를 지원하려면 Aurora MySQL DB 클러스터로 이 SSL 정보를 가져옵니다.

JSON 페이로드는 다음 형식이어야 합니다.

'{"ssl_ca":"-----BEGIN CERTIFICATE----- ssl_ca_pem_body_code -----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE----- ssl_cert_pem_body_code -----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY----- ssl_key_pem_body_code -----END RSA PRIVATE KEY-----\n"}'

예제

다음은 Aurora MySQL에 SSL 정보를 가져오는 예시입니다. .pem 형식 파일은 본문 코드의 길이가 일반적으로 예제의 본문 코드 길이보다 깁니다.

call mysql.rds_import_binlog_ssl_material( '{"ssl_ca":"-----BEGIN CERTIFICATE----- AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE -----END CERTIFICATE-----\n","ssl_cert":"-----BEGIN CERTIFICATE----- AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE -----END CERTIFICATE-----\n","ssl_key":"-----BEGIN RSA PRIVATE KEY----- AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE -----END RSA PRIVATE KEY-----\n"}');

mysql.rds_next_master_log(Aurora MySQL 버전 2)

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

구문

CALL mysql.rds_next_master_log( curr_master_log );

파라미터

curr_master_log

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

참고

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

사용 노트

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

주의

복제 원본인 다중 AZ DB 인스턴스의 장애 조치 후 복제가 실패하고 mysql.rds_next_master_logLast_IO_Errno필드에서 I/O 오류 1236을 보고하는 경우에만 SHOW REPLICA STATUS를 호출합니다.

장애 조치 이벤트가 발생하기 전에 원본 인스턴스의 트랜잭션이 디스크의 바이너리 로그에 기록되지 않은 경우 mysql.rds_next_master_log를 호출하면 읽기 전용 복제본에서 데이터가 손실될 수 있습니다.

예제

Aurora 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에는 SHOW SLAVE STATUS 대신 SHOW REPLICA STATUS가 사용되었습니다. 8.0.23 이전 MySQL 버전을 사용하는 경우 SHOW SLAVE STATUS를 사용합니다.

mysql.rds_next_source_log(Aurora MySQL 버전 3)

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

구문

CALL mysql.rds_next_source_log( curr_source_log );

파라미터

curr_source_log

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

사용 노트

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

주의

복제 원본인 다중 AZ DB 인스턴스의 장애 조치 후 복제가 실패하고 mysql.rds_next_source_logLast_IO_Errno필드에서 I/O 오류 1236을 보고하는 경우에만 SHOW REPLICA STATUS를 호출합니다.

장애 조치 이벤트가 발생하기 전에 원본 인스턴스의 트랜잭션이 디스크의 바이너리 로그에 기록되지 않은 경우 mysql.rds_next_source_log를 호출하면 읽기 전용 복제본에서 데이터가 손실될 수 있습니다.

예제

Aurora 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_remove_binlog_ssl_material

SSL 통신과 암호화된 복제용 인증 기관(CA) 인증서, 클라이언트 인증서, 클라이언트 키를 제거합니다. mysql.rds_import_binlog_ssl_material를 사용하여, 이 정보를 가져옵니다.

구문

CALL mysql.rds_remove_binlog_ssl_material;

mysql.rds_reset_external_master(Aurora MySQL 버전 2)

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

중요

이 프로시저를 실행하려면 autocommit를 활성화해야 합니다. 활성화하려면 autocommit 파라미터를 1로 설정합니다. 파라미터 수정에 대한 자세한 정보는 DB 파라미터 그룹의 파라미터 수정 단원을 참조하십시오.

구문

CALL mysql.rds_reset_external_master;

사용 노트

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

참고

이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. 가능하면 Aurora 복제본을 사용하여 Aurora MySQL DB 클러스터 내에서 복제를 관리하는 것이 좋습니다. Aurora MySQL DB 클러스터의 복제 관리에 대한 자세한 내용은 Aurora 복제본 사용 단원을 참조하세요.

복제를 사용하여 Aurora MySQL 외부에서 실행 중인 MySQL 인스턴스에서 데이터를 가져오는 방법에 대한 자세한 내용은 Aurora과 MySQL 간의 복제 또는 Aurora와 다른 Aurora DB 클러스터(이진 로그 복제본) 간의 복제 섹션을 참조하세요.

mysql.rds_reset_external_source(Aurora MySQL 버전 3)

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

중요

이 프로시저를 실행하려면 autocommit를 활성화해야 합니다. 활성화하려면 autocommit 파라미터를 1로 설정합니다. 파라미터 수정에 대한 자세한 정보는 DB 파라미터 그룹의 파라미터 수정 단원을 참조하십시오.

구문

CALL mysql.rds_reset_external_source;

사용 노트

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

참고

이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. 가능하면 Aurora 복제본을 사용하여 Aurora MySQL DB 클러스터 내에서 복제를 관리하는 것이 좋습니다. Aurora MySQL DB 클러스터의 복제 관리에 대한 자세한 내용은 Aurora 복제본 사용 단원을 참조하세요.

mysql.rds_set_binlog_source_ssl(Aurora MySQL 버전 3)

Binlog 복제를 위한 SOURCE_SSL 암호화를 활성화합니다. 자세한 내용은 MySQL 설명서의 CHANGE REPLICATION SOURCE TO statement를 참조하세요.

구문

CALL mysql.rds_set_binlog_source_ssl(mode);

파라미터

mode

SOURCE_SSL 암호화가 활성화되었는지를 나타내는 값입니다.

  • 0 - SOURCE_SSL 암호화가 비활성화되었습니다. 기본값은 0입니다.

  • 1 - SOURCE_SSL 암호화가 활성화었습니다. SSL 또는 TLS를 사용하여 암호화를 구성할 수 있습니다.

사용 노트

이 프로시저는 Aurora MySQL 버전 3.06 이상에서 지원됩니다.

mysql.rds_set_external_master(Aurora MySQL 버전 2)

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

mysql.rds_set_external_master 프로시저는 사용되지 않으며 향후 릴리스에서 삭제됩니다. 대신 mysql.rds_set_external_source을 사용하세요.

중요

이 프로시저를 실행하려면 autocommit를 활성화해야 합니다. 활성화하려면 autocommit 파라미터를 1로 설정합니다. 파라미터 수정에 대한 자세한 정보는 DB 파라미터 그룹의 파라미터 수정 단원을 참조하십시오.

구문

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 );

파라미터

host_name

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

host_port

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

replication_user_name

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

replication_user_password

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

mysql_binary_log_file_name

복제 정보를 포함하는 소스 데이터베이스 인스턴스의 이진 로그 이름입니다.

mysql_binary_log_file_location

복제 시 복제 정보를 읽기 시작하는 mysql_binary_log_file_name 이진수 로그 내 위치입니다.

소스 데이터베이스 인스턴스의 SHOW MASTER STATUS를 실행하여 binlog 파일 이름 및 위치를 확인할 수 있습니다.

ssl_encryption

복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.

참고

MASTER_SSL_VERIFY_SERVER_CERT 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

사용 노트

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

mysql.rds_set_external_master을 실행하기 전에 소스 데이터베이스 인스턴스가 되도록 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스를 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 MySQL의 외부 인스턴스에서 replication_user_namereplication_user_password 권한이 있는 복제 사용자를 나타내는 REPLICATION CLIENTREPLICATION 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';
    참고

    보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

  2. MySQL의 외부 인스턴스에서 복제 사용자에게 REPLICATION CLIENTREPLICATION SLAVE 권한을 부여합니다. 다음 예제에서는 도메인의 'repl_user' 사용자에게 모든 데이터베이스에 대한 REPLICATION CLIENTREPLICATION 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 연결을 사용하도록 소스 데이터베이스 인스턴스를 구성합니다. 또한 mysql.rds_import_binlog_ssl_material 프로시저를 사용하여 인증 기관(CA) 인증서, 클라이언트 인증서, 클라이언트 키를 DB 인스턴스나 DB 클러스터로 가져옵니다.

참고

이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. 가능하면 Aurora 복제본을 사용하여 Aurora MySQL DB 클러스터 내에서 복제를 관리하는 것이 좋습니다. Aurora MySQL DB 클러스터의 복제 관리에 대한 자세한 내용은 Aurora 복제본 사용 단원을 참조하세요.

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

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

예제

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

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

mysql.rds_set_external_master_with_auto_position(Aurora MySQL 버전 2)

Aurora MySQL 기본 인스턴스가 외부 MySQL 인스턴스에서 수신되는 복제를 수락하도록 구성하십시오. 또한 이 절차에서는 전역 트랜잭션 식별자(GTID)를 기반으로 한 복제를 구성합니다.

Aurora MySQL은 지연된 복제를 지원하지 않기 때문에 이 프로시저는 지연된 복제를 구성하지 않습니다.

구문

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

파라미터

host_name

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

host_port

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

replication_user_name

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

replication_user_password

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

ssl_encryption

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

사용 노트

Aurora MySQL DB 클러스터의 경우, 기본 인스턴스에 연결된 상태에서 이 저장 프로시저를 호출합니다.

마스터 사용자는 mysql.rds_set_external_master_with_auto_position 프로시저를 실행해야 합니다. 마스터 사용자는 복제 대상의 역할을 하는 Aurora MySQL DB 클러스터의 기본 인스턴스에서 이 절차를 실행합니다. 이것은 외부 MySQL DB 인스턴스 또는 Aurora MySQL DB 클러스터의 복제 대상이 될 수 있습니다.

이 프로시저는 Aurora MySQL 버전 2에서 지원됩니다. Aurora MySQL 버전 3의 경우 대신 mysql.rds_set_external_source_with_auto_position(Aurora MySQL 버전 3) 프로시저를 사용하세요.

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

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

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

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

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

문제의 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너뛰려면 mysql.rds_skip_transaction_with_gtid 저장 프로시저를 사용할 수 있습니다. GTID 기반 복제 작업에 대한 자세한 내용은 GTID 기반 복제 사용 단원을 참조하세요.

예제

Aurora 기본 인스턴스에서 다음 예제를 실행하면 Aurora 클러스터가 Aurora 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본의 역할을 하도록 구성됩니다.

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

mysql.rds_set_external_source(Aurora MySQL 버전 3)

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

중요

이 프로시저를 실행하려면 autocommit를 활성화해야 합니다. 활성화하려면 autocommit 파라미터를 1로 설정합니다. 파라미터 수정에 대한 자세한 정보는 DB 파라미터 그룹의 파라미터 수정 단원을 참조하십시오.

구문

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 );

파라미터

host_name

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

host_port

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

replication_user_name

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

replication_user_password

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

mysql_binary_log_file_name

복제 정보를 포함하는 소스 데이터베이스 인스턴스의 이진 로그 이름입니다.

mysql_binary_log_file_location

복제 시 복제 정보를 읽기 시작하는 mysql_binary_log_file_name 이진수 로그 내 위치입니다.

소스 데이터베이스 인스턴스의 SHOW MASTER STATUS를 실행하여 binlog 파일 이름 및 위치를 확인할 수 있습니다.

ssl_encryption

복제 연결에 보안 소켓 계층(SSL) 암호화를 사용할지 여부를 지정하는 값입니다. 1은 SSL 암호화 사용, 0은 암호화 사용 안 함입니다. 기본값은 0입니다.

참고

이 옵션을 활성화하려면 mysql.rds_import_binlog_ssl_material을 사용하여 사용자 지정 SSL 인증서를 가져와야 합니다. 사용자 지정 SSL 인증서를 가져오지 않은 경우 이 파라미터를 0으로 설정하고 mysql.rds_set_binlog_source_ssl(Aurora MySQL 버전 3)을 사용하여 binlog 복제를 위한 SSL을 활성화하세요.

MASTER_SSL_VERIFY_SERVER_CERT 옵션은 지원되지 않습니다. 이 옵션은 0으로 설정되어 있는데, 이는 연결이 암호화되었지만 인증서는 확인되지 않았음을 의미합니다.

사용 노트

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

mysql.rds_set_external_source을 실행하기 전에 소스 데이터베이스 인스턴스가 되도록 Amazon RDS 외부에서 실행 중인 MySQL 인스턴스를 구성해야 합니다. Amazon RDS 외부에서 실행하는 MySQL 인스턴스에 연결하려면 MySQL의 외부 인스턴스에서 replication_user_namereplication_user_password 권한이 있는 복제 사용자를 나타내는 REPLICATION CLIENTREPLICATION 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';
    참고

    보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

  2. MySQL의 외부 인스턴스에서 복제 사용자에게 REPLICATION CLIENTREPLICATION SLAVE 권한을 부여합니다. 다음 예제에서는 도메인의 'repl_user' 사용자에게 모든 데이터베이스에 대한 REPLICATION CLIENTREPLICATION 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 연결을 사용하도록 소스 데이터베이스 인스턴스를 구성합니다. 또한 mysql.rds_import_binlog_ssl_material 프로시저를 사용하여 인증 기관(CA) 인증서, 클라이언트 인증서, 클라이언트 키를 DB 인스턴스나 DB 클러스터로 가져옵니다.

참고

이러한 저장 프로시저는 주로 Amazon RDS 외부에서 실행되는 MySQL 인스턴스를 사용하여 복제할 수 있도록 하기 위한 것입니다. 가능하면 Aurora 복제본을 사용하여 Aurora MySQL DB 클러스터 내에서 복제를 관리하는 것이 좋습니다. Aurora MySQL DB 클러스터의 복제 관리에 대한 자세한 내용은 Aurora 복제본 사용 단원을 참조하세요.

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

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

예제

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

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

mysql.rds_set_external_source_with_auto_position(Aurora MySQL 버전 3)

Aurora MySQL 기본 인스턴스가 외부 MySQL 인스턴스에서 수신되는 복제를 수락하도록 구성하십시오. 또한 이 절차에서는 전역 트랜잭션 식별자(GTID)를 기반으로 한 복제를 구성합니다.

구문

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

파라미터

host_name

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

host_port

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

replication_user_name

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

replication_user_password

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

ssl_encryption

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

참고

Binlog를 복제하려면 mysql.rds_set_binlog_source_ssl(Aurora MySQL 버전 3)을 사용하여 SSL을 활성화합니다.

사용 노트

Aurora MySQL DB 클러스터의 경우, 기본 인스턴스에 연결된 상태에서 이 저장 프로시저를 호출합니다.

관리 사용자는 mysql.rds_set_external_source_with_auto_position 프로시저를 실행해야 합니다. 관리 사용자는 복제 대상의 역할을 하는 Aurora MySQL DB 클러스터의 기본 인스턴스에서 이 프로시저를 실행합니다. 이것은 외부 MySQL DB 인스턴스 또는 Aurora MySQL DB 클러스터의 복제 대상이 될 수 있습니다.

이 프로시저는 Aurora MySQL 버전 3에서 지원됩니다. Aurora MySQL은 지연된 복제를 지원하지 않기 때문에 이 프로시저는 지연된 복제를 구성하지 않습니다.

mysql.rds_set_external_source_with_auto_position을 실행하기 전에 외부 MySQL DB 인스턴스가 복제 소스가 되도록 구성합니다. 외부 MySQL 인스턴스에 연결하려면 replication_user_namereplication_user_password의 값을 지정해야 합니다. 이러한 값은 외부 MySQL의 외부 인스턴스에 대해 REPLICATION CLIENTREPLICATION SLAVE 권한을 가진 복제 사용자를 나타내야 합니다.

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

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

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

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

문제의 원인으로 알려진 특정 GTID 기반 트랜잭션을 건너뛰려면 mysql.rds_skip_transaction_with_gtid/> 저장 프로시저를 사용할 수 있습니다. GTID 기반 복제 작업에 대한 자세한 내용은 GTID 기반 복제 사용 단원을 참조하세요.

예제

Aurora 기본 인스턴스에서 다음 예제를 실행하면 Aurora 클러스터가 Aurora 외부에서 실행 중인 MySQL 인스턴스의 읽기 전용 복제본의 역할을 하도록 구성됩니다.

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

mysql.rds_set_master_auto_position (Aurora MySQL 버전 2)

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

구문

CALL mysql.rds_set_master_auto_position ( auto_position_mode );

파라미터

auto_position_mode

로그 파일 위치 복제 또는 GTID를 기반으로 하는 복제를 사용할지 여부를 나타내는 값:

  • 0 – 바이너리 로그 파일 위치를 기반으로 한 복제 방법을 사용합니다. 기본값은 0입니다.

  • 1 – GTID 기반 복제 방법을 사용합니다.

사용 노트

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

이 프로시저는 Aurora MySQL 버전 2에서 지원됩니다.

mysql.rds_set_read_only(Aurora MySQL 버전 3)

DB 인스턴스에 대해 전역적으로 read_only 모드를 활성화하거나 비활성화합니다.

구문

CALL mysql.rds_set_read_only(mode);

파라미터

mode

DB 인스턴스에 대해 read_only 모드가 전역적으로 활성화되었는지 또는 비활성화되었는지를 나타내는 값입니다.

  • 0 - OFF. 기본값은 0입니다.

  • 1ON

사용 노트

mysql.rds_set_read_only 저장 프로시저는 read_only 파라미터만 수정합니다. 리더 DB 인스턴스에서는 innodb_read_only 파라미터를 변경할 수 없습니다.

read_only 파라미터 변경 사항은 재부팅 후에는 지속되지 않습니다. read_only를 영구적으로 변경하려면 read_only DB 클러스터 파라미터를 사용해야 합니다.

이 프로시저는 Aurora MySQL 버전 3.06 이상에서 지원됩니다.

mysql.rds_set_session_binlog_format(Aurora MySQL 버전 2)

현재 세션의 이진 로그 형식을 설정합니다.

구문

CALL mysql.rds_set_session_binlog_format(format);

파라미터

format

현재 세션의 이진 로그 형식을 나타내는 값:

  • STATEMENT - 복제 소스가 SQL 명령문을 기반으로 이진 로그에 이벤트를 기록합니다.

  • ROW - 복제 소스가 개별 테이블 행의 변경을 나타내는 이벤트를 이진 로그에 기록합니다.

  • MIXED - 로깅이 일반적으로 SQL 명령문을 기반으로 하지만 특정 조건에서는 행으로 전환됩니다. 자세한 내용은 MySQL 설명서의 혼합 이진 로깅 형식을 참조하세요.

사용 노트

Aurora MySQL DB 클러스터의 경우, 기본 인스턴스에 연결된 상태에서 이 저장 프로시저를 호출합니다.

이 저장 프로시저를 사용하려면 현재 세션에 대해 이진 로깅을 구성해야 합니다.

Aurora의 경우, 이 프로시저는 Aurora MySQL 버전 2.12 이상과 MySQL 5.7 호환 버전에서 지원됩니다.

mysql.rds_set_source_auto_position(Aurora MySQL 버전 3)

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

구문

CALL mysql.rds_set_source_auto_position (auto_position_mode);

파라미터

auto_position_mode

로그 파일 위치 복제 또는 GTID를 기반으로 하는 복제를 사용할지 여부를 나타내는 값:

  • 0 – 바이너리 로그 파일 위치를 기반으로 한 복제 방법을 사용합니다. 기본값은 0입니다.

  • 1 – GTID 기반 복제 방법을 사용합니다.

사용 노트

Aurora MySQL DB 클러스터의 경우, 기본 인스턴스에 연결된 상태에서 이 저장 프로시저를 호출합니다.

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

mysql.rds_skip_transaction_with_gtid(Aurora MySQL 버전 2 및 3)

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

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

구문

CALL mysql.rds_skip_transaction_with_gtid ( gtid_to_skip );

파라미터

gtid_to_skip

건너 뛸 복제 트랜잭션의 GTID입니다.

사용 노트

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

이 프로시저는 Aurora MySQL 버전 2 및 3에서 지원됩니다.

예제

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

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

mysql.rds_skip_repl_error

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

구문

CALL mysql.rds_skip_repl_error;

사용 노트

마스터 사용자는 읽기 전용 복제본에서 mysql.rds_skip_repl_error 프로시저를 실행해야 합니다. 이 프로시저에 대한 자세한 내용은 현재 복제 오류 넘어가기를 참조하세요.

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

참고

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

Aurora MySQL의 복제 오류 해결에 대한 자세한 내용은 MySQL 읽기 복제 오류 진단 및 해결 섹션을 참조하세요.

복제 중지 오류

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

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

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

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

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

binlog 보관 기간을 설정하려면 mysql.rds_set_configuration 프로시저를 사용하여 'binlog retention hours' 구성 파라미터와 DB 클러스터에 binlog 파일을 보관할 시간을 함께 지정하십시오. 다음 예제에서는 binlog 파일의 보관 기간을 48시간으로 설정합니다.

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

mysql.rds_start_replication

Aurora MySQL DB 클러스터에서 복제를 시작합니다.

참고

mysql.rds_start_replication_until(Aurora MySQL 버전 3) 또는 mysql.rds_start_replication_until_gtid(Aurora MySQL 버전 3) 저장 프로시저를 사용하여 Aurora MySQL DB 인스턴스에서 복제를 시작하고 지정된 바이너리 로그 파일 위치에서 복제를 중지할 수 있습니다.

구문

CALL mysql.rds_start_replication;

사용 노트

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

Amazon RDS 외부에서 실행 중인 MySQL 인스턴스에서 데이터를 가져오려면 mysql.rds_set_external_master 또는 mysql.rds_set_external_source를 호출하여 복제 구성을 빌드한 다음, 읽기 전용 복제본에서 mysql.rds_start_replication을 호출하여 복제 프로세스를 시작합니다. 자세한 내용은 Aurora과 MySQL 간의 복제 또는 Aurora와 다른 Aurora DB 클러스터(이진 로그 복제본) 간의 복제 단원을 참조하십시오.

Amazon RDS 외부의 MySQL 인스턴스로 데이터를 내보내려면 읽기 전용 복제본에서 mysql.rds_start_replicationmysql.rds_stop_replication을 호출하여 바이너리 로그 삭제 등의 몇 가지 복제 작업을 제어합니다. 자세한 내용은 Aurora과 MySQL 간의 복제 또는 Aurora와 다른 Aurora DB 클러스터(이진 로그 복제본) 간의 복제 단원을 참조하십시오.

읽기 전용 복제본에서 mysql.rds_start_replication을 호출하여 이전에 mysql.rds_stop_replication을 호출하여 중지한 복제 프로세스를 재시작할 수도 있습니다. 자세한 내용은 복제 중지 오류 단원을 참조하십시오.

mysql.rds_start_replication_until(Aurora MySQL 버전 3)

Aurora MySQL DB 클러스터에서 복제를 시작하고 지정된 바이너리 로그 파일 위치에서 복제를 중지합니다.

구문

CALL mysql.rds_start_replication_until ( replication_log_file , replication_stop_point );

파라미터

replication_log_file

복제 정보를 포함하는 소스 데이터베이스 인스턴스의 이진 로그 이름입니다.

replication_stop_point

복제를 중지할 replication_log_file 바이너리 로그 내 위치입니다.

사용 노트

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

이 프로시저는 Aurora MySQL 버전 3.04 이상에서 지원됩니다.

mysql.rds_start_replication_until 저장 프로시저는 다음을 포함하는 관리형 복제에 지원되지 않습니다.

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

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

예제

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

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

mysql.rds_start_replication_until_gtid(Aurora MySQL 버전 3)

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

구문

CALL mysql.rds_start_replication_until_gtid(gtid);

파라미터

gtid

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

사용 노트

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

이 프로시저는 Aurora MySQL 버전 3.04 이상에서 지원됩니다.

mysql.rds_start_replication_until_gtid 저장 프로시저는 다음을 포함하는 관리형 복제에 지원되지 않습니다.

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

예제

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

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

mysql.rds_stop_replication

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

구문

CALL mysql.rds_stop_replication;

사용 노트

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

Amazon RDS 외부에서 실행 중인 MySQL 인스턴스에서 데이터를 가져오도록 복제를 구성하는 경우 가져오기가 완료된 후 읽기 전용 복제본에서 mysql.rds_stop_replication을 호출하여 복제 프로세스를 중지합니다. 자세한 내용은 Aurora과 MySQL 간의 복제 또는 Aurora와 다른 Aurora DB 클러스터(이진 로그 복제본) 간의 복제 단원을 참조하십시오.

Amazon RDS 외부의 MySQL 인스턴스로 데이터를 내보내도록 복제를 구성할 경우 읽기 전용 복제본에서 mysql.rds_start_replicationmysql.rds_stop_replication을 호출하여 이진 로그 삭제 등의 몇 가지 복제 작업을 제어합니다. 자세한 내용은 Aurora과 MySQL 간의 복제 또는 Aurora와 다른 Aurora DB 클러스터(이진 로그 복제본) 간의 복제 단원을 참조하십시오.

mysql.rds_stop_replication 저장 프로시저는 다음을 포함하는 관리형 복제에 지원되지 않습니다.