전체 글13 [MySQL] 에러로그 모니터링 (log_error_services) 목차1. 개요MySQL은 서버 활동을 기록하기 위해 여러 종류의 로그를 사용합니다. Error log 서버의 시작, 종료, 비정상적인 상태에 대한 진단 메시지를 기록합니다.Binary log데이터 변경사항을 기록합니다.General log클라이언트가 서버에 보내는 모든 쿼리를 기록합니다.Slow query log수행시간이 긴 쿼리를 기록합니다. (>long_query_time)Audit log연결 및 쿼리 활동에 대한 규칙 기반 모니터링, 로깅, 차단 활동 등을 기록합니다. (Enterprise Edition 한정기능)로그파일 저장 가능테이블 저장 가능암호화 가능text 형식 기록비고Error logOXXO서버 컨디션, 오류 기록Binary logOXOX복제, PITR 사용General logOOOO모든.. 2025. 7. 22. [MySQL] InnoDB Redo Log (+ Lock-Free WAL 구조) 목차1. Redo LogRedo 로그는 예기치 않은 종료로 인해 완료되지 않은 트랜잭션이 작성한 데이터를 수정하기 위해 충돌 복구 중에 사용되는 디스크 기반 데이터 구조 입니다.리두 로그는 ACID 중 지속성(Durability)를 보장하기 위해 사용됩니다.트랜잭션이 커밋되었다면 시스템이 꺼지더라도 그 결과는 반드시 디스크에 반영되어야 하므로, 이를 위해 디스크 쓰기 작업 전 리두 로그에 변경사항을 먼저 기록합니다. 리두 로그는 디스크에 물리적인 파일로 저장됩니다(#ib_redoN).리두 로그 파일에 기록된 데이터는 영향을 받은 레코드 단위로 인코딩되며, 이 데이터 전체를 리두라고 부릅니다. 리두 로그 파일을 통해 데이터가 흘러가는 과정은 계속 증가하는 LSN(Log Sequence Number) 값.. 2025. 6. 13. [MySQL] Error 1300: Invalid utf8mb4 character string: '' 에러 해결법 LOAD DATA LOCAL INFILE 'data.csv'INTO TABLE table_name;> ERROR 1300 (HY000): invalid utf8mb4 character string : '' 해당 에러는 파일의 인코딩 character set(utf8)과 MySQL Server의 character set(utf8mb4)이 달라, 데이터를 입력하지 못하는 것을 의미합니다.이러한 상황은 character set이 서로 다른 두 DB간 데이터를 이전할 때 많이 발생합니다.가장 안정적인 방법은 두 DB서버의 character set을 맞춰주는 것 이겠지만, 라이브 운영중인 DB서버의 character set을 변경하는것에는 어려움이 따릅니다.따라서 해당 에러의 직접적인 원인을 수정하는 것이 아.. 2025. 5. 23. [MySQL] Change Buffer 체인지 버퍼 목차1. 체인지 버퍼 체인지 버퍼는 디스크 I/O를 줄이기 위해 버퍼 풀에 없는 비고유 보조 인덱스의 변경 작업(INSERT/DELETE/UPDATE)을 InnoDB의 전용 공간에 임시 저장해 두었다가, 나중에 해당 인덱스 페이지가 버퍼 풀에 올라올 때 병합하는 기능입니다.고유 보조 인덱스(Unique Secondary Index)는 체인지 버퍼를 이용하지 않습니다. 참고비고유 보조 인덱스란, 중복된 값을 허용하는 보조 인덱스를 의미합니다.ALTER TABLE ... ADD INDEX 문으로 생성한 인덱스가 비고유 보조 인덱스 입니다. 비고유 보조 인덱스는 고유하지 않은(non-unique) 구조로 되어있기에 데이터가 삽입될 때, 삽입 순서가 임의적으로 발생하는 경우가 많습니다. 삽입뿐만 아니라 삭제.. 2025. 4. 10. [MySQL] Undo Log & Undo Tablespace 목차1. Undo Log 언두 로그는 InnoDB 스토리지 엔진의 핵심 구성요소 중 하나로, DML로 변경되기 이전의 데이터를 저장합니다.언두 로그의 주요 목적은 트랜잭션의 일관성을 지원하고, 트랜잭션 중 수행된 변경을 롤백할 수 있는 기능을 제공하는 것입니다. 언두 로그는 단일 읽기-쓰기 트랜잭션에 연관된 언두 로그 레코드들의 모음입니다. 언두 로그 레코드에는 가장 최근 변경을 롤백할 수 있도록 하는 정보를 포함되는데, 다른 트랜잭션이 일관된 읽기 작업을 위해 다른 트랜잭션이 변경하기 전의 데이터를 조회해야 할 경우, 변경 전 데이터는 언두 로그 레코드로부터 가져옵니다.언두 로그는 롤백 세그먼트 안에 포함된 언두 로그 세그먼트 내에 존재하며, 롤백 세그먼트는 언두 테이블스페이스와 글로벌 임시 테이블.. 2025. 4. 9. [MySQL] InnoDB Cluster 3부작 : 3. MySQL InnoDB Cluster Metadata 생성 및 MySQL Router 구성하기 InnoDB Cluster 3부작1. Group Replication (1) - 개념 이해하기2. Group Replication (2) - 구성하기3. MySQL InnoDB Cluster Metadata 생성 및 MySQL Router 구성하기 목차 1. mysql_innodb_cluster_metadatamysql_innodb_cluster_metadata는 MySQL InnoDB Cluster의 메타데이터를 저장하는 내부 데이터베이스입니다.MySQL Router를 이용하여 자동으로 HA를 수행하는 InnoDB Cluster를 구성하려면 mysql_innodb_cluster_metadata 스키마가 필요합니다.해당 스키마는 사용자가 쿼리로 생성하는것이 아니며, MySQL Shell로 dba.cre.. 2025. 4. 1. [MySQL] InnoDB Adaptive 시스템 변수 목차1. innodb_adaptive_flushingCommand-Line Format--innodb-adaptive-flushing[={OFF|ON}] System Variable innodb_adaptive_flushing Scope Global Dynamic Yes SET_VAR Hint Applies No Type Boolean Default Value ON innodb_adaptive_flushing 시스템 변수는 InnoDB 버퍼 풀에서 더티 페이지를 플러시하는 속도를 동적으로 조정할지 여부를 설정합니다. 플러시 속도를 동적으로 조정하여 I/O 부하에 맞춰 플러시 속도를 변경하여 스파이크를 방지합니다. 이 설정은 기본적으로 활성화되어 있습니다. OFF로 설정할 경우 더티페이지가 고정된 속도로 .. 2025. 3. 27. [MySQL] InnoDB Cluster 3부작 : 2. Group Replication (2) - 구성하기 InnoDB Cluster 3부작1. Group Replication (1) - 개념 이해하기2. Group Replication (2) - 구성하기3. MySQL InnoDB Cluster Metadata 생성 및 MySQL Router 구성하기 목차1. 그룹 복제 아키텍처 MySQL 그룹복제는 서로 다른 호스트 머신에서 실행될 수도, 같은 호스트 머신에서 다른 인스턴스 여러개로 구성할수도 있습니다.해당 글에서는 일반적으로 많이 사용되는 다른 호스트 머신에서 실행되는 각각의 인스턴스로 그룹 복제를 구성해보겠습니다. 세 개의 서버 인스턴스 S1, S2, S3이 하나의 그룹으로 구성되며, 클라이언트는 각 서버 인스턴스와 통신할 수 있습니다.각 서버의 역할은 다음과 같습니다.서버HostnameIP역할S1.. 2025. 3. 19. [MySQL] InnoDB Cluster 3부작 : 1. Group Replication (1) - 개념 이해하기 InnoDB Cluster 3부작1. Group Replication (1) - 개념 이해하기2. Group Replication (2) - 구성하기3. MySQL InnoDB Cluster Metadata 생성 및 MySQL Router 구성하기 목차1. 개요 그룹 기반 복제(Group-based replication)는 내결함성 시스템을 구현하는 데 사용될 수 있는 기술입니다.복제 그룹은 여러개의 서버로 구성되며, 각 서버는 데이터의 전체 복사본만을 공유하는 Shared-Nothing 복제방식을 따릅니다.각 서버는 메시지 전달을 통해 서로 통신하고, 서버의 통신 계층에서는 원자적 메시지 전달과 메시지 순서 전달과 같은 보장 기능을 통해 데이터를 동기화하고자 합니다. 이러한 강력한 개념은 보다 발전된.. 2025. 3. 17. [MySQL] binlog_format 목차1. binlog_format MySQL의 bin log 형식은 --binlog-format 명령을 이용해 변경할 수 있습니다.MySQL binlog 포맷은 STATEMENT, ROW, MIXED 세 가지가 있으며, 각 포맷은 변경된 데이터를 기록하는 방식이 다르고 성능과 데이터의 정확성에 영향을 줍니다. STATEMENTROWMIXED 포맷특징장점단점STATEMENTSQL 문 자체를 기록속도가 빠르고 로그 크기가 작음쿼리에 AUTO_INCREMENT나 비결정적 함수가 포함된 경우 복제DB에서 데이터가 달라질 수 있음ROW변경된 행의 실제 값을 기록정확한 데이터 복제를 보장로그 크기 크고 성능 저하가 발생할 수 있음MIXED보통 STATEMENT로 기록 비결정적 함수 포함 시 ROW로 기록STATEM.. 2025. 3. 12. [MySQL] innodb_flush_method (O_DIRECT, O_DSYNC, fsync) innodb_flush_method Command-Line Format--innodb-flush-method=valueSystem Variableinnodb_flush_methodScopeGlobalDynamicNoSET_VAR Hint AppliesNoTypeString Default Value (Unix) O_DIRECT (미지원 시 fsync) Default Value (Windows) unbuffered Valid Values (Unix) fsync O_DSYNC littlesync nosync O_DIRECT O_DIRECT_NO_FSYNC Valid Values (Windows) unbuffered normal innodb_flush_method 시스템 변수는 InnoDB 데이터 파일과 로그 .. 2025. 3. 11. [MySQL] InnoDB I/O Capacity 설정 목차1. 개요 innodb_io_capacity innodb_io_capacity_max Command-Line Format --innodb-io-capacity=#--innodb-io-capacity-max=# System Variable innodb_io_capacityinnodb_io_capacity_max Scope GlobalGlobal Dynamic YesYes SET_VAR Hint Applies NoNo Type IntegerInteger Default Value 2002 * innodb_io_capacity Minimun Value 100100 Maximum Value (Unix 64비트 환경) 2**64-12**64-1 Maximum Value (Unix 64비트 외 환경) 2**.. 2025. 3. 11. [MySQL] MHA 구성 목차 1. 개요 MySQL MHA(Master High Availability)는 마스터 장애 발생 시 자동으로 슬레이브 중 하나를 새로운 마스터로 승격시키는 고가용성(HA) 솔루션 중 하나입니다.운영중인 마스터가 다운되면, MHA 매니저는 슬레이브 중 하나를 새로운 마스터로 자동 승격시키고 나머지 슬레이브는 새로운 마스터를 바라보도록 조정합니다.MHA 환경 구축 시에는 각각의 Manager와 Node(MySQL 서버)가 요구됩니다. MHA Manager장애를 감지하고 마스터 스위치를 수행한다.MHA NodeMySQL 마스터 및 슬레이브 위 그림과 같이 MHA 환경을 구성했다면, 각 서버별 역할은 다음과 같습니다. 역할IPManagerMHA Manager192.168.1.10Node AMaster DB.. 2025. 3. 10. 이전 1 다음