MySQL, MariaDB 96

[MySQL] MySQL에서 기본키로 UUID를 선택했을 때의 장단점 및 특징

[MySQL] MySQL에서 기본키로 UUID를 선택했을 때의 장단점 및 특징 l Version : MySQL PXC 8.0.X MySQL UUID에 대해서 알아보고 테이블의 기본키로 사용하는 방법 및 UUID를 기본키로 했을 때의 장단점에 대해서 알아본다. UUID는 universally unique Identifier의 약자로 RFC 4122를 기반으로 정의된다. UUID는 공간과 시간에 있어서 전 세계적으로 고유한 숫자로 설계되었다. 두 개의 UUID 값은 두개의 독립적인 서버에 생성되더라도 서로 구별되어야 한다. MySQL에서 UUID값은 다음 형식의 5개의 16진수 숫자로 구성된 utf8 문자열로 표시되는 128비트 숫자이다. aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee U..

MySQL, MariaDB 2023.10.20

[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7에서 8.0 업그레이드시 timeout 문제 및 해결 방법

[MySQL] MySQL PXC (Percona XtraDB Cluster) 5.7에서 8.0 업그레이드시 timeout 문제 및 해결 방법 l Version : MySQL PXC 8.0.X MySQL PXC (Percona XtraDB Cluster) 5.7환경에서 8.0으로 업그레이드 진행중에 발생한 이슈가 있어, 문제 및 해결 방법에 대해서 정리한다. [Problem] 기존에 운영중이던 MySQL PXC 5.7.X 버전에서 MySQL 8.0.X로 업그레이드 작업이 필요 했으며, 업그레이드를 위해 여러 상황을 검토한 결과 XtraBackup을 사용하여 백업(5.7) 및 복원(8.0)으로 진행하였다. 복원 과정 (리스토어 및 서비스 시작)에서 timeout 오류가 발생하였다. 해당 데이터베이스는 테이블..

MySQL, MariaDB 2023.10.19

[MySQL] MySQL의 다양한 주석(comment) 방법 살펴보기

[MySQL] MySQL의 다양한 주석(comment) 방법 살펴보기 l Version : MySQL MySQL 주석은 데이터베이스 스키마, SQL 쿼리 및 저장 프로시저를 문서화하는데 필수적이다. 특히 주석의 작성은 다른 개발자가 코드의 목적을 이해하는데 도움이 된다. [한 줄 주석] 한 줄 주석은 한 줄에 주석을 추가하는데 사용된다. MySQL은 두가지 유형의 한 줄 주석을 지원한다. -- (하이픈 두개) : 두개의 하이픈 뒤에 텍스트는 주석으로 사용되며, 같은 줄에 이어지는 모든 텍스트는 주석으로 처리 된다. -- This is a single-line comment SELECT * FROM employees; # (해시) : 해시 기호를 사용하여 한 줄 주석을 추가할 수 있다. 같은 줄에 이어지는..

MySQL, MariaDB 2023.10.18

[MySQL] MySQL(mariadb) Galera Cluster 장애 시나리오에 따른 다양한 복구 방법

[MySQL] MySQL(mariadb) Galera Cluster 장애 시나리오에 따른 다양한 복구 방법 l Version : MySQL(mariadb) Galera Cluster Galera Cluster는 동기 복제를 사용하여 데이터를 복제하는 MySQL, MariaDB용 다중 마스터 클러스터이다. Galera Cluster를 사용하면 클러스터의 모든 노드가 마스터 역할을 하고 한 번에 모든 노드에 쓸 수 있다. Galera Cluster의 Active-Active 구성은 장애 조치가 없기 때문에 더 많은 로드 밸런싱과 내결함성을 제공한다. l MySQL/MariaDB 환경에서 다중 마스터 복제를 지원하는 Galera Cluster 알아보기 : https://sungwookkang.com/entry..

MySQL, MariaDB 2023.10.17

[MySQL] MySQL 오류 로그 이해

[MySQL] MySQL 오류 로그 이해 l Version : MySQL 시스템을 운영할 때, 오류를 완벽히 피하기는 거의 불가능에 가깝다고 생각한다. 그렇다면 문제가 발생하였을 때, 문제의 원인을 빠르게 파악하고 해결하기 위해서 가장 먼저 하는 행동은 무엇일까? 정답은 각종 로그를 확인하는 것이다. 이번 포스트에서는 MySQL 오류 로그를 통해 어떠한 정보를 확인할 수 있는지 알아본다. 이 글에서는 오류 로그는 5.6버전을 설명하고 있지만, 이후 버전에서도 충분히 활용할 수 있다고 판단된다. 모든 오류 내용을 다루지는 않지만 예제에서 확인할 수 있는 몇 가지 정보를 공유한다. MySQL 오류 로그에는 MySQL 상태 및 활동과 관련한 다양한 정보가 기록되어 있다. 정상적인 MySQL 시작, 종료에 대한..

MySQL, MariaDB 2023.10.16

[MySQL] ProxySQL 연결이 실패할 때 확인해야 할 기본 체크리스트

[MySQL] ProxySQL 연결이 실패할 때 확인해야 할 기본 체크리스트 l Version : ProxySQL MySQL서버를 여러대로 구성해야하는 경우 (예, Replication, Sharding 등) 어플리케이션 수에 따라 MySQL 서버와 맺게 되는 커넥션수가 급격하게 늘어난다. 예를들어 MySQL 서버가 30대, 어플리케이션 서버가 200대이고, 각 서버별로 커넥션을 10개씩 유지한다면 30 * 200 * 10 = 60000 커넥션이 발생한다. 이런 이슈를 피하기 위해 중간에 미들웨어 개념으로 프록시 역할을 해주는 것이 ProxySQL이다. ProxySQL은 효율적인 커넥션 관리뿐만 아니라 라우팅 기능 등 여러 기능을 제공한다. l ProxySQL 이란 무엇인가 : https://sungwo..

MySQL, MariaDB 2023.10.11

[MySQL] MySQL Percona XtraDB Cluster 소개 및 설정 변수 알아보기

[MySQL] MySQL Percona XtraDB Cluster 소개 및 설정 변수 알아보기 l Version : MySQL Percona 8.X Percona XtraDB Cluster는 MySQL을 위한 완전한 오픈 소스 고가용성 솔루션으로 MySQL용 Percona Server 및 Percona XtraBackup을 Galera 라이브러리와 통합하여 동기식 다중 소스 복제를 가능하게 한다. Galera 라이브러리에 대한 내용은 아래 링크를 참고한다. l MySQL/MariaDB 환경에서 다중 마스터 복제를 지원하는 Galera Cluster 알아보기 : https://sungwookkang.com/entry/MySQLMariaDB-%ED%99%98%EA%B2%BD%EC%97%90%EC%84%9C-..

MySQL, MariaDB 2023.09.27

[MySQL] MySQL 5.7에서 8.0으로 업그레이드시 변경되는 설정 및 옵션 정리

[MySQL] MySQL 5.7에서 8.0으로 업그레이드시 변경되는 설정 및 옵션 정리 l Version : MySQL 8.X MySQL 5.7 버전과 MySQL 8.0은 큰 변화가 있기 때문에, 업그레이드하기 전에 많은 주의가 필요하다. 현재 운영중인 MySQL 5.7X 버전에서 MySQL 8.0.X로 업그레이드 프로젝트를 진행하게 되어, 업그레이드시 주의해야 될 사항 및 변경되는 사항을 정리해본다. [Data Dictionary] MySQL Server 8.0에는 트랜잭션 테이블의 데이터베이스 개체에 대한 정보가 포함된 전역 Data Dictionary가 통합되어 있다. 이전 MySQL 시리즈에서는 Data Dictionary가 메타데이터 파일과 InnoDB 시스템 테이블에 저장되었다. 이전에는 in..

MySQL, MariaDB 2023.09.13

[MySQL] 성능 모니터링을 위한 Performance_Schema 개념

[MySQL] 성능 모니터링을 위한 Performance_Schema 개념 l Version : MySQL 5.X, 8.X MySQL에서 다양한 성능 및 관리 지표를 얻기 위해 사용하는 정보는 performance_schema (이하 “성능 스키마”)와 information_schema이다. 이번 포스트에서는 performance_schema에 관한 전체적인 개념을 다루며 각 항목에 대한 자세한 세부 내용은 별도 포스팅 한다. MySQL performance_schema는 로우레벨에 실행되며, 런타임으로 서버 내부를 검사한다. 사용자가 자주 사용하는 것은 디폴트로 활성화되어 있기 때문에 따로 설정하지 않아도 정보를 볼 수 있지만, 그 외에는 필요에 따라 설정을 활성화해야 한다. performance_sc..

MySQL, MariaDB 2023.09.02

[MySQL] “innodb_table_stats” not found 오류와 예상하지 못한 사이드 이펙트

[MySQL] “innodb_table_stats” not found 오류와 예상하지 못한 사이드 이펙트 l Version : MySQL 5.7 MySQL 5.7에서 서비스 재시작 후 아래와 같은 오류가 로그에 잔뜩 쌓여있다. MySQL 에러 로그 위치는 일반적으로 아래와 같다. sudo cat /var/log/mysql/error.log 2023-08-31T05:15:56.437819Z 2598 [ERROR] InnoDB: Table `mysql`.`innodb_table_stats` not found. 2023-08-31T05:15:56.437825Z 2598 [ERROR] InnoDB: Fetch of persistent statistics requested for table `XXXX`.`wp_4..

MySQL, MariaDB 2023.09.01