マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】MySQL Cluster

【OSS情報アーカイブ】MySQL Cluster

※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。

「MySQL Cluster」とは

MySQL Clusterの概要

MySQL Cluster(マイエスキューエル クラスター)とは、「NDB」というMySQL Serverのストレージエンジン(※1)の1つで、 負荷分散型・高可用性という特徴を持つインメモリー型のトランザクション・データベースです。

MySQL Clusterは、オープンソースでありながら単一障害点のないシェアード・ナッシング型(※2) の分散アーキテクチャを採用し、障害発生時のフェールオーバー時間が非常に短く、 99.999%という非常に高い可用性を実現しています。
このため、MySQL Clusterは、複数のホストを用いて構成するような大規模システムや、 通信系など要求水準の高いミッション・クリティカルなシステムで採用されています。

MySQL Clusterは、MySQL 4.1.3 (RPM版はMySQL 4.1.10)から実装が始まり、 現在もバージョンアップとともに性能改善や機能拡張、管理機能の拡充などが進められています。
最新版の7.3.2では、下記のような新機能が追加されています。

  • 外部キー制約の実装とInnoDBテーブルとの互換性
  • Node.jsに対する新しいNoSQL JavaScriptコネクタ
  • GUI(Webブラウザ)ベースの自動インストーラ
  • SQLノード/NDB APIネイティブアプリ/ndb-memcachedなどの性能の大幅な改善
  • Connection Thread Scalabilityでの、データノードへの各接続のスループット向上
  • 最新リリース「MySQL 5.6」のネイティブインテグレーションにより、単一DB内でInnoDBとCluster NDBストレージエンジンの組み合わせが可能

MySQL Clusterの現在の最新バージョン(GA)は、MySQL Cluster 7.3.2です。(2013年07月現在)

※1
データベース管理システム (DBMS)の基礎となるソフトウェア部品で、実データがどのような形式で、 どのように格納されているかを管理している。ストレージエンジンごとにファイルの保存形式や トランザクション機能、検索処理の仕方などに特徴がある。
MySQLはマルチ・ストレージエンジン方式のRDBMSで、InnoDB、MyISAM、NDB (MySQL Cluster)、 Memory、Merge、Archive、CSVなどのストレージエンジンをサポートしている。

※2
データベースのクラスタ化を実現する代表的な方式の一つ。「シェアード・ナッシング」は、 複数のサーバ構成において、各サーバごとにディスクを用意して処理を行い、ディスクごとに データを分散させる方式をさす。MySQL Clusterの他は、SQL ServerやUNIX/Windows版 DB2がこの方式を採用している。 また、複数のサーバが1つのディスクを共有する「シェアード・ディスク」方式がある。 Oracleやメインフレーム用のDB2がこの方式を採用している。

MySQL Clusterのライセンス

MySQL Clusterは、オープンソースのデータベースであり、利用者が利用用途に応じて「GPLライセンス(GNU General Public License)」か、「商用ライセンス」のいずれかを選択する、「デュアルライセンスモデル」を採用しています。
MySQL Cluster には GPLライセンスで利用できるコミュニティ版と、商用ライセンスの MySQL Cluster Carrier Grade Edition(MySQL Cluster CGE) があります。

MySQL Cluster Carrier Grade Edition では、保守サポート提供のほか、「MySQL Enterprise Monitor」や、「MySQL Enterprise Backup」 など、MySQL Enterprise Edition(サブスクリプション) のすべてのサポート内容・追加ソフトウェアに加え、MySQL Cluster データベースの作成と管理を簡素化する「MySQL Cluster Manager」等の機能を利用することができます。

MySQL Cluster Carrier Grade Edition の年間サブスクリプション費用については「MySQL」のMySQL商用ライセンスの種類と購入方法 MySQL Edition サブスクリプション機能比較表をご覧ください。

  MySQL Cluster Community Edition MySQL Cluster Carrier Grade Edition
