目次
- 18.1 MySQL Cluster の概要
- 18.2 MySQL Cluster のインストール
- 18.3 MySQL Cluster の構成
- 18.4 MySQL Cluster プログラム
- 18.4.1 ndbd — MySQL Cluster データノードデーモン
- 18.4.2 ndbinfo_select_all — ndbinfo テーブルからの選択
- 18.4.3 ndbmtd — MySQL Cluster データノードデーモン (マルチスレッド)
- 18.4.4 ndb_mgmd — MySQL Cluster 管理サーバーデーモン
- 18.4.5 ndb_mgm — MySQL Cluster 管理クライアント
- 18.4.6 ndb_blob_tool — MySQL Cluster テーブルの BLOB および TEXT カラムのチェックおよび修復
- 18.4.7 ndb_config — MySQL Cluster 構成情報の抽出
- 18.4.8 ndb_cpcd — NDB 開発のためのテストの自動化
- 18.4.9 ndb_delete_all — NDB テーブルからのすべての行の削除
- 18.4.10 ndb_desc — NDB テーブルの表示
- 18.4.11 ndb_drop_index — NDB テーブルからのインデックスの削除
- 18.4.12 ndb_drop_table — NDB テーブルの削除
- 18.4.13 ndb_error_reporter — NDB エラーレポートユーティリティー
- 18.4.14 ndb_index_stat — NDB インデックス統計ユーティリティー
- 18.4.15 ndb_print_backup_file — NDB バックアップファイルの内容の出力
- 18.4.16 ndb_print_file — NDB ディスクデータファイル内容の出力
- 18.4.17 ndb_print_schema_file — NDB スキーマファイル内容の出力
- 18.4.18 ndb_print_sys_file — NDB システムファイル内容の出力
- 18.4.19 ndbd_redo_log_reader — クラスタ Redo ログ内容のチェックおよび出力
- 18.4.20 ndb_restore — MySQL Cluster バックアップのリストア
- 18.4.21 ndb_select_all — NDB テーブルの行の出力
- 18.4.22 ndb_select_count — NDB テーブルの行数の出力
- 18.4.23 ndb_setup.py — MySQL Cluster のブラウザベース自動インストーラの開始
- 18.4.24 ndb_show_tables — NDB テーブルのリストの表示
- 18.4.25 ndb_size.pl — NDBCLUSTER サイズ要件エスティメータ
- 18.4.26 ndb_waiter — MySQL Cluster が指定したステータスになるまで待機する
- 18.4.27 MySQL Cluster プログラムに共通するオプション — MySQL Cluster プログラムに共通するオプション
- 18.5 MySQL Cluster の管理
- 18.5.1 MySQL Cluster の起動フェーズのサマリー
- 18.5.2 MySQL Cluster 管理クライアントのコマンド
- 18.5.3 MySQL Cluster のオンラインバックアップ
- 18.5.4 MySQL Cluster での MySQL サーバーの使用法
- 18.5.5 MySQL Cluster のローリング再起動の実行
- 18.5.6 MySQL Cluster で生成されたイベントレポート
- 18.5.7 MySQL Cluster ログメッセージ
- 18.5.8 MySQL Cluster のシングルユーザーモード
- 18.5.9 クイックリファレンス: MySQL Cluster の SQL ステートメント
- 18.5.10 ndbinfo MySQL Cluster 情報データベース
- 18.5.11 MySQL Cluster のセキュリティー上の問題
- 18.5.12 MySQL Cluster ディスクデータテーブル
- 18.5.13 MySQL Cluster データノードのオンライン追加
- 18.5.14 MySQL Cluster の配布された MySQL 権限
- 18.5.15 NDB API 統計のカウンタと変数
- 18.6 MySQL Cluster レプリケーション
- 18.6.1 MySQL Cluster レプリケーション: 略語と記号
- 18.6.2 MySQL Cluster レプリケーションの一般要件
- 18.6.3 MySQL Cluster レプリケーションの既知の問題
- 18.6.4 MySQL Cluster レプリケーションスキーマとテーブル
- 18.6.5 レプリケーションのための MySQL Cluster の準備
- 18.6.6 MySQL Cluster レプリケーションの起動 (レプリケーションチャネルが 1 つ)
- 18.6.7 2 つのレプリケーションチャネルを使用する MySQL Cluster レプリケーション
- 18.6.8 MySQL Cluster レプリケーションを使用したフェイルオーバーの実装
- 18.6.9 MySQL Cluster レプリケーションを使用した MySQL Cluster バックアップ
- 18.6.10 MySQL Cluster レプリケーション: マルチマスターと循環レプリケーション
- 18.6.11 MySQL Cluster レプリケーションの競合解決
- 18.7 MySQL Cluster リリースノート
この章には、分散コンピューティング環境に適した MySQL の高可用性および高冗長性バージョンである MySQL Cluster に関する情報が含まれています。MySQL Cluster の最近のバージョンでは、NDB
ストレージエンジン (NDBCLUSTER
) のバージョン 7 を使用して、MySQL Server およびその他のソフトウェアを含む複数のコンピュータをクラスタ内で動作させることができます。本番環境で使用可能な最新リリースである MySQL Cluster NDB 7.3 には、NDB
バージョン 7.3 が組み込まれています。この章には、NDB
ストレージエンジンのバージョン 7.4 を使用し、開発者マイルストーンリリースで入手可能になった MySQL Cluster NDB 7.4 に関する情報も含まれています。
NDB
ストレージエンジンのサポートは、オラクルによってビルドされた標準の MySQL Server 5.6 バイナリには含まれていません。代わりに、オラクルから提供される MySQL Cluster バイナリのユーザーは、サポートされるプラットフォームに対応する MySQL Cluster の最新のバイナリリリースにアップグレードするようにしてください。これらには、ほとんどの Linux 配布で機能するはずの RPM が含まれています。ソースからビルドする MySQL Cluster ユーザーは、MySQL Cluster 用に提供されるソースを使用するようにしてください。(ソースを入手できる場所については、このセクションで後述します。)
この章には、MySQL Cluster NDB 7.3 リリース (5.6.22-ndb-7.3.9 まで) および MySQL Cluster NDB 7.4 リリース (5.6.22-ndb-7.4.4 まで) に関する情報が含まれています。現在、MySQL Cluster NDB 7.3 リリースシリーズは一般提供 (GA) されており、MySQL Cluster 7.4 は開発者プレビューが入手可能です。MySQL Cluster NDB 7.2、MySQL Cluster NDB 7.1、および MySQL Cluster NDB 7.0 は以前の GA リリースです。これらは引き続きサポートされますが、新規の配備には MySQL Cluster NDB 7.3 を使用することをお勧めします。
サポートされるプラットフォーム MySQL Cluster は現在数多くのプラットフォームで利用可能であり、サポートされています。オペレーティングシステムバージョン、オペレーティングシステム配布、およびハードウェアプラットフォームの特定の組み合わせで利用可能な正確なサポートレベルについては、https://www.mysql.com/support/supportedplatforms/cluster.html を参照してください。
可用性 サポートされるプラットフォーム用の MySQL Cluster のバイナリおよびソースパッケージは、https://dev.mysql.com/downloads/cluster/ から入手できます。
MySQL Cluster のリリース番号
MySQL Cluster は、メインラインの MySQL Server 5.6 のリリースシリーズとはやや異なるリリースパターンに従っています。このマニュアルおよび MySQL のその他のドキュメントでは、「NDB」 で始まるバージョン番号を使用して、これらおよびそれ以降の MySQL Cluster リリースを識別します。このバージョン番号は、そのリリースで使用されている NDBCLUSTER
ストレージエンジンのバージョン番号であり、その MySQL Cluster リリースのベースになっている MySQL Server バージョンのバージョン番号ではありません。
MySQL Cluster ソフトウェアで使用されるバージョン文字列 MySQL Cluster のプログラムに表示されるバージョン文字列には、この書式が使用されます。
mysql-mysql_server_version-ndb-ndb_engine_version
mysql_server_version
は、その MySQL Cluster リリースのベースになっている MySQL Server のバージョンを表します。すべての MySQL Cluster NDB 7.3 リリースおよび現在の MySQL Cluster NDB 7.4 リリースでは、これは 「5.6」 です。ndb_engine_version
は、このリリースの MySQL Cluster ソフトウェアで使用されている NDB
ストレージエンジンのバージョンです。次に示すように、mysql クライアントでこの書式が使用されていることがわかります。
shell> mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.22-ndb-7.4.4 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SELECT VERSION()\G
*************************** 1. row ***************************
VERSION(): 5.6.22-ndb-7.4.4
1 row in set (0.00 sec)
このバージョン文字列は、ndb_mgm クライアントの SHOW
コマンドの出力にも表示されます。
ndb_mgm> SHOW
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @10.0.10.6 (5.6.22-ndb-7.4.4, Nodegroup: 0, *)
id=2 @10.0.10.8 (5.6.22-ndb-7.4.4, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=3 @10.0.10.2 (5.6.22-ndb-7.4.4)
[mysqld(API)] 2 node(s)
id=4 @10.0.10.10 (5.6.22-ndb-7.4.4)
id=5 (not connected, accepting connect from any host)
このバージョン文字列によって、その MySQL Cluster リリースの分岐元であるメインラインの MySQL のバージョンと、使用されている NDB
ストレージエンジンのバージョンを特定できます。たとえば、MySQL Cluster NDB 7.3.2 (MySQL Server 5.6 をベースとする最初の MySQL Cluster 本番リリース) の完全なバージョン文字列は mysql-5.6.11-ndb-7.3.2
です。これによって、次のことを特定できます。
バージョン文字列の 「
-ndb-
」 より前の部分はベースとなる MySQL Server のバージョンであるため、これは MySQL Cluster NDB 7.3.2 が MySQL 5.6.11 から派生し、MySQL 5.6 から MySQL 5.6.11 までのすべての機能強化とバグ修正を含んでいることを意味します。バージョン文字列の 「
-ndb-
」 よりあとの部分はNDB
(またはNDBCLUSTER
) ストレージエンジンのバージョン番号を表しているため、MySQL Cluster NDB 7.3.2 ではバージョン 7.3.2 のNDBCLUSTER
ストレージエンジンが使用されています。
新しい MySQL Cluster リリースは、NDB
ストレージエンジンの更新に従って番号付けされ、メインラインの MySQL Server リリースとは必ずしも 1 対 1 で対応しません。たとえば、MySQL Cluster NDB 7.3.2 は (前述のように) MySQL 5.6.11 をベースとしていますが、MySQL Cluster NDB 7.3.1 は MySQL 5.6.10 をベースとしていました (バージョン文字列: mysql-5.6.10-ndb-7.3.1
)。
標準の MySQL 5.6 リリースとの互換性
標準の MySQL スキーマおよびアプリケーションの多くが MySQL Cluster を使用しても機能しますが、MySQL Cluster を使用して未変更のアプリケーションやデータベーススキーマを実行すると、互換性がやや低下したり、パフォーマンスが最適でなくなったりする可能性があることも事実です (セクション18.1.6「MySQL Cluster の既知の制限」を参照してください)。これらの問題のほとんどは克服できますが、これは、スキーマ、クエリー、およびアプリケーションに変更を加える可能性を考慮せずに、既存の (たとえば、MyISAM
や InnoDB
を使用する) アプリケーションデータストアを NDB
ストレージエンジンを使用するものに切り替えることがほとんど不可能であることも意味します。さらに、MySQL Server と MySQL Cluster のコードベースは大幅に異なるため、標準の mysqld を MySQL Cluster に付属するバージョンの mysqld と簡単に取り替えて使用することはできません。
MySQL Cluster の開発ソースツリー MySQL Cluster の開発ツリーには、https://code.launchpad.net/~mysql/ からもアクセスできます。
https://code.launchpad.net/~mysql/ で管理されている MySQL Cluster の開発ソースは、GPL でライセンス付与されています。Bazaar を使った MySQL ソースの取得およびユーザー自身によるソースのビルドについては、セクション2.9.3「開発ソースツリーを使用して MySQL をインストールする」を参照してください。
MySQL Server 5.6 と同じように、MySQL Cluster NDB 7.3 および MySQL Cluster NDB 7.4 リリースは CMake を使用してビルドされています。
現在、MySQL Cluster NDB 7.2 および MySQL Cluster NDB 7.3 リリースは一般提供 (GA) されています。新規の配備には MySQL Cluster NDB 7.3 を使用することをお勧めします。MySQL Cluster NDB 7.1 は以前の GA リリースで、現在も保守中です。MySQL Cluster NDB 7.0 以前のバージョンは、アクティブな開発が終了しました。MySQL Cluster NDB 7.3 に追加された主な機能の概要については、セクション18.1.4「MySQL Cluster の開発履歴」を参照してください。
この章はまだ完成されたものではなく、その内容は MySQL Cluster の継続的な進化に応じて改訂されます。MySQL Cluster に関する追加情報については、http://www.mysql.com/products/cluster/ の MySQL Web サイトを参照してください。
追加のリソース MySQL Cluster の詳細は、次の場所を参照してください。
MySQL Cluster に関するよくある質問の回答については、セクションA.10「MySQL 5.6 FAQ: MySQL Cluster」を参照してください。
MySQL Cluster メーリングリスト: http://lists.mysql.com/cluster。
MySQL Cluster フォーラム: https://forums.mysql.com/list.php?25。
MySQL Cluster の多くのユーザーや開発者が MySQL Cluster に関する自身の経験をブログで公開し、PlanetMySQL でブログのフィードを利用できるようにしています。