본문 바로가기

카테고리10

[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.