Today
Total
KoreanEnglishFrenchGermanJapaneseSpanishChinese (Simplified)
관리 메뉴

DB & AWS Knowledge

RDS, Aurora MySQL 의 binlog retention hours 본문

AWS 및 클라우드 지식/AWS RDS, Aurora 및 관련 지식

RDS, Aurora MySQL 의 binlog retention hours

`O` 2024. 1. 23. 01:36
728x90
반응형

해당 페이지에서는 AWS RDS, Aurora MySQL 의 binlog 보관 주기를 관리 할 때 사용하는 binlog retention hours 에 대해서 다룬다.

이 페이지는 아래의 AWS Document 를 참조한다.

 

[1] https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql-stored-proc-configuring.html

 

이 페이지는 아래의 이전 게시글과 연관되어 있다.

 

[2] 2021.06.28 - [MySQL/명령어] - Purge Logs (Binary Log Purge)

 

[3] 2024.01.15 - [AWS 및 클라우드 지식/AWS RDS, Aurora 및 관련 지식] - RDS, Aurora Cluster 의 Master user 의 의의 및 특징 (MySQL 기준)

 

 

MySQL 의 Binary Log (binlog) Purge

 

[1] 에서 설명한데로, MySQL Binary Log 는 일별로 일정 수준의 서비스 트랜잭션으로 인해 발생하는 데이터 변동분을 보관하면서 일정 수준의 size 만큼 보관되는게 좋으나 가끔씩 서비스 부하로 인하여 DB 부하 또한 급격하게 발생하면서 이로 인해 할당 storage 를 고갈 시킬 수준의 binlog 를 발생시키고 이를 DBA 또는 관리자들이 긴급으로 조치 해야 할 때가 있다. 이 때, 사용하는 것이 purge 명령어다.

 

 

RDS, Aurora Cluster 의 binlog retention hours 와 purge 와의 차이점

 

RDS, Aurora Cluster 에서는 purge 를 사용할 수 없다. 이는 super user (rdsadmin) 만 사용할 수 있도록 되어 있다.

그러면 RDS, Aurora Cluster 에서는 binlog 를 어떻게 관리해야 하는지 생각 할 수 있다.

 

일반적으로, RDS, Aurora Cluster 에서는 rds_set_configuration 이라는 프로시저를 사용하여 binlog 보관주기를 설정 있다. 명령어 예시는 아래와 같다.( 명령어는 master user 권한을 받은 유저만 사용 가능하다.)

 

Call mysql.rds_set_configuration('binlog retention hours', 24)

 

여기서 보관주기 시간은 24 를 다른 숫자로 바꾸면 되며, 최대 보관시간은 168시간 (7일) 이다.

즉, 이 시간 이상으로 binlog 를 보관할 수 없음을 유념하자. 또한, AWS 측에서도 각 사용자측의 삭제된 binlog file을 따로 보관하지 않으므로 이에 대해서 복구를 해 줄 수 없다. 그렇기에 binlog 보관주기 내에서 이에 대해서 어떻게 관리를 할지 생각 해 보면 좋다.

 

또한, 운영 중인 instance 에서 위의 purge 와 같이 긴급으로 binlog 를 삭제 해야 한다는 작업을 수행 해야 할 수가 없다.

하지만, RDS, Aurora Cluster 에서는 이를 사용할 수 없고, RDS 에서 storage full 로 인한 장애를 예방하기 위해서는 storage 를 긴급으로 늘리는 것이 가장 빠른 조치 방법임을 유의하자.

 

Aurora Cluster 는 RDS 와 달리 DB 사용량에 따른 storage autoscaling 이 기본사상이고, 여러 scaling 제한사항이 없기에 이에 대해서 자유로운 편이다.

반응형
Comments