MySQLのお勉強!

MySQL TOP

第 18 章 MySQL Cluster NDB 7.3 および MySQL Cluster NDB 7.4

目次

18.1 MySQL Cluster の概要
18.1.1 MySQL Cluster の主な概念
18.1.2 MySQL Cluster のノード、ノードグループ、レプリカ、およびパーティション
18.1.3 MySQL Cluster のハードウェア、ソフトウェア、およびネットワーク要件
18.1.4 MySQL Cluster の開発履歴
18.1.5 InnoDB を使用した MySQL Server と MySQL Cluster の比較
18.1.6 MySQL Cluster の既知の制限
18.2 MySQL Cluster のインストール
18.2.1 MySQL Cluster Auto-Installer
18.2.2 Linux での MySQL Cluster のインストール
18.2.3 Windows での MySQL Cluster のインストール
18.2.4 MySQL Cluster の初期構成
18.2.5 MySQL Cluster の初期起動
18.2.6 テーブルとデータを含む MySQL Cluster の例
18.2.7 MySQL Cluster の安全なシャットダウンと再起動
18.2.8 MySQL Cluster NDB 7.3 のアップグレードとダウングレード
18.3 MySQL Cluster の構成
18.3.1 MySQL Cluster の簡易テストセットアップ
18.3.2 MySQL Cluster の構成ファイル
18.3.3 MySQL Cluster 構成パラメータの概要
18.3.4 MySQL Cluster 用の MySQL Server オプションおよび変数
18.3.5 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 の既知の制限」を参照してください)。これらの問題のほとんどは克服できますが、これは、スキーマ、クエリー、およびアプリケーションに変更を加える可能性を考慮せずに、既存の (たとえば、MyISAMInnoDB を使用する) アプリケーションデータストアを 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 の詳細は、次の場所を参照してください。