

# Aurora MySQL 데이터베이스에 대한 로깅
<a name="aurora-mysql-troubleshooting-logging"></a>

Aurora MySQL 로그는 데이터베이스 활동 및 오류에 대한 필수 정보를 제공합니다. 이러한 로그를 활성화하면 문제를 식별 및 해결하고, 데이터베이스 성능을 이해하고, 데이터베이스 활동을 감사할 수 있습니다. 데이터베이스의 성능과 가용성을 최적화하려면 모든 Aurora MySQL DB 인스턴스에 대해 이러한 로그를 활성화하는 것이 좋습니다. 다음과 같은 유형의 로그를 활성화할 수 있습니다. 각 로그에는 데이터베이스 처리에 미치는 영향을 파악할 수 있는 특정 정보가 포함되어 있습니다.
+ 오류 - Aurora MySQL에서는 시작, 종료 및 오류 발생 시에만 오류 로그에 데이터가 로그됩니다. DB 인스턴스는 오류 로그에 새 항목이 기록되지 않는 상태로 몇 시간이나 며칠씩 작동할 수 있습니다. 최근 항목이 보이지 않으면 이는 서버에서 로그에 입력될 만한 오류가 발생하지 않았기 때문입니다. 오류 로깅은 기본적으로 활성화됩니다. 자세한 내용은 [Aurora MySQL 오류 로그](USER_LogAccess.MySQL.LogFileSize.md#USER_LogAccess.MySQL.Errorlog) 단원을 참조하십시오.
+ 일반 - 일반 로그는 데이터베이스 엔진에서 실행되는 모든 SQL 문을 포함하여 데이터베이스 활동에 대한 자세한 정보를 제공합니다. 일반 로깅을 활성화하고 로깅 파라미터를 설정하는 방법에 대한 자세한 내용은 MySQL 설명서의 [Aurora MySQL 느린 쿼리 로그 및 일반 로그](USER_LogAccess.MySQL.LogFileSize.md#USER_LogAccess.MySQL.Generallog) 및 [The general query log](https://dev.mysql.com/doc/refman/8.0/en/query-log.html)를 참조하세요.
**참고**  
일반 로그는 크기가 매우 커져 스토리지를 차지할 수 있습니다. 자세한 내용은 [Aurora MySQL용 로그 교체 및 보존](USER_LogAccess.MySQL.LogFileSize.md#USER_LogAccess.AMS.LogFileSize.retention) 단원을 참조하십시오.
+ 느린 쿼리 - 느린 쿼리 로그는 실행하는 데 [long\$1query\$1time](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_long_query_time)초가 넘게 걸리고 검토할 행이 최소 [min\$1examined\$1row\$1limit](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_min_examined_row_limit)개여야 하는 SQL 문으로 구성됩니다. 느린 쿼리 로그를 사용하면 실행 시간이 오래 걸리고 따라서 최적화가 필요한 쿼리를 찾을 수 있습니다.

  [`long_query_time`]의 기본값은 10초입니다. 먼저 높은 값으로 시작하여 가장 느린 쿼리를 식별한 다음 세부 튜닝을 위해 낮은 값으로 내려가는 것이 좋습니다.

  `log_slow_admin_statements` 및 `log_queries_not_using_indexes`와 같은 관련 파라미터를 사용할 수도 있습니다. `rows_examined`를 `rows_returned`에 비교하세요. `rows_examined`가 `rows_returned`보다 훨씬 크면 해당 쿼리가 잠재적으로 차단될 수 있습니다.

  Aurora MySQL 버전 3에서는 자세한 내용을 확인할 수 있도록 `log_slow_extra`를 설정할 수 있습니다. 자세한 내용은 MySQL 설명서의 [Slow query log contents](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html#slow-query-log-contents)를 참조하세요. 대화식으로 쿼리 실행을 디버깅하기 위해 세션 수준에서 `long_query_time`을 수정할 수도 있는데, 이는 `log_slow_extra`가 전역적으로 활성화된 경우 특히 유용합니다.

  느린 쿼리 로깅을 활성화하고 로깅 파라미터를 설정하는 방법에 대한 자세한 내용은 MySQL 설명서의 [Aurora MySQL 느린 쿼리 로그 및 일반 로그](USER_LogAccess.MySQL.LogFileSize.md#USER_LogAccess.MySQL.Generallog) 및 [The slow query log](https://dev.mysql.com/doc/refman/8.0/en/slow-query-log.html)를 참조하세요.
+ 감사 - 감사 로그는 데이터베이스 활동을 모니터링하고 기록합니다. Aurora MySQL에 대한 감사 로깅을 고급 감사라고 합니다. 고급 감사를 활성화하려면 특정 DB 클러스터 파라미터를 설정합니다. 자세한 내용은 [Amazon Aurora MySQL DB 클러스터에서 고급 감사 사용](AuroraMySQL.Auditing.md) 단원을 참조하십시오.
+ 바이너리 - 바이너리 로그(binlog)에는 테이블 생성 작업 및 테이블 데이터 변경과 같은 데이터베이스 변경 사항을 설명하는 이벤트가 포함됩니다. 또한 행 기반 로깅을 사용하지 않는 한 잠재적으로 변경을 수행했을 수 있는 문(예: 일치하는 행이 없는 [DELETE](https://dev.mysql.com/doc/refman/8.0/en/delete.html))에 대한 이벤트도 포함됩니다. 또한 바이너리 로그에는 각 문이 업데이트된 데이터에 소요한 시간에 대한 정보도 포함됩니다.

  바이너리 로깅이 활성화된 상태에서 서버를 실행하면 성능이 약간 느려집니다. 그러나 복제를 설정하고 복원 작업을 수행할 수 있도록 하는 바이너리 로그의 이점은 일반적으로 이러한 사소한 성능 저하보다 큽니다.
**참고**  
Aurora MySQL은 복원 작업에 바이너리 로깅이 필요하지 않습니다.

  바이너리 로깅을 활성화하고 binlog 형식을 설정하는 방법에 대한 자세한 내용은 MySQL 설명서의 [단일 AZ 데이터베이스의 Aurora MySQL 이진 로깅 구성](USER_LogAccess.MySQL.BinaryFormat.md) 및 [The binary log](https://dev.mysql.com/doc/refman/8.0/en/binary-log.html)를 참조하세요.

오류, 일반, 느린 쿼리 및 감사 로그를 Amazon CloudWatch Logs에 게시할 수 있습니다. 자세한 내용은 [Amazon CloudWatch Logs에 데이터베이스 로그 게시](USER_LogAccess.Procedural.UploadtoCloudWatch.md) 단원을 참조하십시오.

느린 로그 파일, 일반 로그 파일, 바이너리 로그 파일을 요약하는 데 유용한 또 다른 도구는 [pt-query-digest](https://docs.percona.com/percona-toolkit/pt-query-digest.html)입니다.