Aurora MySQL에서 binlog 보존 시간을 확인·설정하는 방법
公開日 2026-08-13 · 更新日 2026-08-13 · 最終検証日 2026-08-13
結論
Aurora MySQL의 binlog 보존 시간은 `CALL mysql.rds_show_configuration;`으로 확인하고, `CALL mysql.rds_set_configuration('binlog retention hours', 24);`로 설정합니다. 단위는 시간이며, `NULL`이나 0이면 RDS가 불필요하다고 판단한 binlog를 조기에 삭제합니다. DMS의 CDC 등 binlog를 읽는 구성에서는 소비 측이 중단되어도 따라잡을 수 있는 길이로 설정하십시오. 함께 `binlog_format`이 `ROW`인지도 확인합니다.
この文書の適用条件
| 対象製品 | Aurora MySQL(MySQL 호환 에디션) |
|---|---|
| 確認バージョン | Aurora MySQL 2.x(MySQL 5.7 호환) / 3.x(MySQL 8.0 호환). `SHOW MASTER STATUS`의 사용 가능 여부는 버전에 따라 다르므로 확인 필요 |
| 適用環境 | Amazon Aurora(AWS) |
| 必要権限 | `mysql.rds_set_configuration`은 RDS의 마스터 사용자 수준 권한 필요. `SHOW BINARY LOGS`는 `REPLICATION CLIENT` 권한 |
| 実行影響 | 조회계는 영향 없음. 보존 시간 변경은 설정 변경, `binlog_format` 변경은 재시작을 수반, `PURGE BINARY LOGS`는 로그 삭제 |
| 再起動 | 보존 시간 변경은 불필요. `binlog_format` 변경은 라이터 인스턴스 재시작 필요 |
| 最終検証日 | 2026-08-13 |
そのまま実行できるコマンド
- 対象
- Aurora MySQL 2.x / 3.x
- 権限
- 저장 프로시저 실행 권한(일반적으로 마스터 사용자)
- 変更作業
- 없음(조회만)
- Production実行
- 가능
-- 対象: Aurora MySQL 2.x / 3.x
-- 権限: mysql スキーマのストアドプロシージャ実行権限(通常はマスターユーザー)
-- 変更作業: なし(参照のみ)
-- Production 実行: 可能
CALL mysql.rds_show_configuration;`name`이 `binlog retention hours`인 행이 보존 시간입니다. 값이 `NULL`이면 명시적 설정이 없는 상태로, RDS가 불필요하다고 판단한 binlog를 조기에 삭제합니다. 같은 결과셋에 다른 RDS 설정도 포함됩니다.
- 対象
- Aurora MySQL 2.x / 3.x
- 権限
- 접속 권한(전역 변수 조회)
- 変更作業
- 없음(조회만)
- Production実行
- 가능
-- 対象: Aurora MySQL 2.x / 3.x
-- 権限: 接続権限(グローバル変数の参照のみ)
-- 変更作業: なし(参照のみ)
-- Production 実行: 可能
SELECT
@@global.log_bin AS log_bin_enabled,
@@global.binlog_format AS binlog_format,
@@global.binlog_row_image AS binlog_row_image,
@@global.binlog_checksum AS binlog_checksum;Aurora MySQL에서는 `binlog_format`을 `OFF` 이외로 설정하면 binlog가 활성화됩니다. DMS의 CDC나 일반적인 레플리케이션에서는 `ROW`가 전제입니다. `binlog_row_image`가 `MINIMAL`이면 변경된 열 이외의 값이 기록되지 않아 CDC 쪽에서 필요한 정보가 부족할 수 있습니다.
- 対象
- Aurora MySQL 2.x / 3.x(라이터 인스턴스)
- 権限
- `REPLICATION CLIENT` 권한
- 変更作業
- 없음(조회만)
- Production実行
- 가능
-- 対象: Aurora MySQL 2.x / 3.x(ライターインスタンス)
-- 権限: REPLICATION CLIENT 権限
-- 変更作業: なし(参照のみ)
-- Production 実行: 可能
-- 1) 現存するbinlogファイルとサイズ
SHOW BINARY LOGS;
-- 2) 現在の書き込み位置(Aurora MySQL 3.x の一部バージョンでは
-- SHOW BINARY LOG STATUS に置き換えられているため、エラーになる場合はそちらを使う)
SHOW MASTER STATUS;`SHOW BINARY LOGS`의 총 크기는 보존 시간 설정에 따라 늘거나 줍니다. 파일명은 Aurora MySQL에서 `mysql-bin-changelog.NNNNNN` 형식입니다. `SHOW MASTER STATUS`는 MySQL 8.0 계열 최신 버전에서 다른 이름으로 대체되었으므로, 실행 가능 여부는 직접 환경에서 확인하십시오(요확인).
- 対象
- Aurora MySQL 2.x / 3.x
- 権限
- RDS의 마스터 사용자 수준 권한(일반 애플리케이션 사용자로는 실행 불가)
- 変更作業
- 있음(binlog 보존 정책 변경)
- Production実行
- 가능. 단 스토리지 소비가 증가하므로 사전 추정 필요
-- 対象: Aurora MySQL 2.x / 3.x
-- 権限: RDSのマスターユーザー相当(一般ユーザーではアクセス拒否になる)
-- 変更作業: あり(binlog の保持時間ポリシーを変更する)
-- Production 実行: 可能。ただしストレージ消費が増えるため事前に見積もること
-- 保持時間は「時間」単位で指定する(例: 24時間)
CALL mysql.rds_set_configuration('binlog retention hours', 24);
-- 設定後の値を確認する
CALL mysql.rds_show_configuration;
-- 明示設定を解除して既定の挙動(早期削除)に戻す場合
-- CALL mysql.rds_set_configuration('binlog retention hours', NULL);두 번째 인수는 시간 수입니다. 일 수가 아닙니다. `NULL`을 설정하면 명시적 설정이 해제되어 RDS가 불필요하다고 판단한 시점에 binlog가 삭제됩니다. 설정을 짧게 바꾼 직후에는 아직 읽기를 마치지 못한 CDC 소비 측이 따라잡지 못할 수 있으므로, 소비 측의 지연을 확인한 뒤 줄이십시오.
- 対象
- Aurora MySQL(DB 클러스터 파라미터 그룹)
- 権限
- IAM: `rds:ModifyDBClusterParameterGroup`, `rds:RebootDBInstance`
- 変更作業
- 있음(클러스터 파라미터 변경 + 라이터 인스턴스 재시작)
- Production実行
- 재시작이 수반되므로 불가. 유지보수 시간대에 계획적으로 실행
# 対象: Aurora MySQL(DBクラスターパラメータグループ)
# 権限: IAM rds:ModifyDBClusterParameterGroup, rds:RebootDBInstance
# 変更作業: あり(クラスターパラメータ変更 + ライターインスタンス再起動)
# Production 実行: 不可(再起動を伴うためメンテナンス時間帯に計画実行)
# 1) 現在値と反映方法を確認する
aws rds describe-db-cluster-parameters \
--db-cluster-parameter-group-name example-aurora-mysql-cluster-params \
--query "Parameters[?ParameterName=='binlog_format' || ParameterName=='binlog_row_image'].{Name:ParameterName,Value:ParameterValue,Apply:ApplyType}" \
--output table
# 2) binlog_format を ROW に変更する(クラスター単位のパラメータ)
aws rds modify-db-cluster-parameter-group \
--db-cluster-parameter-group-name example-aurora-mysql-cluster-params \
--parameters '[
{"ParameterName":"binlog_format","ParameterValue":"ROW","ApplyMethod":"pending-reboot"}
]'
# 3) ライターインスタンスを再起動して反映する(接続断が発生する)
aws rds reboot-db-instance --db-instance-identifier example-aurora-instance`binlog_format`은 DB 클러스터 파라미터 그룹 쪽 설정입니다. DB 파라미터 그룹(인스턴스 단위)에서 찾으면 보이지 않습니다. 적용에는 재시작이 필요하며 연결 끊김이 발생합니다. binlog를 활성화하면 쓰기 처리에 로그 생성 부하가 추가되지만, 그 크기는 워크로드에 따라 다르므로 사전에 검증 환경에서 측정하십시오(본 문서에서는 수치를 제시하지 않습니다).
- 対象
- Aurora MySQL 2.x / 3.x(라이터 인스턴스)
- 権限
- MySQL 8.0 호환에서는 `BINLOG_ADMIN`, 5.7 호환에서는 `SUPER` 수준. RDS에서는 마스터 사용자
- 変更作業
- 있음(binlog 파일 삭제. 되돌릴 수 없음)
- Production実行
- 원칙적으로 불가. 소비 측의 읽기 위치를 확인한 뒤에만
-- 対象: Aurora MySQL 2.x / 3.x(ライターインスタンス)
-- 権限: MySQL 8.0互換は BINLOG_ADMIN、5.7互換は SUPER 相当(RDSではマスターユーザー)
-- 変更作業: あり(binlog ファイルを削除する。削除したログは復元できない)
-- Production 実行: 原則不可。全ての消費側の読み取り位置を確認してからのみ実施する
-- 1) 先に消費側(レプリカ・DMS・CDC)がどこまで読んでいるかを確認する
SHOW BINARY LOGS;
-- 2) 指定ファイルより前のbinlogを削除する
PURGE BINARY LOGS TO 'mysql-bin-changelog.000123';
-- 3) 日時指定で削除する場合
-- PURGE BINARY LOGS BEFORE '2026-08-01 00:00:00';아직 읽기를 마치지 못한 소비 측이 있는 파일을 삭제하면 레플리케이션이나 CDC는 복구할 수 없게 되어 초기 로드부터 다시 시작해야 합니다. RDS / Aurora에서는 binlog의 수명을 원칙적으로 `binlog retention hours`로 관리하며, 수동 삭제는 "스토리지가 부족하고 다른 수단이 없는" 경우의 최후의 수단으로만 사용하십시오.
結果の読み方
| 列 | 意味 | 確認するポイント |
|---|---|---|
| name(rds_show_configuration) | 설정 항목명 | `binlog retention hours` 행을 찾음 |
| value(rds_show_configuration) | 설정값(시간 수) | `NULL`이면 명시적 설정 없음. CDC 소비 측의 최대 허용 중단 시간보다 긴지 |
| description(rds_show_configuration) | 설정 항목 설명 | 단위가 시간임을 확인할 수 있음 |
| Log_name(SHOW BINARY LOGS) | binlog 파일명 | Aurora에서는 `mysql-bin-changelog.NNNNNN` 형식. 가장 오래된 파일이 보존 기간의 하한을 나타냄 |
| File_size(SHOW BINARY LOGS) | 파일 크기(바이트) | 합계값이 스토리지 소비량. 보존 시간을 늘리기 전에 합계를 추정 |
| binlog_format | binlog 기록 형식 | DMS의 CDC나 일반적인 레플리케이션에서는 `ROW`가 필요 |
| binlog_row_image | ROW 형식으로 기록하는 열의 범위 | `MINIMAL`이면 CDC 쪽에서 필요한 열이 부족할 수 있음 |
こういう状況で使います
- DMS의 CDC 작업이 "binlog를 찾을 수 없음" 계열 오류로 중지됨
- 외부 레플리카를 한 번 멈췄다가 재개했더니 따라잡지 못하고 오류가 발생함
- binlog를 활성화한 후 클러스터의 스토리지 사용량이 계속 증가함
- `CALL mysql.rds_set_configuration(...)`를 실행했더니 접근 거부됨
- DMS의 엔드포인트 테스트에서 binlog 설정 관련 경고가 발생함
考えられる原因(可能性の高い順)
01
보존 시간이 명시적으로 설정되지 않음
`binlog retention hours`가 `NULL`인 경우 RDS는 불필요하다고 판단한 binlog를 조기에 삭제합니다. CDC 소비 측이 일시 중단되면 재개 시 필요한 binlog가 이미 없을 수 있습니다.
02
보존 시간이 소비 측의 중단 시간보다 짧음
소비 측(DMS 작업, 외부 레플리카)이 유지보수나 장애로 멈추는 시간보다 보존 시간이 짧으면 재개 시 따라잡을 수 없습니다. 허용 중단 시간을 역산하여 설정해야 합니다.
03
`binlog_format`이 `ROW`로 설정되지 않음
`STATEMENT`나 `MIXED`에서는 CDC가 필요로 하는 행 단위 변경 내용을 가져올 수 없습니다. Aurora에서는 클러스터 파라미터 그룹에서 설정합니다.
04
실행 사용자에게 RDS 마스터 사용자 수준 권한이 없음
`mysql.rds_set_configuration`은 RDS가 제공하는 저장 프로시저로, 실행에는 마스터 사용자 수준 권한이 필요합니다. 애플리케이션용 일반 사용자로는 접근이 거부됩니다.
05
수동 `PURGE BINARY LOGS`로 필요한 로그를 삭제함
소비 측이 아직 읽지 않은 파일을 삭제하면 복구할 수 없습니다. 스토리지 부족 시의 임시 대응으로 실행되어 나중에 발견되는 경우가 있습니다.
06
장애 조치(failover)로 쓰기 대상이 전환됨
라이터가 전환되면 binlog 파일명과 위치의 연속성을 소비 측이 어떻게 처리하는지가 문제가 됩니다. CDC 쪽의 재개 방식을 확인하십시오.
確認手順
- 1
보존 시간의 현재 값 확인하기
参照のみ`CALL mysql.rds_show_configuration;`을 실행해 `binlog retention hours` 값을 확인합니다. 조회만 하므로 안전합니다.
- 2
binlog가 활성화되어 있고 ROW 형식인지 확인하기
参照のみ`@@global.log_bin`과 `@@global.binlog_format`을 조회합니다. `binlog_row_image`도 함께 확인합니다.
- 3
현존하는 binlog의 범위와 총 크기 확인하기
参照のみ`SHOW BINARY LOGS`로 가장 오래된 파일과 총 크기를 봅니다. 보존 시간을 늘리기 전의 추정에도 사용할 수 있습니다.
- 4
소비 측의 읽기 위치와 지연 확인하기
参照のみDMS라면 작업의 CDC 지연 메트릭, 외부 레플리카라면 레플리카 측 상태로 어디까지 읽었는지 확인합니다.
- 5
CloudWatch에서 스토리지 사용량 추이 확인하기
参照のみ보존 시간을 늘렸을 때의 증가분을 실제 추이에서 추정합니다.
- 6
실행 사용자의 권한 확인하기
参照のみ`SHOW GRANTS;`로 `mysql.rds_set_configuration`을 실행할 수 있는 사용자인지 확인합니다.
対応方法
すぐに実施できる低リスクの対応
마스터 사용자로 보존 시간 설정하기
高일반 사용자에서 권한 오류가 발생하면 RDS 마스터 사용자로 실행합니다. 일반 사용자에게 권한을 부여하기보다 실행 사용자를 바꾸는 쪽이 더 안전합니다.
소비 측의 허용 중단 시간으로부터 필요한 보존 시간 정하기
参照のみ"유지보수로 몇 시간 멈출 수 있는지", "장애에서 복구하는 데 몇 시간 걸릴 수 있는지"를 합산해 그보다 긴 값을 설정합니다.
事前検討が必要な変更
binlog의 스토리지 소비를 모니터링 대상에 포함하기
参照のみ보존 시간을 늘리면 그만큼 binlog가 스토리지를 소비합니다. `SHOW BINARY LOGS`의 총 크기와 클러스터 스토리지 사용량을 정기적으로 확인하십시오.
CDC 소비 측의 지연 모니터링하기
参照のみ지연이 보존 시간에 근접하면 경고가 발생하도록 해두면, binlog가 사라져 복구 불가능해지기 전에 알아챌 수 있습니다.
再起動・サービス影響を伴う変更
`binlog_format`을 `ROW`로 변경하기
高클러스터 파라미터 그룹에서 변경하고 라이터 인스턴스를 재시작합니다. 연결 끊김이 수반되므로 계획된 정지가 필요합니다.
`PURGE BINARY LOGS`로 오래된 로그 삭제하기
高삭제한 로그는 되돌릴 수 없습니다. 모든 소비 측의 읽기 위치를 확인한 뒤 최후의 수단으로만 실시하십시오.
CDC 재설정하기
専門家レビュー必須binlog가 사라져 따라잡을 수 없는 경우 초기 로드부터 다시 시작해야 합니다. 소요 시간과 전환 계획을 먼저 결정하십시오.
!注意事項
- `binlog retention hours`의 단위는 시간입니다. 일 수로 착각해 작은 값을 설정하면 CDC가 따라잡지 못하게 됩니다.
- 보존 시간을 늘릴수록 binlog가 스토리지를 소비합니다. 필요한 길이와 소비량을 모두 추정한 뒤 설정하십시오.
- `PURGE BINARY LOGS`는 삭제한 로그를 복구할 수 없습니다. 소비 측의 읽기 위치를 확인하지 않고 실행하지 마십시오.
- `binlog_format` 변경은 라이터 인스턴스 재시작을 수반합니다. 무중단으로는 적용할 수 없습니다.
- `mysql.rds_set_configuration`은 마스터 사용자 수준의 권한을 요구합니다. 권한 오류를 피하기 위해 애플리케이션 사용자에게 넓은 권한을 부여하는 것은 피하십시오.
- binlog를 활성화하면 쓰기 측에 추가 처리가 발생합니다. 영향의 크기는 워크로드에 따라 다르므로 본 문서에서는 수치를 제시하지 않습니다. 검증 환경에서 측정하십시오.
バージョン・環境による違い
これで解決しない場合に確認すること
CDC 소비 측의 재개 위치 보존 방식 확인하기
DMS나 레플리카가 읽기 위치를 어디에 저장하고 장애 조치 후 어떻게 재개하는지 확인합니다.
클러스터 스토리지 사용량 추이 확인하기
binlog뿐만 아니라 임시 영역이나 스냅샷도 포함해 증가 요인을 구분합니다.
백업 보존 기간과의 관계 정리하기
binlog 보존과 백업 보존은 별개의 설정입니다. 복구 요구사항에 대해 어느 쪽이 어디까지 영향을 주는지 정리하십시오.
마스터 사용자 관리 방법 확인하기
마스터 사용자의 자격 증명 보관과 사용 절차를 정해두지 않으면 필요할 때 설정 변경을 할 수 없습니다.
binlog를 읽는 소비 측 목록 만들기
DMS, 외부 레플리카, 변경 알림 체계 등 binlog에 의존하는 것들을 미리 찾아두면 보존 시간 판단이 빨라집니다.
この文書の根拠と限界
製品の公式ドキュメントに基づく説明
Amazon RDS / Aurora의 관리용 저장 프로시저 `mysql.rds_show_configuration` / `mysql.rds_set_configuration`, MySQL의 바이너리 로그 관련 시스템 변수(`log_bin`, `binlog_format`, `binlog_row_image`)와 `SHOW BINARY LOGS` / `PURGE BINARY LOGS`의 공개 사양, 그리고 Aurora의 DB 클러스터 파라미터 그룹 공개 사양에 기반합니다. 권장 보존 시간이나 binlog 활성화로 인한 성능 영향의 수치는 환경에 따라 다르므로 기재하지 않았습니다.
よくある質問
binlog의 보존 시간은 어디서 확인할 수 있습니까?
`CALL mysql.rds_show_configuration;`을 실행해 `binlog retention hours` 행을 봅니다. 값이 `NULL`이면 명시적 설정이 없고, RDS가 불필요하다고 판단한 시점에 삭제되는 상태입니다.
rds_set_configuration에서 권한 오류가 발생하는 이유는 무엇입니까?
`mysql.rds_set_configuration`은 RDS가 제공하는 관리용 저장 프로시저로, 실행에는 마스터 사용자 수준의 권한이 필요하기 때문입니다. 애플리케이션용 일반 사용자로는 접근이 거부됩니다. 일반 사용자에게 권한을 추가하기보다 마스터 사용자로 실행하십시오.
Production에서 실행할 수 있습니까?
확인계(`rds_show_configuration`, `SHOW BINARY LOGS`, 전역 변수 조회)는 운영 환경에서 실행할 수 있습니다. 보존 시간 변경은 스토리지 소비가 증가하므로 사전 추정이 필요하고, `binlog_format` 변경은 재시작을 수반하므로 계획된 정지가 필요합니다. `PURGE BINARY LOGS`는 원칙적으로 운영 환경에서 실행하지 마십시오.
보존 시간은 어느 정도로 설정해야 합니까?
일반적인 권장값이 아니라 소비 측의 허용 중단 시간으로부터 결정합니다. "CDC가 멈춘 뒤 복구까지 최대 얼마나 걸릴 수 있는지"를 추정하고, 그보다 충분히 긴 값을 설정하십시오. 길게 설정할수록 스토리지를 소비합니다.
binlog_format을 변경하는 데 재시작이 필요합니까?
필요합니다. `binlog_format`은 DB 클러스터 파라미터 그룹의 설정으로, 적용에는 라이터 인스턴스의 재시작이 필요합니다. 연결 끊김이 수반되므로 유지보수 시간대에 실시하십시오.
결과를 어떻게 판단합니까?
`binlog retention hours`가 소비 측의 최대 중단 시간보다 짧으면 설정이 부족한 것입니다. `SHOW BINARY LOGS`의 가장 오래된 파일의 시각이 소비 측의 읽기 위치보다 최신이라면, 이미 따라잡을 수 없는 상태입니다. 이 경우 설정 변경으로는 회복되지 않으며 초기 로드부터 다시 시작해야 합니다.
この文書がカバーする質問
- rds_set_configuration에서 권한 오류가 발생함
- DMS의 CDC에서 binlog를 찾을 수 없다는 오류가 발생함
- Aurora MySQL에서 binlog를 활성화하고 싶다
- binlog가 스토리지를 압박하고 있음
リスク表示の意味
- 参照のみデータと設定を変更しません。
- 低影響は限定的ですが、権限と負荷の確認が必要です。
- 中性能・ロック・コストに影響する可能性があります。
- 高障害・データ損失・復旧作業が発生する可能性があります。
- 専門家レビュー必須本番適用前に別途レビューが必須です。
GIIPの対応範囲
binlog 보존 시간은 "한 번 설정하면 잊어버리는" 설정이 되기 쉽지만, 실제로는 CDC 소비 측의 구성이 바뀔 때마다 적정성이 달라집니다. GIIP에서는 보존 시간 설정값·현존 binlog의 총 크기·CDC 쪽의 지연을 같은 화면에서 추적할 수 있게 하고, 지연이 보존 시간에 근접한 단계에서 알림이 가도록 하고 있습니다. binlog 삭제나 `binlog_format` 변경처럼 되돌릴 수 없는 작업은 자동화 대상에서 제외하고 반드시 사람의 승인을 거치는 설계로 되어 있습니다.
執筆・技術検証
GIIP プロダクション運用チーム
大規模Webサービス、SQL Server、Oracle、AWS、Azureの設計・移行・運用に約30年従事。x12largeクラスのAWS RDS for SQL Server環境12セット、約12万テーブルのOracle環境、約3TBのTiDBからAurora MySQLへの移行を経験。現在も複数のクラウドデータベースと約30のWebサービスを、AIエージェントと人間の専門家が継続的に監視・運用しています。
AWS DMS에서 Error 1032가 발생하는 원인과 확인 방법
DMS CDC에서 발생하는 Error 1032는 대상(타겟)에 해당 행이 없다는 의미입니다. 제어 테이블을 읽는 방법과 기본 키 불일치 확인 절차, 작업 설정 선택지를 정리합니다.
aurora-mysqlAurora MySQL에서 감사 로그를 수집하고 확인하는 방법
Aurora MySQL의 Advanced Auditing을 클러스터 파라미터로 활성화하고 CloudWatch Logs 또는 RDS 로그 파일로 확인하는 절차입니다. 기록 대상을 좁히는 방법도 정리합니다.
sql-serverSQL Server에서 MSrepl_commands가 계속 늘어나는 원인과 복제 지연 확인 방법
배포 데이터베이스의 명령 적체를, 배포 에이전트의 동작 현황과 클린업 작업·보존 기간의 양면에서 구분하는 절차입니다.
database-migration3TB 규모 데이터베이스를 마이그레이션할 때 계획을 세우는 방법
3TB급 마이그레이션 계획은 크기 실측, 전환 방식 선택, 시험 실행을 통한 소요 시간 실측, 검증과 롤백 설계의 순서로 구성합니다. 기준값이 아니라 실측값으로 일정을 잡기 위한 절차입니다.
関連サービス
binlog 보존 및 CDC 구성 점검을 요청하기
同じ確認を複数の環境で継続する必要がある場合は、運用体制ごと相談できます。
binlog 보존 및 CDC 구성 점검을 요청하기