3. MariaDB Overview
• MySQL을 기반으로 한 오픈소스 RDBMS
(1994)MySQL AB > (2008)Sun > (2010)Oracle
• Michael Widenius (Monty)
(Monty Program AB)…(MariaDB Community, MariaDB Foundation)
• MySQL 호환, 편리, 확장, 이식, 보안, 우수한 성능
• GPL v2
https://github.com/MariaDB/server
http://www.mariadb.org
http://www.mariadb.com
6. 구분 내 용
Description
고 가용성, 보안, 상호 운용성 및 성능 기능으로 강화 된 MySQL 애플리케이션 호환
오픈 RDBMS. MariaDB ColumnStore를 사용하면 Columnar 스토리지 엔진도 사용
할 수 있습니다.
기본 데이터 베이스 모델 관계형 DBMS
보조 데이터 베이스 모델 Document Store , Graph DBMS
DB-Engine Ranking
Develper
MariaDB Corporation Ab (MariaDB Enterprise),
MariaDB Foundation (커뮤니티 MariaDB 서버)
Initial release 2009년
Editorial information provided by DB-Engines
7. 구분 내 용
Current release 10.4.12, January 2020
License Subscription(벤더 지원), Open Source
Cloud-based only No
DBaaS offerings
SkySQL (궁극의 MariaDB 클라우드) : 강력한 엔터프라이즈 기능과 세계적 수준의
지원을 탁월한 사용 편의성 및 혁신을 결합하여 MariaDB 플랫폼의 모든 기능을 클
라우드에 제공 하는 최초이자 유일한 DBaaS입니다.
MariaDB 용 Azure Database : 추가 비용 없이 고 가용성 및 보안 기능이 내장 된
완벽하게 관리되고 확장 가능한 MariaDB 관계형 데이터베이스
구현 언어 C & C++
서버운용 체계 FreeBSD, 리눅스, 솔라리스, 윈도우
Data scheme Yes
Typing Yes
XML support Yes
Secondary indexes Yes
Editorial information provided by DB-Engines
8. Editorial information provided by DB-Engines
구분 내 용
SQL Yes
API 및 엑세스 방법 ADO.NET, JDBC, ODBC, Proprietary native API
지원 프로그래밍 언어
Ada, C, C#, C++, D, Eiffel, Go, Haskell, Java, JavaScript (Node.js), Objective-C, Perl,
PHP, Python, Ruby, Scheme, Tcl
Server-side scripts Yes
Triggers Yes
Partitioning methods 스파이더 스토리지 엔진 또는 Galera 클러스터를 사용한 수평 분할, 샤딩
복제방법 마스터-마스터 복제 마스터-슬레이브 복제
MapReduce No
Consistency concepts Immediate Consistency
Foreign keys Yes
Transaction concepts ACID
Concurrency Yes
9. Editorial information provided by DB-Engines
구분 내 용
Durability Yes
In-memory capabilities Yes
User concepts SQL 표준에 따른 세분화 된 액세스 권한
10. More information provided by the system vendor
구분 내 용
특성 기업 도구와 함께 강화의 MySQL의 제작자에서 오픈 소스 데이터베이스
경쟁 우위 MySQL 및 기타 데이터베이스를 능가하는 고 가용성, 확장성, 성능
일반적인 응용 시나리오 고 가용성을 요구하는 웹, SaaS 및 클라우드 운영 / 트랜잭션 애플리케이션 ...
주요 고객
Booking.com, Wikipedia, 구글, Canal +, ClubMed, Deutsche Telekom, La Poste,
Virgin, 카카오톡, 카카오뱅크
시장성
MariaDB는 Red Hat 및 SUSE 리눅스에서 제공하는 LAMP 스택의 기본 데이터베이
스입니다
11. MariaDB 편리성
• 다중사용자, 다중 Thread 지원
• 다양한 응용프로그램 API제공
(C, C++, Java, Perl, PHP, Python, .Net, Ruby 등)
• ANSI SQL 표준 준수
• 보다 다양한 스토리지 엔진 제공
• MySQL보다 강화된 기능 제공
12. MariaDB 확장성
• Table Partitioning
• Replication을 통한 읽기 확장
• Sharding을 통한 쓰기 확장
• Table 수준에서 다양한 특성의 Storage Engine 지원
• 보다 유연한 시스템 확장을 위해 전용 Router 지원
• Cloud 기반의 환경 지원(AWS, Azure, GCP, Docker)
13. MariaDB 이식성
• 다양한 OS환경 지원( Linux기반, Window 32/64)
• 쉬운 Migration(MySQL to MariaDB)
• MySQL client 지원(mysqldump, mysqladmin 등)
• 쉬운 Minor Upgrade
14. MariaDB 보안성
• MariaDB Minor Patch include CVE
• SSL 지원
• user & host 기반의 Object별 Privileges. (user & host별
비밀번호, User Role)
• Data-at-Rest Encryption (TDE)
• Password Validation Plugin 지원
15. MariaDB 성능
• MySQL function full support
• Table Partitioning
• Thread Pooling
• Replication
• Storage engine
• my.cnf configuration
16. MariaDB Scale Out
[Scale Up or Scale Out]
일반적인 상용 RDBMS 들은 일반적으로 Scale Up 을 지향
MariaDB는 Scale Out 에 기반을 두고 DB Architecture 설계 시 고성능 발휘
Scale Up vs Scale Out
• 높은 안정성
• 고성능
장점
• 저비용
• 장애시 서비스 Impact 적음
• 부분적 증설이 가능
• 지속적인 시스템 확장 가능
• 고비용
• 장애시 대형 장애로 연결
• 한대의 고성능 서버로 감당이 어려운
경우 문제 발생
단점
• 많은 서버로 인한 관리 부담
• 각 서버의 장애 발생 가능성이 높음
20. MariaDB Structure
• 1’st Layer: Connectors
– MariaDB client
– MariaDB에 접근하기 위해 Application에서 설치하여 사용
– C, API, JDBC 등 언어에 따라 여러 가지 connector를 사용
• 2’nd Layer: MariaDB Instance (MariaDB server header)
– SQL 구문 분석
– 옵티마이저 최적화로 실행계획 작성
– 필요하면 메모리에 캐쉬
• 3’rd Layer: Storage Engine
– 데이터를 저장하고 추출
– 각각의 storage engine은 서로 다른 데이터 저장 및 추출 방법을 가짐
– InnoDB, ColumnStore, Connect, MyRocks, …
21. MariaDB Server Process Flow
Application
Handler API
InnoDB ColumnStore Connect MyRocks ....
SQL
Thread
Cache
Logging
Thread
Cache
Connection
Manager
User
Authentication
Command
Diaspatcher
Query Cache
Module
Optimizer
(select)
Access
Control
Table
Manager
Parser
Table Open
Cache
Table Definition
Cache
Table
Modification
(Update)
Table
Maintenance
(Repairs)
Replication
(Replica)
Status
Report
(status)
23. DBMS 비교 (1 / 5)
DBMS 모델 비교
기능 Oracle 11g MySQL MariaDB Tibero DB2 v9.7 CUBRID
DBMS 종류
관계형
데이타베이스
관계형
데이타베이스
관계형
데이타베이스
관계형
데이터베이스
관계형
데이타베이스
관계형
데이타베이스
DBMS 성능 구조
디스크 기반
DBMS
디스크 기반
DBMS
디스크 기반
DBMS
디스크 기반
DBMS
디스크 기반
DBMS
디스크 기반
DBMS
DBMS 구조 멀티 프로세스 멀티 스레드 멀티 스레드
멀티프로세스+
멀티스레드
멀티프로세스+
멀티스레드
멀티프로세스+
멀티스레드
DBMS License Cost 높음 낮음 낮음 높음 높음 보통
지원 API 비교
기능 Oracle 11g MySQL MariaDB Tibero DB2 v9.7 CUBRID
표준 SQL 지원 지원 지원 지원 지원 지원
변형 SQL 지원 지원 지원 지원 지원 지원
JDBC Driver 지원 지원 지원 지원 지원 지원
ODBC Driver 지원 지원 지원 지원 지원 지원
PHP Driver 지원 지원 지원 지원 지원 지원
CLI Interface 지원 지원 지원 지원 지원 지원
XA 트랜젝션 지원 지원 지원 지원 지원 지원
Threaded
Application
지원 지원 지원 지원 지원 지원
*Oracle, MariaDB, Tibero 등 표준SQL을 포함하여 주요 API 범위를 모두 제공
24. DBMS 비교 (2 / 5)
운영지원 범위비교
기능 Oracle 11g MySQL MariaDB Tibero DB2 v9.7 CUBRID
GUI Admin Tool OEM MySQL Workbench Webyog tbAdmin Data Studio CM
Interactive SQL 수행기 SQLPlus
MySQL Command-
Line Tool
MariaDB Command-
Line Tool
tbSQL or Control Center csql
Data Loader SQL*Loader Load Data Load Data tbLoader CLP loaddb
Data 추출 및 적재
Tool
Export/Import
Mysqldump/
Enterprisebackup
Mysqldump/
Xtrabackup/
mariadbbackup
Export/Import Load loaddb/unloaddb
마이그레이션 툴
Oracle Migration
WorkBench
다양한 서드파티
지원
다양한 서드파티 지원 tbMigrator
Export/Import or
db2move
CMT
기능 Oracle 11g MySQL MariaDB Tibero DB2 v9.7 CUBRID
Hint 기능 지원 지원 지원 지원 지원 지원
In-line View(서브쿼리) 지원 지원 지원 지원 지원 지원
Join 지원 지원 지원 지원 지원 지원
Outer Join 지원 지원 지원 지원 지원 지원
Array Processing 지원 지원 지원 지원 지원 미지원
분석 함수 지원 지원 지원 지원 지원 지원
비용기반 옵티마이저 지원 지원 지원 지원 지원 지원
내장 함수 지원 지원 지원 지원 지원 지원
SQL지원 범위비교
* Oracle, Tibero, DB2 등의 상용DBMS의 경우 벤더 종속적인 Tool을 통해 SQL 및 운영 지원이 가능한 반면, 공개SW인
MariaDB의 경우 벤더 종속성을 탈피하고 다양한 3rd 솔루션과의 호환성을 통한 운영지원이 가능
25. DBMS 비교 (3 / 5)
기능 Oracle 11g MySQL MariaDB Tibero DB2 v9.7 CUBRID
테이블 지원 지원 지원 지원 지원 지원
복합 인덱스 지원 지원 지원 지원 지원 지원
뷰 지원 지원 지원 지원 지원 지원
시퀀스 지원 지원 지원 지원 지원 지원
DB 링크 지원 지원 지원 지원 지원 미지원
권한관리 지원 지원 지원 지원 지원 지원
Role(권한 부여) 지원 지원 지원 지원 지원 지원
프로시저 지원 지원 지원 지원 지원 지원
저장 함수 지원 지원 지원 지원 지원 지원
트리거 지원 지원 지원 지원 지원 지원
Object 지원 기능 비교
* Object 지원 기능은 각 DBMS에서 비교적 동일하게 제공
26. DBMS 비교 (4 / 5)
기능 Oracle 11g MySQL MariaDB Tibero DB2 v9.7 CUBRID
MVCC ( Multi-Version
Concurrency Control )
지원 지원 지원 지원 지원 지원
로우 레벨 잠금 지원 지원 지원 지원 지원 지원
Lock Escalation 회피 통한
Table Lock 방지
지원 지원 지원 지원 미지원 지원
B-Tree 인덱스 지원 지원 지원 지원 지원 지원
시스템 모니터링 View 지원 지원 지원 지원 지원 지원
SQL Trace(추적) 기능 지원 지원 지원 지원 지원 지원
복잡한 트랜잭션 처리 지원 지원 지원 지원 지원 지원
Partitioning
Range 지원 지원 지원 지원 지원 지원
List 지원 지원 지원 지원 미지원 지원
Hash 지원 지원 지원 지원 미지원 지원
Composite 지원 지원 지원 지원 미지원 미지원
Partitioning Methods
Horizontal
partitioning
Horizontal
partitioning
NDB Cluster
Horizontal
partitioning
Sharding with Spider
Galera Cluster
Horizontal
partitioning
Horizontal
partitioning
Horizontal
partitioning
Sharding with
Cubrid shard
고성능을 위한 기능 비교
* Oracle, Tibero, DB2에서는 고성능을 위한 수평 확장만을 제공하는 반면, MariaDB는 물리적인 Horizontal
Partitioning 뿐만 아니라 Sharding Engine등을 통해 수직 확장 기능을 제공
27. DBMS 비교 (5 / 5)
기능 Oracle 11g MySQL MariaDB Tibero DB2 v9.7 CUBRID
자동 Crash Recovery 지원 지원 지원 지원 지원 지원
Log Mirroring 지원 지원 지원 지원 지원 지원
온라인 백업 지원
지원
(Enterprisebackup)
지원
(Mariabackup)
지원 지원 지원
Active Cluster 지원
(Oracle RAC)
지원
(NDB Cluster)
지원
(Galera Cluster)
지원
(Tibero TAC)
지원
(IBM PureScale)
(별도 중앙 관리 서
버 필요, IBM 서버
만 동작)
미지원
(Data
Replication
방식)
Disaster Recovery 기능 빠름 빠름 빠름 보통 보통 보통
Online DDL Operation 지원 지원 지원 지원 지원 미지원
Two-phase Commit 지원 지원 지원 지원 지원 지원 (JDBC만)
Third Party Plugins
Support 낮음 높음 높음 낮음 낮음 낮음
ETL Supports Level 높음 높음 높음 낮음 낮음 낮음
In-memory capabilities 지원 지원 지원 미지원 미지원 미지원
가용성을 위한 기능 비교
* MariaDB는 다양한 Storage Engine, MaxScale 및 오픈소스 기반의 다양한 3rd Party 솔루션과의 결합을 통해 고성능
및 가용성 확보에 용이
29. MariaDB Replication
• Replication
– Async
binary log
relay log
– Semi-Sync (5.5 이상)
Plugin
a. semisync_master
b. semisync_slave
Built-In(10.3 이상)
– STANDARD, RING, STAR, MULTI-SOURCE
1. Replication?
데이터를 물리적으로 다른 서버의 저장 공간 안에 동일한 데이터를 복제하는 기술
2. Replication은 데이터를 이중화 하는 것이고 Oracle RAC는 DB를 이중화 하는 개념
3. Replication은 오직 단일 Master에서만 데이터를 변경 작업을 수행 할 수 있고 Slave는 읽기 분산만 가능
4. Replication은 로그 기반으로 비동기적으로 데이터를 복제
5. Master는 다중 Thread로 데이터 변경 처리를 하고 Slave는 단일 Thread로 데이터 변경 처리(지연 발생 가능성)
6. Auto-Failover를 수행하지 않기 때문에 Master장애 발생시 수동 조치 요구됨
33. MariaDB MHA (Master High Availibity)
MHA Zone
Replication Zone
Slave
Master
MHA
Manager
Master 감지
MHA Zone
WAS1 WAS2
Replication Zone
New
Master(
Slave)
Master
MHA
Manager
WAS1 WAS2
장애
VIP VIP
1. MHA는 MariaDB Replication의 Auto-Failover를 지원해 주는 솔루션
2. MHA는 최소한의 Down Time으로 Master의 장애를 조치하고 Slave의 Master 변경을 자동으로 수행
(다운타임 시간 10~30초)
3. 각 노드(Master 및 Slave)를 자동으로 전환하며, 각 노드(Slave)는 데이터 불일치가 발생하지 않음
4. 자동 Master monitoring과 Failover 작업
5. 수동 장애 조치 가능 (대화형 Master Failover 및 비대화형 Master Failover)
34. MariaDB MHA (Master High Availibity)
• MHA (구성도)
MHA Manager Active Master Slave #1 Slave #n
…
Application Server
MHA Zone Replication Zone
Master 감지
MHA Manager Active Master Slave #1 Slave #n
…
Application Server
MHA Zone Replication Zone
Binary log
Copy
장애 발생
Relay log 적용
Save_binary_logs
Apply_diff_relay_logs
장애 처리를 위한 shell 파일
36. MariaDB MaxScale
• MaxScale
– BSL , GPL v2
– 다양한 기능 지원
- Proxy
- Query Routing
- Replication
- Database Sharding
- HA
https://mariadb.com/kb/en/maxscale/
37. MariaDB MaxScale
• MaxScale
Master
script
master_down event
Failover Script
CHANGE MASTER to new master;
START SLAVE
Slaves
STOP SLAVE
Promote as master
binlog cache
1 4
3
2
4
SPOF 없는 고가용성 지원
Ensure database uptime
▪ 자동 Fail-Over
▪ New Master로 Slave들의 Master 정보 변경
▪ Master가 Fail 상태일때도 Read Transaction 지원
Minimize database downtime
▪ 사용자 영향 없이 DB upgrade 지원
▪ Tee-filter 통해 쿼리 복제하여 신규DB로 전송