機能
MySQL Cluster
データベース
(アプリケーション、データ管理ノード)
ACID 準拠、トランザクションデータベース
外部キー制約
分散型シェアード・ナッシング・アーキテクチャ
単一障害点なし
自動シャーディング
マルチマスター・レプリケーション
分散型クロス・シャードJOIN
リアルタイム応答
同期データ・レプリケーション
遠隔地レプリケーション
マルチサイト・クラスタリング
自動1秒未満フェイルオーバーおよび自己修正リカバリ
オンライン・ノード追加/削除
オンライン・スキーマ・アップデートおよびシステム・メンテナンス
マルチスレッド・データノード:コモディティ・システムによるスケール
SQLインターフェース
NoSQL API: Memcached ネイティブ・キー・バリュー型アクセス
NoSQL using JavaScript & node.js ネイティブJavaScriptアクセス
NoSQL API: NDB API(C++) ネイティブ C++ アクセス
NoSQL API:Java and JPA ネイティブJava & JPA アクセス
NoSQL API:HTTP/REST ネイティブHTTP/RESTアクセス
スキーマおよびスキーマレス・データモデル
仮想マシン(VM:Virtual Machine)環境での運用
インメモリーおよびディスクベース・テーブル
コモディティ・ハードウェア環境での最適化
リアルタイム・レスポンス
データベース監視、管理
NDBINFOリアルタイム・クラスタ監視
MySQL Enterprise Monitor  
MySQL Enterprise Backup  
MySQL Enterprise Security  
MySQL Enterprise Audit  
MySQL Enterprise Scalability  
MySQL Enterprise High-Availability  
MySQL Cluster Manager  
MySQL Cluster Geo-Replication  
Oracle Premier Support for MySQL
24時間365日
サポート
 
無制限サポート・
インシデント
 
ナレッジベース  
メンテナンス・リリース、バグ修正、パッチ、アップデートの提供  
ライセンス体系
  GPL コマーシャル

MySQL Clusterの動作環境

前提となる動作環境は、以下のとおりです。

OS アーキテクチャ 7.3 7.2 6.3 6.2
Oracle Linux
Oracle Linux 6 x86, x86_64    
Oracle Linux 5 x86, x86_64
Oracle Solaris
Solaris 11 SPARC (64 bit), x86_64    
Solaris 10 SPARC (32-bit)    
Solaris 10 SPARC (64-bit), x86_64, x86/32-bit
Solaris 9 SPARC, (32 and 64-bit), x86/32-bit    
RedHat
Red Hat Enterprise Linux 6 x86, x86_64    
Red Hat Enterprise Linux 5 x86, x86_64
Red Hat Enterprise Linux 4 x86, x86_64  
SuSE
SuSE Enterprise Linux 11 x86, x86_64    
SuSE Enterprise Linux 10 x86, x86_64  
Microsoft
Microsoft Windows 8 x86, x86_64    
Microsoft Windows 7 x86, x86_64    
Microsoft Windows Vista x86, x86_64    
Microsoft Windows 2012 Server x86_64    
Microsoft Windows 2008 Server(incl R2) x86, x86_64    
Microsoft Windows 2003 Server x86, x86_64      
Microsoft Windows XP x86, x86_64      
General LINUX
  x86, x86_64

その他 システム要件

  • CPU
    ・Intel/AMD x86, UltraSPARC(メモリ要求から64ビットを推奨)
  • メモリ
    ・16GB以上のRAM(最小1GB、データサイズやData Node数、レプリケーション設定に依存)
  • ハードディスク
    ・18GB以上(3GB最小)
  • ネットワーク
    ・1+ nodes (Gigabit Ethernet – TCP/IP)

※コモディティ・ハードウェアとローカルのストレージを利用したスケールアウトに最適化されている
※クラスタリングソフト、負荷分散装置、外部ディスク(共有ストレージ)などは不要

MySQL コネクタ

アプリケーションは、MySQL コネクタを使用して開発できます。
MySQL Cluster は、さらにJavaScript、Memcached、C++、Java、JPAおよびHTTP/RESTを介してネイティブNoSQLコネクティビティを提供します。

  • ADO.NET Driver for MySQL (Connector/NET)
  • ODBC Driver for MySQL (Connector/ODBC)
  • JDBC Driver for MySQL (Connector/J)
  • C++ Driver for MySQL (Connector/C++)
  • C Driver for MySQL (Connector/C)
  • C API for MySQL (mysqlclient)

