10bet网址
MySQL 5.6リファレンスマニュアル
本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb


18.1.1 MySQL集群の主な概念

NDBCLUSTERNDBとも呼ばれる)は,高可用性とデ。

NDBCLUSTERストレージエンジンはさまざまなフェイルオーバーとロードバランシングのオプションを使って構成できますが,クラスタレベルのストレージエンジンから始めるのがもっとも簡単です。MySQL集群のNDBストレージエンジンには,クラスタ自体の内部にあるほかのデータにのみ依存する完全なデータセットが格納されます。

MySQL集群のクラスタ部分は,MySQL服务器とは別個に構成されます。MySQL集群では,クラスタの各部分がノードとみなされます。

注記

ノードという用語は,多くのコンテキストではコンピュータを示すために使用されますが,MySQL集群について説明するときはプロセスを意味します。1台のコンピュータで複数のノードを実行できます。1 つ以上のクラスタノードを実行しているコンピュータに対しては、クラスタホストという用語を使用します。

クラスタノドには3のタプがあります。最小限のMySQL集群構成には少なくとも3つのノードがあり,各ノードがこれらのタイプのそれぞれに対応します。

  • 管理ノド:このタイプのノードの役割は,構成データの提供,ノードの起動と停止,バックアップの実行などの機能を実行して,MySQL集群内のほかのノードを管理することです。このノードタイプはほかのノードの構成を管理するため,このタイプのノードは最初に(ほかのノードより先に)起動するようにしてください。米高梅ノドはndb_mgmdコマンドで起動します。

  • デタノド:このタこのタプのノドにはクラスタのデタが格納されます。デタノドの数は、レプリカの数にフラグメントの数を乗算した数です (セクション18.1.2“MySQL集群のノード,ノードグループ,レプリカ,およびパーティション”を参照してください)。たとえば,レプリカが2つあり,それぞれにフラグメントが2つある場合は,4つのデータノードが必要です。デタストレジとしては1,。したがって,レプリカを2つ以上にして,冗長性(およびその結果としての高可用性)を確保することをお勧めします。デタノドは,ndbdセクション18.4.1 "ndbdMySQL集群デタノドデモン”を参照してください)またはndbmtdセクション18.4.3 "ndbmtdMySQL集群デタノドデモン(マルチスレッド)”を参照してください)コマンドで起動します。

    通常,MySQL集群テーブルはディスクではなくメモリー内に完全に格納されます(MySQL集群をンメモリンメモリデタベスと呼ぶ理由はここにあります)。ただし,MySQL集群の一部のデタはディスクに格納できます。詳細は,セクション18.5.12 " MySQL集群ディスクデタテブル"を参照してください。

  • SQLノド:これは,クラスタデタにアクセスするノドです。MySQL集群の場合,SQLノドはNDBCLUSTERストレジエンジンを使用する従来のMySQL Serverです。SQLノドは,——ndbclusterおよび——ndb-connectstringオプション(これらにいては,この章の別の場所で説明します)を指定して起動されるmysqldプロセスです。場合によっては,追加のMySQL Serverオプションも指定できます。

    SQLノードは,実際にはMySQL集群データにアクセスするアプリケーションが指定された特別なタイプのAPIノドです。APIノドのもう1の例は,クラスタのバックアップをリストアするために使われるndb_restoreユティリティです。NDB APIを使用してこのようなアプリケーションを作成できます。NDB API の基本情報については、NDB API入门を参照してください。

重要

本番環境で3ノドセットアップの採用を期待するのは現実的ではありません。このような構成には冗長性がありません。MySQL集群の高可用性機能の恩恵を受けるには、複数のデータノードと SQL ノードを使用する必要があります。複数の管理ノードを使用することも、強くお勧めします。

MySQL集群のノード間,ノードグループ間,レプリカ間,およびパーティション間の関係の概要については,セクション18.1.2“MySQL集群のノード,ノードグループ,レプリカ,およびパーティション”を参照してください。

クラスタの構成には,クラスタ内の各ノ,ドの構成と,ノ,ド間の個々の通信リンクの設定が含まれます。MySQL集群は現在,データノードがプロセッサの性能,メモリースペース,および帯域幅に関して均一になるよう開発されています。さらに,一元管理の構成を提供するため,クラスタのすべての構成データが全体として1つの構成ファイルに格納されます。

管理サバは,クラスタ構成ファルとクラスタログを管理します。クラスタ内の各ノードは、管理サーバーから構成データを取得するため、管理サーバーがどこにあるかを特定する手段を必要とします。データノードで注目に値するイベントが発生すると、そのノードはこれらのイベントに関する情報を管理サーバーに転送し、管理サーバーはその情報をクラスタログに書き込みます。

さらに、任意の数のクラスタクラ。これらには,標準のMySQLクラMySQLアント,NDB専用のAPIプログラム,管理クラAPIアントなどが含まれます。次のいくかの段落で,これらにいて説明します。

標準のMySQLクラereplicationアントMySQL集群は、PHP、Perl、C、c++、Java、Python、Rubyなどで作成された既存のMySQLアプリケーションとともに使用できます。このようなクライアントアプリケーションは,スタンドアロンのMySQL服务器とやり取りする場合とほとんど同じ方法で,MySQL集群のSQLノードとして機能するMySQL服务器にSQLステートメントを送信し,そのMySQL服务器から応答を受信します。

MySQL集群をデータソースとして使用するMySQLクライアントは,複数のMySQL服务器に接続する機能を利用してロードバランシングとフェイルオーバーを実現するように変更できます。たとえば,Connector/J 5.0.6以降を使用するJavaクラesxiアントは,jdbc: mysql: loadbalance: / /URL(连接器/ J 5.1.7で改良済み)を使用してロードバランシングを透過的に実現できます。MySQL集群でのConnector/Jの使用方法の詳細は,使用连接器/J与NDB集群を参照してください。

