Category: MySQL

RDBMS: MySQL & MariaDB

MySQL 8.0.1 utf8mb4_0900_ai_ci의 한글 사용에 대한 문제점

  MySQL 8.0.1 버전부터 기본값으로 채택된 utf8mb4_0900_ai_ci의 한글 사용에 대한 문제점 MySQL 8.0.1 버전부터 utf8mb4_0900_ai_ci를 기본값으로 적용했습니다. 기존의 5.x버전대의 MySQL을 사용해 오던 유저분들이라면 한글을 사용해야 하는 환경에서 대부분 utf8mb4_general_ci를 사용해왔을 겁니다. 0900_ai_ci로 기본 값이 변경되면서...

Galera cluster for MySQL 8 – #.3 동기화 성능

  Galera cluster for MySQL 8 동기화 성능 Galera 매니저를 테스트 해보려고 했는데, 온프렘에서는 잘 안되더군요. 기존의 클러스터가 추가가 안되서 설치만하고 등록이 잘 안됐습니다. AWS에서는 Galera 매니저를 맨처음에 설치하고 매니저에서 Galera + wrsep MySQL8 버전을...

Galera cluster for MySQL 8 – #.2 installation

Galera Cluster & MySQL 8 설치 설치환경 CPU: 2 core RAM: 4GB OS: CentOS 7 yum을 이용해 패키지 설치를 진행합니다. CentOS 7버전이 아직까지는 가장 안정적인 버전으로 많이 사용하기 때문에 7로 진행했습니다. 필수 패키지 설치 yum...

Galera cluster for MySQL 8 – #.1 Architecture

Galera cluster Galera cluster는 코더십이 만든 동기식 멀티 마스터 복제 기법입니다. 인증 기반 복제(Certification-Based Replication) 방식을 사용하며, 데이터의 완전성을 자동으로 관리해줍니다. 그리고 현재 Galera cluster는 MySQL, MariaDB 그리고 Percona XtraDB 까지도 클러스터를 구성할 수 있습니다....

데이터베이스 이론 – 모델링 #.2

개체-관계(E-R, Entity-Relationship) 모델이란? 데이터 모델은 데이터베이스 설계에 대한 계획 또는 청사진입니다. 건축에 비유해보면 시공을 하기전에 설계를 하는 것인데, 시공이 어느정도 된 시점에서 변경사항을 반영하는 것은 비용도 많이 들고, 시간적인 손해도 많이 발생합니다. 데이터베이스도 마찬가지로 구축이...

시놀로지 NAS와 Docker를 이용한 간단한 MySQL 8 테스트 환경 구축

  시놀로지 NAS와 Docker를 이용한 간단한 MySQL 8 테스트 환경 구축 다른건 아니고 NAS의 남는 자원으로 MySQL 공부할 겸 테스트 환경을 만들었습니다. docker를 이용해서 8.0.4 구성을 했네요. docker run –name mysql8 –volume /volume1/docker/mysql8/mysql:/var/lib/mysql –volume /volume1/docker/mysql8/etc:/etc/mysql...

데이터베이스 이론 – 모델링 #.1

  데이터베이스란? 그동안 각 DB가 가지는 기술적인 부분들에 집중하느라 기초적인 부분들을 많이 잊고 지냈습니다. 처음으로 돌아가는 마음으로 데이터베이스에 대한 기초적인 내용들을 정리 해보려 합니다. RDBMS에 대한 이론에 대해서 말이죠. 데이터베이스의 목적은 사람들이 필요로 하는 어떤것들을...

MariaDB 10.5 Galera Cluster 설정

  MariaDB 10.5 Galera Cluster 설정 MariaDB가 10.5 버전이 정식으로 릴리즈 되서 오늘(2020.07.02) 기준 10.5.4 버전을 내려 받을수 있습니다. 10.5 버전부터 Galera의 wsrep gtid를 지원합니다. 따라서 wsrep gtid를 이용한 Galera Cluster를 세팅해보겠습니다. CentOS 7.8 에서...

SPIDER 엔진을 이용한 샤딩 환경 구축 #01

  Spider 엔진? Spider 스토리지 엔진은 샤딩 기능이 내장 된 스토리지 엔진입니다. 파티셔닝 및 xa 트랜잭션을 지원하며 다른 MariaDB 인스턴스의 테이블을 마치 동일한 인스턴스에있는 것처럼 처리 할 수 있습니다. Spider 스토리지 엔진으로 테이블을 작성하면 테이블이...

MariaDB의 XA Transactions

  분산 트랜잭션(Distributed Transactions)이란? 글로벌 트랜잭션(Global transaction)이라고도 불리며 여러개의 분산된 리소스들(ex: 프린터 드라이버, 데이터베이스 등) 각각에 대한 트랜잭션들을 하나의 트랜잭션으로 묶은 것을 의미합니다. 이 경우 하나의 리소스 실패하면 전체를 rollback 합니다. Distributed Transaction Processing(DTP) 아키텍처는...

Yum을 통한 MySQL 5.6 & 5.7 설치 on CentOS 7

  Yum을 통한 MySQL 5.6 & 5.7 설치 on CentOS 7 MySQL 5.6 yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm MySQL 5.7 yum install https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm Installation & setting yum install mysql-community-server systemctl enable mysqld systemctl start mysqld Yum으로 설치하고...

Character Set and Collation

  Character Set DB에서 Character Set이란, 데이터베이스에서 사용하는 문자와 encording 집합입니다. DB를 생성 할때 흔히 지정해주는 문자셋으로 UTF-8, euckr 같은 것들이 있으며, 각 문자가 컴퓨터에 저장될 때 어떠한 코드로 저장될지에 대한 규칙의 집합을 의미합니다. Character...

MySQL 8 vs MariaDB 10.4

MySQL 8 MariaDB 10.4 Storage Engines FEDERATED MEMORY InnoDB Performance_Schema MyISAM MRG_MYISAM BLACKHOLE CSV ARCHIVE Default Installation (8) CSV MRG_MyISAM MEMORY Aria MyISAM SEQUENCE InnoDB PERFORMANCE_SCHEMA Plugins (6) TokuDB RocksDB Spider Connect OQGRAPH Mroonga Clustering...

InnoDB dirty pages

  Dirty pages? Row 값을 업데이트하면 MySQL은 Buffer Pool에서 Row값을 업데이트 하여 Page를 Dirty로 표시합니다. 변경 사항은 바이너리 로그에도 기록되므로 충돌이 발생하면 MySQL이 로그를 재생하고 데이터가 손실되지 않습니다. 바이너리 로그에 쓰는 작업은 append-only로 동작하지만, 실제...