MySQL コミュニティ提供ドライバ

  • PHP Drivers for MySQL(mysqli, ext/mysqli, PDO_MYSQLND, PHP_MYSQLND)
  • Perl Driver for MySQL (DBD::mysql)
  • Python Driver for MySQL (MySQLdb)
  • Ruby Driver for MySQL (DBD::MySQL)
  • Ruby Driver for MySQL (ruby-mysql)
  • C++ Wrapper for MySQL C API (MySQL++)

MySQL Clusterの主な特徴

主な特徴は以下のとおりです。

高速 インメモリ型データベースであるため、トランザクション・スループットが高く、1秒当たり数万件というトランザクションにも応答可能で、リアルタイム性が求められるシステムに数多く採用されています
高可用性 単一障害点のないシェアード・ナッシング型の分散アーキテクチャの採用、高速自動フェイルオーバーで、99.999%という非常に高い可用性を実現します
また、標準でレプリケーション機能が実装されています
完全性 完全なACID (atomic, consistent, isolated, durable)トランザクションをサポートしています
拡張性 稼動中のクラスタにも停止時間ゼロでノードを追加したりデータベース・スキーマの更新を行えるため、将来的なスケールアウト対応も容易です
また、テーブルをノード間で自動的にシャード(分割)でき、低コストなコモディティ・ハードウェア上でデータベースの水平スケールが可能です
リアルタイムレスポンス 応答遅延を一貫して1ミリ秒以下に抑えるリアルタイム設計のため、1秒あたり数万のトランザクション処理が可能です
SQL & NoSQL デークアクセス RDBMSとNoSQL両方のインターフェイスを持ち、両方の技術を組み合わせてソリューションに利用できます
豊富な導入実績 海外ではFacebook、Google、Alcatel-Lucent、NEC、Cisco、米海軍およびZillow.comなど、要件が厳しい通信、金融、Web、政府機関におけるデータ管理環境での導入事例が多数あり、信頼性は実証済みです
遠隔地レプリケーション 遠隔地レプリケーションを使用して複数のクラスタを遠隔地に分散することで、ディザスタ・リカバリ構成およびグローバルなWebサービスのスケーラビリティ構成の構築が可能です
遠隔地レプリケーションは、データセンター間の運用モデルとしての推奨オプションであり、非同期でアクティブ/アクティブまたはアクティブ/パッシブ構成で実装可能です
管理が容易 MySQL本体はインストールまでの時間が短く(インストールと設定が15分で完了と言われています)、マルチOSに対応しています
また、最新の7.3からは、GUIの自動インストーラ機能も追加され、DB管理者のデータベースの作成と管理を簡素化します
万全なサポート MySQL Clusterは開発元の日本オラクル株式会社と、パートナー企業提供によるハイレベルで正式な保守サポートが提供されます
NRIでは、「オープンソース・ワンストップサービスOpenStandia(オープンスタンディア)」で、MySQL Clusterを含む約50種類のオープンソースをワンストップでサポートします
コスト効果 MySQL Clusterは高機能なDBMSでありながら、データベースのライセンスコストを削減することができます
さらに、ストレージエンジン自体に負荷分散、高可用性機能が盛り込まれているため、クラスタリングソフトや負荷分散装置、および高額な外部ディスク(共有ストレージ)を必要としない分、他のクラスタリングソリューションよりも低コストでDBの冗長構成が実現できます

MySQL Clusterの構成要素

