MySQL Cluster情報
- MySQL Clusterとは
- 主な特徴
- 導入事例
- 類似プロダクト
- 商用製品との機能比較
- MySQL Clusterの構成要素
- 動作環境
- 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)から実装が始まり、 現在もバージョンアップとともに性能改善や機能拡張、管理機能の拡充などが進められています。
最新版の8.0系では、下記のような機能が強化されています。
- MySQL Server 8.0 との統合
- 動的メモリ管理
- 3重化、4重化のサポート
- 格納可能なデータ量の劇的な増加
- 更なるパフォーマンスの向上
- 権限管理の簡素化
MySQL Clusterの現在の最新バージョン(GA)は、MySQL Cluster 7.2.35、7.3.30 、7.4.29、7.5.19、7.6.15、8.0.21です。(2020年7月現在)
-
データベース管理システム (DBMS)の基礎となるソフトウェア部品で、実データがどのような形式で、 どのように格納されているかを管理している。ストレージエンジンごとにファイルの保存形式や トランザクション機能、検索処理の仕方などに特徴がある。
MySQLはマルチ・ストレージエンジン方式のRDBMSで、InnoDB、MyISAM、NDB (MySQL Cluster)、 Memory、Merge、Archive、CSVなどのストレージエンジンをサポートしている。 - データベースのクラスタ化を実現する代表的な方式の一つ。「シェアード・ナッシング」は、 複数のサーバ構成において、各サーバごとにディスクを用意して処理を行い、ディスクごとに データを分散させる方式をさす。MySQL Clusterの他は、SQL ServerやUNIX/Windows版 DB2がこの方式を採用している。 また、複数のサーバが1つのディスクを共有する「シェアード・ディスク」方式がある。 Oracleやメインフレーム用のDB2がこの方式を採用している。
主な特徴
主な特徴は以下のとおりです。
高速 |
インメモリー型データベースであるため、トランザクション・スループットが高く、 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に対応しています |
万全なサポート |
MySQL Clusterは開発元の日本オラクル株式会社と、パートナー企業提供によるハイレベルで正式な保守サポートが提供されます |
コスト効果 |
MySQL Clusterは高機能なDBMSでありながら、データベースのライセンスコストを削減することができます |
導入事例
MySQL Clusterは、海外ではFacebook、Google、Alcatel-Lucent、NEC、Cisco、Ericsson、Juniper、Shopatron、Telenor、UTStarcom、米海軍およびZillow.comなど、要件が厳しい通信、金融、Web、政府機関におけるデータ管理環境での数多くの導入事例があります。
国内でも、大手メディア企業や証券会社などといった大規模システムでの導入実績が増えています。
MySQLに関するシステム構築実績が豊富なNRI OpenStandiaチームが手がけた、 国内大手メディア企業へのMySQL Cluster事例はこちらをご覧ください。
類似プロダクト
同様の機能を提供する商用製品としては、以下のようなものがあります。
- Oracle RAC (Real Application Clusters)
- IBM DB2 pureScale
商用製品との機能比較
主な機能と、商用製品との機能等の比較は以下のとおりです。
機能 |
MySQL Cluster |
商用製品A |
---|---|---|
データベース・インスタンスおよびクラスタ・データベースの管理 |
○ |
○ |
ACID 準拠、トランザクションデータベース |
○ |
○ |
インメモリインデックス |
○ |
○ |
ディスクベースのデータ |
○ |
○ |
アーキテクチャ |
分散型シェアードナッシング |
シェアードディスク |
データレプリケーション |
○ |
○ |
遠隔地レプリケーション |
○ |
○ |
自動フェイルオーバ |
○ |
○ |
オンラインのスキーマアップデートおよびシステムメンテナンス |
○ |
○ |
市販システムによるスケールアップおよびスケールアウト |
○ |
× |
オンラインでのノード追加 |
○ |
○ |
オンラインバックアップ |
○ |
○ |
SQL インターフェース |
○ |
○ |
NDB API (C / C++ / Java) |
○ |
○ |
ロードバランシング |
○ |
○ |
データベース監視、管理 |
○ |
○ |
24時間365日サポート |
○ |
○ |
無制限サポート・ |
○ |
○ |
ナレッジベース |
○ |
○ |
メンテナンス・リリース、バグ修正、パッチ、アップデートの提供 |
○ |
○ |
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の構成要素
動作環境
前提となる動作環境は、以下のとおりです。
8.0 |
7.6 |
7.5 |
7.4 |
7.3 |
7.2 |
||
---|---|---|---|---|---|---|---|
OS | アーキテクチャ | ||||||
Oracle Linux / Red Hat / CentOS | |||||||
Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS 8 |
x86_64 |
○ |
|||||
Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7 |
x86_64 |
○ |
○ |
○ |
○ |
○ |
○ |
Oracle Linux 6 / Red Hat Enterprise Linux 6 / CentOS 6 |
x86_32, x86_64 |
○ |
○ |
○ |
○ |
○ |
|
Oracle Solaris | |||||||
Solaris 11 |
SPARC_64 |
○ |
○ |
○ |
○ |
○ |
○ |
Solaris 11 |
x86_64 |
○ |
○ |
○ |
○ |
○ |
|
Solaris 10 |
SPARC_64, x86_32, x86_64 |
○ |
○ |
○ |
|||
Canonical | |||||||
Ubuntu 18.04 LTS |
x86_64 |
○ |
○ |
||||
Ubuntu 16.04 LTS |
x86_64 |
○ |
○ |
○ |
|||
Ubuntu 14.04 LTS |
x86_64 |
○ |
|||||
SUSE | |||||||
SUSE Enterprise Linux 15 / OpenSUSE 15 |
x86_64 |
○ |
|||||
SUSE Enterprise Linux 12 |
x86_64 |
○ |
○ |
○ |
○ |
○ |
|
SUSE Enterprise Linux 11 |
x86_64 |
○ |
○ |
○ |
|||
Debian | |||||||
Debian GNU/Linux 9 |
x86_64 |
○ |
|||||
Debian GNU/Linux 8 |
x86_64 |
○ |
|||||
Microsoft Windows Server | |||||||
Microsoft Windows 2019 Server |
x86_64 |
○ |
|||||
Microsoft Windows 2016 Server |
x86_64 |
○ |
○ |
||||
Microsoft Windows 2012 Server |
x86_64 |
○ |
○ |
○ |
○ |
||
Microsoft Windows | |||||||
Microsoft Windows 10 |
x86_64 |
○ |
○ |
○ |
|||
Apple | |||||||
macOS 10.14 |
x86_64 |
○ |
|||||
macOS 10.13 |
x86_64 |
○ |
○ |
||||
General LINUX | |||||||
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のライセンス
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」等の機能を利用することができます
NRIは、日本オラクル株式会社と正式なMySQLパートナーシップを結んでいる、 MySQL 販売パートナーです。お客様のシステム用件に応じた、最適なMySQLライセンスを販売・ご提供します。 MySQLの保守サポートも実施しています。
コミュニティ版とMySQL Cluster Carrier Grade 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に最適なアプリケーション
- 大容量 OLTP
- リアルタイム分析
- eコマース および不正検出機能を備えた金融取引
- モバイルおよびマイクロペイメント
- セッション管理およびキャッシング
- フィード・ストリーミング、解析およびレコメンデーション
- コンテンツ管理および配信
- 大規模マルチレイヤ・オンライン・ゲーム
- コミュニケーションおよびプレゼンス・サービス
- サブスクライバ / ユーザー・プロファイル管理およびエンタイトルメント(権限付与)
製品ダウンロード
オープンソース年間サポートサービス
OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。
関連OSS
-
サポート対象
PostgreSQL
ポストグレエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システムです。
-
サポート対象
MariaDB
マリアデービー。MySQLから派生したオープンソースのリレーショナルデータベース管理システム(RDBMS)です。
-
サポート対象
MySQL
マイエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システム