본문 바로가기
AWS 클라우드

AWS RDS Replica 명령어 알아두기

by 반화넬 2024. 10. 15.
반응형

 

 

클라우드 기반 DB 운영을 위한 AWS RDS에서 알아두면 좋을것 같은은 RDS 명령어들입니다.


RDS에서 권한에 제한이 있어요.

 

RDS는 Super권한 을 제한합니다.
Super권한을 제한하면 아래와 같은 몇가지를 할 수 없습니다.



SUPER권한이 없어서 불가능한 항목

 

* Replication 명령 : CHANGE MASTER TO, CHANGE REPLICATION FILTER, STOP SLAVE, START SLAVE ...
* BINLOG관련 명령 : PURGE BINARY LOGS, BINLOG 명령등 불가
* KILL 명령 : 오동작중인 thread를 죽여야 하기 때문에 필요
* GRANT 명령 : USER 추가
* 추가 접속 : max connection 까지 모두 차더라도 super 권한을 가진 1개의 USER는 접속이 가능했었다.
* Variable 변경 : 설정 변경은 parameter group 변경을 통해 가능합니다.
   -> sql_log_bin=OFF 같은 명령이 안되기 때문에 슬레이브 먼저 컬럼 추가하고 마스터 적용하는 식의 ALTER가 안된다.
* init_connect : 접속시 캐릭터셋을 변경하거나, login trigger 같은 동작을 수행시킬 수 있다. 이것도 parameter group에서 가능하다.
* DEFINER 지정 : stored procedure 에서 definer 지정은 super권한이 필요하다.
* Stored procedure 생성 : super권한이 필요했었다.

 

RDS를 테스트하면서 정말 힘들었던부분은 서버 커멘드 접속을 못하니 처음에는 적응이 힘들었는데 로그 파일등을 하나씩 찾아보다 보니 조금씩 눈에 들어오기 시작합니다.하지만 그래도 불편한거는 어쩔수 없을듯 합니다. 

 

 

그리고 RDS 운영을 위한 명령어는 모두 프로시져로 제공되어 지는듯 합니다.


위 프로시져에서 RDS 관련 프로시져 알아보도록 할께요 .

 

mysql.rds_set_external_master

 

Replication 연결을 위한 명령입니다. (RDS 외부에 있는 마스터에 대해서..)
CHANGE MASTER 명령을 대체한다고 보면 되겠습니다.
Replication 연결 전에 선행작업으로 먼저 User를 생성해 줘야 합니다

mysql> CREATE USER '복제계정아이디'@'%' IDENTIFIED BY '복제계정비밀번호';
mysql> GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '복제계정아이디'@'%' IDENTIFIED BY '복제계정비밀번호';

mysql> call mysql.rds_set_external_master(
  'AWS ENDPOINT',
  PORT,
  '계정아이디',
  '계정비밀번호',
  '동기화하고자하는 바이너리파일명',
  포지션번호,
  0);

# RDS Slave 복제 START
CALL mysql.rds_start_replication;

# RDS Slave 복제 STOP
CALL mysql.rds_stop_replication;

# Slave 에서 Error가 발생했을 때 한 구문을 SKIP하고 건너뜀
CALL mysql.rds_skip_repl_error

# binary log 보관 기간 설정
# RDS-mysql 은 최대 7일(168), Aurora 는 최대 30일(720)
CALL mysql.rds_set_configuration('binlog retention hours', 24);

기존 서버의 START SLAVE, STOP SLAVE 명령와 동일합니다.

 

추가적인 명령어의 경우 아래 링크를 통해서 확인하시면 도움이 될것 같습니다.

 

https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/mysql-stored-proc-replicating.html

 

 

 

 

 

반응형