MySQL Clusterは、2層アーキテクチャ(インターフェイス層(SQL&NoSQL)とストレージ層)を採用しています。
一つ(または複数)の管理サーバがクラスタ構成のマスタとして、全体のノード構成情報を管理します。

  • 管理サーバ(Management Server)
    -MySQL Cluster全体のノード構成情報を管理
    -データノードとSQLノードの起動・停止、フェイルオーバーなどを実行
    -実体はndb_mgmdというプロセス
  • データノード(Data Node)
    -クラスタのデータを保持
    -複数台で同期レプリケーションされる
    -実体はndbdというプロセス
  • APIノード(API Node)
    -クライアントからの接続を受け付け、結果を返すためのノード
    -SQLの構文を解析しデータノードからデータを取得したり、最適化、ソート、結合などを実行
    -APIノードが実行操作を受信すると、データノードとのインターフェースであるNDB APIがプロトコル変換する
    -NDB Clusterストレージエンジンを使用した従来の MySQLサーバ(通常のmysqldプロセス)がSQLノードに該当

MySQL Clusterの構成要素

MySQL Clusterの構成要素

MySQL Clusterと同様の機能を提供する商品製品

同様の機能を提供する商用製品としては、以下のようなものがあります。

  • Oracle RAC (Real Application Clusters)
  • IBM DB2 pureScale

MySQL Clusterの主な機能と商用製品との機能比較

主な機能と、商用製品との機能等の比較は以下のとおりです。

機能 MySQL Cluster 商用製品A
データベース・インスタンスおよびクラスタ・データベースの管理
ACID 準拠、トランザクションデータベース
インメモリインデックス
およびデータ
ディスクベースのデータ
アーキテクチャ 分散型シェアードナッシング シェアードディスク
データレプリケーション
遠隔地レプリケーション
自動フェイルオーバ
および自己修正
オンラインのスキーマアップデートおよびシステムメンテナンス
市販システムによるスケールアップおよびスケールアウト ×
オンラインでのノード追加
オンラインバックアップ
SQL インターフェース
NDB API (C / C++ / Java)
ロードバランシング
データベース監視、管理
24時間365日サポート
無制限サポート・
インシデント
ナレッジベース
メンテナンス・リリース、バグ修正、パッチ、アップデートの提供

MySQL Clusterに最適なアプリケーション

  • 大容量 OLTP
  • リアルタイム分析
  • eコマース および不正検出機能を備えた金融取引
  • モバイルおよびマイクロペイメント
  • セッション管理およびキャッシング
  • フィード・ストリーミング、解析およびレコメンデーション
  • コンテンツ管理および配信
  • 大規模マルチレイヤ・オンライン・ゲーム
  • コミュニケーションおよびプレゼンス・サービス
  • サブスクライバ / ユーザー・プロファイル管理およびエンタイトルメント(権限付与)

MySQL Clusterの導入事例

MySQL Clusterは、海外ではFacebook、Google、Alcatel-Lucent、NEC、Cisco、Ericsson、Juniper、Shopatron、Telenor、UTStarcom、米海軍およびZillow.comなど、要件が厳しい通信、金融、Web、政府機関におけるデータ管理環境での数多くの導入事例があります。
国内でも、大手メディア企業や証券会社などといった大規模システムでの導入実績が増えています。

MySQL Clusterのダウンロード

MySQL Clusterのダウンロードページ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

この記事のタグ一覧

おすすめの記事

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

AIツール実験室

2023.12.27

【AIツール実験室】チャットAI対抗「添削能力」選手権🏆

各チャットAIの「添削能力」について比較確認をしています。 「ChatGPT4と同等の添削能力を発揮した無料チャットAI」にご注目ください。 また、 ChatGPTカスタマイズ機能「GPTs」を利用して作成した GPTs文章添削機能「添削師匠さん✍️」を紹介しています。 課金勢は試しに使ってみてください。

【IT用語解説】「 デジタルヒューマン 」とは😊

IT用語解説

2024.01.26

【IT用語解説】「 デジタルヒューマン 」とは😊

【IT用語解説】「 デジタルヒューマン 」として、「デジタルヒューマンとは何か?」「どのようにして作成できるのか?」「私たちの世界にどのような影響を与えているのか?」などについて、まとめています。

AIツール関連 記事リストポータル

AIツール

2023.10.05

AIツール関連 記事リストポータル

AI 関連の記事をまとめたポータルページです。