DB & AWS Knowledge
MySQL Community / MySQL 상용 Edition 차이 본문
해당 페이지에서는 MySQL Community / MySQL Enterprise Edition 간에 기능 차이에 대해서 다룬다.
참조 사이트
https://ko.wikipedia.org/wiki/MySQL_AB
https://www.mysql.com/products/enterprise/
MySQL Community 와 상용 Edition 의 등장
MySQL 은 태생적으로 오픈소스에 기반하여 만들어진 DB 였다. 그러나 MySQL 의 제작사였던
MySQL AB 사가 2008 년 썬 마이크로시스템즈에 인수되었고 2010 년에 연이어 ORACLE 사가 썬 마이크로시스템즈를 인수함으로써 최종적으로 MySQL 은 ORACLE 사의 소유가 되었다.
ORACLE 은 원래 보유하고 있는 DB 인 ORACLE DB 에 대해서 저작권 적으로 민감한 법정대응을 하는 기업인 만큼 MySQL 또한 상용화되어 오픈소스 생태에 영향을 미친다는 우려도 있었으나 예상 외로 MySQL 에 대해서는 오픈소스 정책을 그대로 유지 하고 있으며 이에 따라 개인이나 기업이 여전히 무료로 사용 할 수 있게 되었고 이는 MySQL Community Edition 으로 구분 되게 되었다.
다만 ORACLE 은 MySQL 또한 기업이윤 목적에 맞춰 자체적인 부가기능과 기술 지원등을 통하여 MySQL 을 상용목적으로 판매를 하게 되었고 이는 Standard, Enteprise, Cluster Edition 으로 나뉘어 등장하게 되었다.
아래의 표는 필자가 이에 맞춰 Community 와 상용버전간의 차이를 조사하여 만든 표이다.
완벽하게 조사를 하지 못하여 잘못된 내용은 지속적으로 확인 및 수정 할 예정이다.
백업 / 복구
백업 비교 | Community | Enterprise (MySQL Enterprise Backup 기준) |
기본 탑재 + third party 사용가능백업 수단 |
Mysqldump, Xtrabackup | Mysqldump, Xtrabackup MySQL Enterprise Backup |
Hot Backup 가능 여부 | 지원을 하나 No lock, Single Transaction 등의 옵션을 부여 해야 타 트랜잭션에 영향을 안 미침 |
특별 옵션 없이 수행 가능 |
Cold Backup 가능 여부 | 지원 불가 (DB 가 Online 이어야 함) |
지원 |
부분 백업 (Partial Backups) |
특수 옵션을 통하여 오브젝트 (최소 테이블 단위) 수행 가능 | Tablespace 단위의 Backup 도 지원 |
증분 백업 (Incremental Backups) |
Third Party 백업인 Xtrabackup 만 지원 | 지원 |
스트리밍 백업 (Streaming backups) |
둘 다 지원 | 지원 |
압축 백업 (Compressed backups) |
옵션 부여로 gzip 등의 지원 가능 | 지원 (공식 Doc 에서는 최대 90% 압축률 까지 가능 표기) |
병렬 백업 (Parallel Backup Operations) |
mysqldump 는 Ver 5.7부터 지원 가능. (단, schema 단위로 백업이 되므로 하나의 schema 등의 단일 객체를 parallel 로 백업 불가) Xtrabackup 은 단일 객체 제약 없이 사용 가능 |
지원 |
백업 매체에 직접 백업 (Direct to tape) |
기본 기능이 없으므로 타 third party 백업 매체 솔루션이 필요 | 해당 제약 없이 직접 매체에 백업 가능 |
Binlog 및 Relay log 백업 (Binlog and Relay log backup) |
Xtrabackup 만 지원 가능 | 지원 |
백업 중 이상 여부 확인 Continuously watch and monitor the progress of a backup |
Verbose 등의 옵션을 통하여 진행 및 이상 여부 Log 확인 가능 | 지원 |
Instance 백업 | 지원 불가 (data 영역만 지원) | 지원 (my.cnf 및 기타 설정 옵션 값 전부 보존) |
미사용 data file 내 DB page 스킵 (skip Unused Pages) |
지원 불가 | 지원 (이를 통한 불필요 disk I/O 감소) |
오브젝트 선택 백업 (Selective backup) |
Xtrabackup 이 유사하게 사용 가능 | 지원 (특정 테이블 혹은 테이블 스페이스의 LSN 을 추적하여 백업 가능) |
단일 파일 백업 (Selective backup) |
지원 불가 | 지원 |
불필요 오브젝트 제외 백업 (Exclude Tables) |
지원 | 지원 |
무손실 압축 알고리즘 (LZ4) 지원 Advanced LZ4 Compression |
지원 | 기본 LZ4 지원 및 자체 개선 LZ4 알고리즘 사용 |
AES 256 암호화 지원 (AES 256 encryption) |
Xtrabackup 만 자체 지원 | 지원 |
MySQL 내부 데이터 투명 암호화 백업(TDE: Transparent Data Encryption) 가능 (MySQL TDE) |
MySQL Ver 5.7 부터 지원 (단 5.7 은 테이블 별 file 만 적용가능. 8.0 부터 general tablespace 적용 가능) |
기본 지원 및 타 DB 및 플랫폼 호환성 강화 (ORACLE, AWS 등) |
복구 비교 | Community | Enterprise (MySQL Enterprise Backup 기준) |
PITR 지원 | mysqldump 자체는 지원 불가 (binlog 추적 추가 과정 필요) Xtrabackup 은 지원 가능 |
지원 |
운영 중, 선택 복구 가능 (Online "Hot" Selective Restore) |
Xtrabackup 만 가능 | 지원 |
병렬 Redo Log 적용 (Parallel apply-log) |
Xtrabackup 만 가능 | 지원 |
병렬 복구 (Partial Restore) |
Xtrabackup 만 가능 | 지원 |
타 지정 공간 복구 (Restore to a Separate Location) |
data 영역 한정 Xtrabackup 만 가능 |
Instance + data 지원 |
MySQL Enterprise Backup 개선 Feature | |
부하 조절 (Throttling) |
기능 수행 시, 서버 부하 자체 조절 |
OS 단 버퍼 최적화 (OS buffer optimizations) |
메모리 버퍼 량 조절을 통한 swapping 방지 |
DB page 손상 탐지 (Corruption Detection) |
백업/복구 수행 시, page 손상 여부 파악 |
작업 동기화 Task Synchronization |
백업/복구 수행 시, DB 단에서 동일 시간에 수행하는 타 작업과 동시 수행 허용 |
무제한 DB 크기 지원 (Unlimited database size) |
DB 크기 여부에 관계 없이 자체적인 백업 최적화 수행 |
MySQL 프로세스 밖에서 지원 (Runs outside MySQL process space) |
MySQL 자체 프로세스 밖의 타 프로세스에서 백업 수행 |
공간 부족 탐지 (Low Space Detection) |
백업/복구 시, Disk 공간이 부족하면 추가적인 대안 제시 |
개선된 Logging 제공 (Advanced Output Logging) |
DB Log 이외에 추가적인 Log 제공 |
백업 디렉토리 및 형상 점검 (Validate backup dir and image) |
이미 수행 된 백업 디렉토리 및 데이터 정합성 점검을 통한 안전 백업/복구 지원 |
MyISAM 백업 | 백업 수행 시, 타 app 이 데이터를 읽도록 허용 |
클라우드 스토리지 백업 (Direct to Cloud Storage) |
직관적인 클라우드단 백업기능 제공 (ORACLE, AWS 호환) |
모니터링
모니터링 비교 | Community (MySQL Workbench 기준) |
Enterprise (MySQL Enterprise Monitor 기준) |
DB 정책 기준 권한 부여 (Policy based administration) |
지원 | 지원 |
DB 설정 값 조회 (Centrally view configurations) |
지원 | 지원 |
자체 성능 개선안 제시 (Best Practice Advisors) |
지원 불가 | 지원 |
시각적인 서버 성능 추이 조회 (Visual Trend Analysis) |
지원 | 지원 및 잠재적인 이슈 탐지 등의 추가 기능 제공 |
관제 알림 지원 (Smart Rules & Alerts) |
지원 불가 | 지원 |
권한에 따른 조회 항목 제한 (Role Based Access Control) |
지원 불가 | 지원 |
DB 가용성 이상 여부 탐지 (Availability Monitoring) |
지원 불가 | 지원 |
가용성 상태 탐지 및 알림 (Health Alerts) |
지원 불가 | 지원 |
유저 별 자원 사용량 통계 (User Statistics) |
지원 한정 (information_schema 내 memory 조회 한정) |
지원 |
동시 수행 쿼리 부하 탐지 및 알림 (Concurrent Queries) |
지원 불가 | 지원 |
Lock 등의 쿼리 축적 탐지 및 알림 (Query Pileup) |
지원 불가 | 지원 |
Max Connection 탐지 및 알림 (Maximum Connections) |
지원 불가 | 지원 |
Long Query 탐지 및 알림 (Long running Processes) |
지원 불가 | 지원 |
성능 부하 Top 10 쿼리 탐지 (Top 10 most expensive queries) |
지원 불가 | 지원 |
쿼리 상세 분석 (Drill-down analysis) |
지원 불가 | 지원 |
쿼리 응답 시간 분석 (Response Time analysis) |
지원 불가 | 지원 |
InnoDB 세부 Lock 정보 (InnoDB Locking) |
지원 불가 | 지원 |
InnoDB Buffer Pool 사용 정보 지원 (InnoDB Buffer Pool) |
지원 불가 | 지원 |
Index 튜닝안 제공 (Index Tuning) |
지원 불가 | 지원 |
Replication 세부 정보 탐지 제공 (Replication Monitoring) |
지원 불가 | 지원 |
메모리 사용 현황 세부 탐지 및 파라미터 개선안 제공 (Memory Monitoring) |
지원 불가 | 지원 |
디스크 I/O 등의 디스크 세부 탐지 (Disk I/O, Disk Space) |
Disk 사용량 등의 기능만 한정 지원 |
지원 |
미 탐지 타 mysql 인스턴스 확인 (Auto-discovery of mysqld instances) |
지원 불가 | 지원 |
swap 사용량 탐지 (Swap Usage) |
지원 불가 | 지원 |
네트워크 부하 탐지 (Network Traffic) |
지원 불가 | 지원 |
MySQL Enterprise 방화벽 제공 (MySQL Enterprise Firewall) |
지원 불가 | 지원 |
MySQL Audit 기능 제공 (MySQL Enterprise Audit) |
지원 불가 | 지원 |
비정상 접근 탐지 (Monitor Access Problems) |
지원 불가 | 지원 |
정기, 비정기 백업 이상 여부 탐지 (Backup Monitoring) |
지원 불가 | 지원 |
H.A / Replication
H.A / Replication 비교 | Community (무료 제공 HA 기준) |
Enterprise (MySQL Enterprise H.A 기준) |
사용 가능 HA | MMM, MHA, Galera Cluster | MMM, MHA, Galera Cluster 및 MySQL Enterprise H.A 제공 |
내부 구조 | MySQL 의 기본 Replication 응용 | 자체 Group Replication, Router, Sheel 응용 |
이상 여부 탐지 (Failure Detection) |
동기화가 끊기지 않는 이상 모든 서버 구성원이 불안정 동기화 지속 | 이상 서버 자동 제외로 불안정 동기화 차단 |
이상 허용 (Fault Tolerance) |
각 솔루션 간 자체 허용 알고리즘 존재 | |
자가 이상 회복 (Self-Healing) |
지원 불가 | 지원 |
H.A 이상여부 탐지 (Monitoring) |
지원 불가 | 지원 (자체 Monitoring 제공) |
DB 가용성 이상 여부 탐지 (Availability Monitoring) |
지원 불가 | 지원 |
가용성 상태 탐지 및 알림 (Health Alerts) |
지원 불가 | 지원 |
타 서버 클라이언트 복제 (HA for MySQL Client Applications using MySQL Router) |
지원 불가 | 자체 Router 를 통한 타서버 복제 지원 |
자체 Cluster 운영 Shell 제공 | 지원 불가 | 지원 (자체 Shell 제공) |
'MySQL > 기타 지식' 카테고리의 다른 글
Auto_Increment 개념 및 버전에 따른 주의 사항 (0) | 2023.02.21 |
---|---|
MySQL / MariaDB Replication -Slave 서버 데이터 기입 (0) | 2021.07.09 |
테이블 rename 시 동일 인덱스 적용 가능 유무 (0) | 2021.03.03 |
MySQL / MariaDB 파티션 생성시 주의 할 점 (0) | 2021.03.03 |
MySQL / MariaDB 버전 구분 (0) | 2021.03.03 |