http://www.mysqlkorea.co.kr
한글매뉴얼 5.0 , 한글매뉴얼 5.1 , MySQL 5.1 HA , 사용자매뉴얼
Advanced Knowle...  
엔지니어 노트  
블로그존  
글로벌 MySQL  
MySQL 5.5 GA  
MySQL 5.6 Developer  
최신글
프로시저에서 다…
프로시저에서 다…
mysql 단편화에 …
mssql -> mysql이…
sql 쿼리문 질문…
 
엔지니어 노트 > 개발자 존 > 엔지니어 노트
MySQL Fabric 특징 및 장점
글쓴이 : royster   날짜 : 15-11-19 18:48   조회수 : 2215
특징 장점
High Availability
MySQL Replication 구축 MySQL 복제는 매우 성숙한 기술이며, 많은 Web 어플리케이션에 사용되고 있습니다. 데이터베이스를 확장 할뿐만 아니라 데이터의 중복성을 제공합니다. MySQL 복제는 MySQL Fabric이 제공하는 HA의 핵심 기술입니다.
Server Monitoring MySQL Fabric가 MySQL 서버의 상태를 감시하고 있기 때문에 쿼리와 트랜잭션을 항상 적절한 서버에 전달할 수 있습니다. MySQL Fabric은 서버에서 자체 모니터링 및 Fabric 대응 커넥터에서 액세스 서버 정보를 수신 할 수 있습니다.
자동 Failover MySQL Fabric는 마스터의 고장을 감지하면 자동으로 슬레이브를 새로운 마스터로 승격합니다 - 읽기 및 쓰기 작업을 모두 계속할 수 있습니다.
Transparent Failover 응용 프로그램은 트랜잭션을 새로운 마스터로 전송하기위한 변경이 필요하지 않습니다. 연결 대상 변경은 MySQL Fabric의 논리에 캡슐화됩니다..
Semi-Synchronous Replication MySQL의 준 동기식 복제를 사용하면 관리자는 마스터에 장애가 발생한 경우 커밋 된 변경 내용이 손실되지 않도록 할 수 있습니다.
지리적 중복 지리적 중복은 다른 데이터 센터의 MySQL 서버에서 HA 그룹을 구성하여 수행 할 수 있습니다. MySQL Fabric 스테이트 스토어는 MySQL 데이터베이스에 저장되어 있기 때문에 원격 사이트에 복제 할 수 있습니다.
Sharding
읽기 및 쓰기를 선형 적으로 확장 읽기 스케일링은 간단합니다 - 단순히 읽기 슬레이브를 추가합니다. 쓰기 스케일링은 더 복잡하고 가장 널리 사용되고있는 방법은 테이블의 행을 다른 샤드로 나눌 수 있습니다. 각 샤드는 각각의 MySQL 서버에 저장되어 있습니다. MySQL Fabric은이 방법을 자동화합니다.
User-Selected shard keys 어느 컬럼을 샤드 키에 사용할지 여부를 사용자가 선택하여 사용자는 데이터를 균일하게 분산하는 것도 효율성을 위해 동일한 노드에 배치 할 수 있습니다. (예를 들어, 사용자 데이터가 어느 정도의 양인지에 관계없이 특정 사용자의 데이터를 동일한 샤드에 저장할 수 있습니다)
Shard 기능 MySQL Fabric은 관련 데이터를 저장하는 샤드에 샤드 키를 매핑합니다. 샤드 매핑은 RANGES (이 경우 사용자는 각 샤드의 범위를 설정합니다) 또는 HASH 함수에 근거 할 수 있습니다.
Shard Groups 각 샤드는 하나의 MySQL 서버 또는 HA 그룹 (고 가용성이 필요한 경우) 중 하나에 저장할 수 있습니다
Shard 이동 동서버를 교체 할 경우 나 서버 스펙이 샤드에 대해 너무 낮은 경우 MySQL Fabric은 새로운 서버 또는 HA 그룹에 샤드를 이동합니다. 이것은 응용 프로그램에 대해 완전히 투명합니다.
Shard 분할 샤드가 단일 서버 또는 서버 그룹에 대해 크게 자란 경우 (또는 트랜잭션 비율이 너무 높아 경우), MySQL Fabric은 샤드를 새 서버 또는 서버 그룹으로 나눌 수 있습니다. 이것은 응용 프로그램에 대해 완전히 투명합니다.
Load balance reads 샤드마다 이용 가능한 슬레이브에서 (마스터는 옵션) 자동으로 쿼리를로드 밸런스합니다. 사용자는 서버에 가중치를 할당 할 수 있습니다.
Launch Without Sharding MySQL Fabric은 샤드 없이도 높은 가용성을 제공하도록 설계되어 있습니다 - 단순히 하나의 마스터와 하나의 슬레이브에서 하나의 HA 그룹을 만들 수 있습니다. 이후 사업이 샤드를 필요로하고 추가 자원을 확보 할 수있는 때 샤드를 추가 할 수 있습니다.
기술의 진화 MySQL Fabric은 지금 현재 MySQL의 비동기 및 준 동기 복제 작동하지만 다른 MySQL의 기술도 함께 작동하도록 설계되어 있습니다. 따라서 MySQL의 진화의 혜택을받을 수 있습니다.
응용 프로그램에서의 투과성 토보로지 및 기반 기술의 진화에서 응용 프로그램 보호되고 있습니다. 왜냐하면 MySQL Fabric 추상화를 제공하기 때문입니다. 응용 프로그램 개발자는 데이터베이스 인프라의 변경을 걱정하지 않고 혁신적인 새로운 기능을 이용하여 비즈니스 가치를 높이는 데 집중할 수 있습니다.
Conflict & Deadlock Free 샤드의 트랜잭션은 표준 InnoDB 행 기반 잠금이 적용되기 때문에 MySQL Fabric을 사용해서 추가 충돌과 교착 상태는 아닙니다.
MySQL Fabric 대응 커넥터
캡슐화 된 서버 토폴로지 및 상태 MySQL Fabric 기능 커넥터는 서버 군의 구성 및 현재 상태에 대한 정보를 가지고 그것을 따라 쿼리와 트랜잭션을 적절히 라우팅합니다. 따라서 응용 프로그램은이 정보를 가질 필요가 없습니다. 가장 중요한 것은, 토폴로지 및 상태 정보를 업데이트 할 응용 프로그램의 업데이트는 필요하지 않습니다. 이 응용 프로그램에서 데이터베이스에 대한 액세스를 간단한 키 포인트입니다.
Shard Routing 어플리케이션이 제공하는 샤드 키에 따라 커넥터는 자동으로 쿼리 및 트랜잭션을 적절한 샤드로 라우팅합니다 - 특히 샤드 키는 서버 군의 토보로지와 샤드의 수와 크기와 관계 없습니다. 일반적으로 샤드 키는 기존의 컬럼에서 애플리케이션있어서 의미있는 컬럼 (예 : 사용자 ID). 샤드를 작동시키기 위해 추가되는 것은 아닙니다.
Writes Sent to Master 올바른 샤드을 식별 할뿐만 아니라 그 샤드 MySQL 마스터에 기록 할 수 있습니다.
Load Balancing of Reads 일반적으로 각 샤드에 하나 이상의 슬레이브가 존재합니다. 커넥터는 모든 샤드 슬레이브에 걸쳐 읽기 부하를 분산합니다.
응용 프로그램에 투명한 장애 조치 슬레이브가 새로운 마스터로 승격 된 경우, 커넥터는 갱신 된 라우팅 정보를 검색 한 다음 쓰기가 새로운 마스터로 전송되는 것이 보증됩니다.
응용 프로그램에 투명한 샤드 재구성 샤드가 새로운 서버 (또는 서버 군 수영장)로 이동 된 경우 또는 샤드가 크게 자란 위해 분할 된 경우, 커넥터는 갱신 된 라우팅 정보를 취득 해, 모든 트랜잭션과 쿼리를 적절한 서버 라우팅합니다.
자동 장애 감지 커넥터는 항상 관리 된 풀의 서버와 통신합니다. 따라서 MySQL 서버에 오류가 발생하면 신속하게 감지합니다. MySQL Fabric 대응 커넥터가 장애를 의심하면 MySQL Fabric 프로세스에 통지하여 다른 소스에서 데이터 및 정보를 묶어 페일 오버를 시작할지 여부를 결정합니다.
System-Wide Coordination
서버 군 전체의 컨트롤 싱글의 MySQL Fabric 인스턴스는 모든 MySQL 서버의 뷰를가집니다. 각 서버에 어떤 데이터가 저장되어 있는지, 그 데이터의 상태 정보를 모두입니다. (샤드 분할 또는 슬레이브를 상승 같은) 변경이 필요한 경우 MySQL Fabric은 전체 프로세스를 조정합니다.
Global Data 일반적으로 샤드 된 데이터와 결합 (JOIN)하여 전체 서버에 보관하는 것이 효율적으로 활용할 수있는 데이터가 있습니다 (예 : employees 데이터베이스 department 테이블 등). 이러한 데이터는 글로벌 그룹에 할당 된 서버 그룹 내의 각 서버 / 샤드에 복제됩니다.
일원화 된 스키마 변경 글로벌 그룹에서 스키마를 변경하여 전체 샤드에 걸쳐 공통 스키마를 유지할 수 있습니다. (나중에 서버 군의 모든 서버에 복제됩니다)
간단하고 효율적인 아키텍처
No Proxies 기존의 방법으로는 프록시 프로세스를 통해 프록시 프로세스가 트랜잭션 / 쿼리를 분석하여 적절한 서버로 요청을 전달했습니다. 이 방법은 각 작업에 지연의 원인에 프록시가 단일 실패 지점이나 성능 병목 현상이 발생할 수 있습니다. MySQL Fabric은 MySQL Fabric 대응 커넥터를 이용하여이 문제를 해결합니다.
No Agents MySQL Fabric은 각 MySQL 서버에 에이전트 프로세스를 사용하지 않고 직접 액세스합니다.
MySQL에 보관 된 메타 데이터 메타 데이터는 MySQL에 유지되고 있기 때문에 표준 MySQL 도구를 이용하여 백업을 얻을 수 있습니다. (예 : mysqldump 또는 MySQL Enterprise Backup)
확장 가능한 프레임 워크 기존 서비스를 쉽게 확장하거나 새로운 서비스를 추가 할 수 있습니다 (오라클 또는 사용자 고유 모두에서 가능).
Single Source MySQL Fabric은 MySQL 서버와 MySQL 복제와 같은 개발 팀에 의해 구축되어 있습니다. 실제로 코드를 쓴 인간에서 스택 전체에 대한 Oracle Premier Support가 제공됩니다.
응용 프로그램의 안전성 및 호환성
InnoDB 실적이 적은 스토리지 엔진으로 전환 할 필요는없고, 인기와 검증 된 InnoDB를 이용하여 계속합니다. MySQL Fabric 응용 프로그램에 대한 변경을 최소화합니다.
ACID 트랜잭션의 쓰기는 완전한 ACID가 보장됩니다. 데이터의 일관성에 대한 위험이 없습니다.
친숙한 도구 MySQL Fabric에 의해 관리되는 서버에서는 다음과 같은 익숙한 도구를 계속 사용할 수 있습니다 - MySQL Enterprise Monitor, MySQL Workbench, MySQL Enterprise Backup, mysqldump 등.
MySQL 스킬의 재사용 MySQL Fabric에 의해 관리되는 서버를 사용하는 경우, DBA, 개발자와 Dev-Ops는 축적 된 MySQL 기술을 활용할 수 있습니다.
Open
Open Source MySQL Fabric은 오픈 소스 (GPLv2 라이센스에 따라 달라집니다). 개발자의 이해 촉진과 소스 변경을 위해 코드를 알아내는 것은 자유롭게 할 수 있습니다.
메타 데이터에 대한 오픈 API MySQL Fabric의 모든 정보 (토폴로지 매핑 및 상태)는 명령 줄 또는 XML / RPC API를 통해 읽거나 업데이트 할 수 있습니다 (SQL을 사용하여 상태 저장소에서 직접 액세스 할 수 있습니다). 응용 프로그램에서이 데이터에 액세스해야하는 경우 꼭 이용 해주세요 (예 : Fabric 비 대응 커넥터의 사용이 필요한 경우).
Connectors 현재 PHP, Python, Java , .NET MySQL Fabric 대응 커넥터를 제공합니다. 향후 해당 커넥터는 증가합니다. 커뮤니티 소스 MySQL의 커넥터에 관심이있는 분 (또는 자신의 커넥터를 가지고있는 분)은 Fabric에 대응하기 위해 제공되는 API의 사용을 권장합니다.
이전글 MySQL Fabric (고가용성) 소개 
다음글 MySQL Fabric FAQ 
MySQL Korea 사이트의 컨텐츠 소유권은 (주)상상이비즈에 있으므로 무단전재를 금합니다.
ⓒ 2010-2011 ssebiz All Rights Reserved.