新开发银行クラアントプログラムクラスタに接続されている可能性があるMySQL服务器をバイパスし,高レベルのc++ APIであるNDB APIを使用してNDBCLUSTERストレージエンジンから直接MySQL集群データにアクセスするクライアントプログラムを作成できます。このようなアプリケーションは,データへのSQLインタフェースを必要としない特殊な目的に役立ちます。詳細は,NDB APIを参照してください。

Java用MySQL集群连接器を使用して,MySQL集群用にNDB専用のJavaアプリケションを作成することもできます。このMySQL集群连接器には,NDBCLUSTERに直接接続するHibernateやJPAのようなオブジェクトリレーショナルマッピングの永続性フレームワークに似た高レベルのデータベースAPIであるClusterJが含まれているため,MySQL服务器へのアクセスは必要ありません。MySQL集群NDB 7.1以降では,ClusterJとJDBCの長所を生かしたMySQL集群用のOpenJPA実装であるClusterJPAもサポトされます。IDルックアップやその他の高速処理はClusterJを使用して(MySQL服务器をバイパスして)実行されますが,MySQLのクエリーオプティマイザによるメリットが得られるより複雑なクエリーは,JDBCを使用してMySQL服务器経由で送信されます。詳細は,Java和NDB集群およびClusterJ API和数据对象模型を参照してください。

MySQL集群NDB 7.3以降では,node . jsを使用してJavaScriptで作成されたアプリケーションもサポートされます。JavaScript用のMySQL连接器には,MySQL服务器だけでなく,NDBストレジエンジンに直接アクセスするためのアダプタも含まれています。この连接器を使用するアプリケーションは,通常イベント駆動型であり,ClusterJに採用されているものと多くの点で似ているドメインオブジェクトモデルを使用します。詳細は,MySQL NoSQL连接器用于JavaScriptを参照してください。

Memcachedバジョン1.6以降用のロド可能なndbmemcacheストレージエンジンとして実装されているMySQL集群用のMemcache APIを使用して,Memcacheプロトコルを使用してアクセスされる永続的なMySQL集群データストアを提供できます。

標準のmemcachedキャッシュエンジンは,MySQL集群NDB 7.3以降の配布に含まれています。各memcachedサーバーは,MySQL集群に格納されたデータに直接アクセスしますが,データをローカルでキャッシュして,このローカルキャッシュから要求を処理することもできます。

詳細は,NDB集群的memcache API(已弃用)を参照してください。

管理クラ邮箱アントこれらのクライアントは,管理サーバーに接続して,ノードの正常な起動と停止,メッセージトレースの開始と停止(デバッグバージョンのみ),ノードのバージョンとステータスの表示,バックアップの開始と停止などのコマンドを提供します。このタMySQL集群プのプログラムの例として,MySQL集群に付属のndb_mgm管理クラ邮箱アントがあります(セクション18.4.5 "ndb_mgmMySQL集群管理クラMySQL集群アントを参照してください)。このようなアプリケーションは,1つ以上のMySQL集群管理サーバーと直接通信するC言語APIである米高梅APIを使用して作成できます。詳細は,米高梅的APIを参照してください。

オラクルは,多数のノードを含むMySQL集群の再起動など,MySQL集群の多くの複雑な管理タスクを簡略化する高度なコマンド行インタフェースを備えたMySQL集群管理器も提供しています。MySQL Cluster ManagerクラMySQL集群管理器アントは,MySQL集群管理器に関連するmysqldサーバーのオプションや変数に加えて,ほとんどのノード構成パラメータの値を取得および設定するためのコマンドもサポートします。詳細は,MySQL™集群管理器1.3.6用户手册を参照してください。

ベントログMySQL集群はイベントをカテゴリ(起動,シャットダウン,エラー,チェックポイントなど),優先度,および重大度別に記録します。すべてのレポト可能ベントの完全なリストに,セクション18.5.6 " MySQL集群で生成されたト"を参照してください。ベントログには、ここに示す 2 つのタイプがあります。

  • クラスタログ:クラスタに関する必要なすべてのレポト可能。

  • ノドログ:個々のノドごとに保持される個別のログです。

注記

通常の状況では,クラスタログのみを保持して調べるだけで必要十分です。ノドログを調べる必要があるのは、アプリケーション開発やデバッグの場合だけです。

チェックポ邮箱ント一般的には,デタをディスクに保存したときにチェックポ邮箱ントに達したといいます。MySQL集群に限定した場合,チェックポイントはコミットされたトランザクションがディスクに格納された時点です。NDBストレージエンジンについては2つのタイプのチェックポイントがあり,その組み合わせによってクラスタのデータを一貫して確認し続けることができます。次のリストにそれらを示します。

  • ロカルチェックポント(lcp):これは,1のノントです。ただし,lcpはクラスタ内のすべてのノドである程度同時に発生します。LCPは,ノドのすべてのデタをディスクに保存する必要があるため,通常は数分間隔で発生します。正確な間隔は,ノードに格納されているデータの量,クラスタのアクティビティーのレベル,およびその他の要因によって異なります。

  • グロバルチェックポント(gcp): GCPはすべてのノードのトランザクションが同期し,重做ログがディスクにフラッシュされたときに,数秒間隔で発生します。

ローカルチェックポイントとグローバルチェックポイントによって作成されるファイルおよびディレクトリの詳細は,NDB集群数据节点文件系统目录を参照してください。


本手册下载
PDF (Ltr)- 26.8 mb
PDF (A4)- 26.8 mb