責任ガレラの文を削除します。
GROUP_ID = t1から削除2及びGROUP_ID = 3。
実行、クラスター損傷後、生きているマスターノードに加えて、他の2つのノードがすべて停止しています。
ビューガレラの制限は、主キーテーブルが存在しない、サポートしていないDELETE
操作を。しかし、主キーですが、知らない、主キーを削除しても削除されていないデータを削除するテーブルを表示することは理由にはなりません
公式の制限をガレラ:
- 現在のコピーはInnoDBストレージエンジンの下で働くことができます。他のエンジンは、テーブルにデータを書き込む(システム・テーブルのMySQLを含む。*)コピーされません。しかし
CREATE USER
、このような実際としてMySQLを変更します。* DDL文のテーブルがコピーされます。一方、実験的な公式サポートのMyISAMエンジンをガレラ、システム固有の変数を参照してくださいwsrep_replicate_myisam
。 - ロックは、次の機能をサポートしていません:
LOCK TABLES
、FLUSH TABLES {table lists} WITH READ LOCK
、GET_LOCK()
、RELEASE_LOCK()
、...
。トランザクションの適切な使用は、これらの制限を克服することができます。グローバル・ロック・オペレーションは、次のような、サポートされていますFLUSH TALBES WITH READ LOCK
。 - すべてのテーブルは主キーを持っている必要があります(複数列の主キーがサポートされています)。主キーの表は、サポートしていません
DELETE
操作を。一方、表の主キー、ラインの注文内容は、クラスタ内の異なるノードで異なる場合があります。 query log
これは、テーブルに記録することができません。クエリログを開くと、ファイルにログインする必要がありますlog_output=FILE
。- サポートされていません
XA transactions
。 - 物事の大きさ。ガレラは、明示的に物事の大きさを制限しません。キャッシュのための別個のメモリブロック内の書き込み動作は、大きなトランザクションの動作は、(例えば、
LOAD DATA
)大きな悪影響ノードのパフォーマンスに影響があります。これを避けるために、システム変数wsrep_max_ws_rows
とwsrep_max_ws_size
、トランザクションのサイズは1G 128,000のラインのデフォルトの取引限度数です。必要な場合は、これらの構成を増やすことができます。将来のバージョンでは、トランザクションの部分をサポートします。
その他の制限(アルファベット順):
- 使用している場合は
mysqldump
何らかのエラーがあれば、移行ステータスを行うために(のような:あなたは、データベースのアカウントを持っていない、またはアカウントのアクセス許可がありません)、サーバーの中に表示されるエラー・ログの中に発生するSQL SYNTAX
エラー。このエラーメッセージ、ログのちょうど素晴らしい方法にだまされてはいけません。疑似文は、実際に間違ったステートメントが含まれています。 - 本質的なサイズのトランザクションを使用しないでください。100,000行を挿入し、サーバが追加200-300Mbが必要になります。いくつかの不幸なシナリオでは50万行、100万行が3.5GBに必要な、1.5GBにする必要があります。
- ロックが緩い厳格なDDLが含まれていない場合。あなたはパラレルを開始するDML、DDL文で動作した場合、MySQLでの典型的な設定では、MySQLはロックメタデータを待ちますが、それは絶望的な実行でガレラます。限り、あなたも一つのノードのみ場合、クラスタモデルを設定しているとして、実行されます。この動作は、それが綿密な調査の結果していない、いくつかの副作用を引き起こす可能性があります。このような並列演算を避けるようにしてください。
- 自己感謝に依存しないでください。使用ガレラ機構が増大競合しない一意のシリアル番号を生成に基づいているため、各時間増分番号がブランクです。参照してください:
http://codership.blogspot.com/2009/02/managing-auto-increments-with-multi.html
- コマンドが失敗する可能性が
ER_UNKNOWN_COM_ERROR
生成する"WSREP has not yet prepared node for application use"
か、'Unknown command' in older versions
エラーメッセージ。クラスタノードとは、脳のいくつかの部分に分割されている場合。例えば、ネットワークに障害が発生した場合、ノードおよび他のノードが一時的に接触を失ったとき。同様に、状態変化が発生することがあります。このノードは、データの矛盾を防止するための措置をとります。これはチェックすることで、通常は一時的な状態であるwsrep_ready
モニタ値を。このようにして、実行show
してset
コマンド。 - 簡単に断線が発生したときに彼のステータスが変更された場合、健康のクラスタの一部ではまだアクセスすることができ、再同期を開始します。同時に、故障のクラスタの一部では、すべてのクライアント接続が切断されます。これは、最終的にエラーが起こったのかわからない、特にクライアントがアイドル状態であり、クライアントのために特に驚くべきことです。このノード上のデータ・ストリームが存在する場合、この接続に接続され孤立したノードでその回復を覚えておく必要があり、それが同期するのに長い時間がかかります、そして、それは健全なノードクラスタを言うと同期する準備ができているだろうその後、ちょうどノードを追加する(同期化されていない)彼女は今追加したと言うでしょう。この接続は、取得します
unknown command
返事を。最終的には同期されます。 - 慎重にチェックし始める前に
binlog_format
設定があるかどうかROW
、この値は、実行時に変更することができます。だから、実行時にbinlog_formatの値を変更しないでください。これだけではありません失敗し、他のすべてのノードがクラッシュをできるようにコピーしてしまいます。 - 使用している場合は
rsync
、ノードが状態遷移する前にクラッシュしたときに、移行ステータスを行うには、rsyncのプロセスは、ハングアップしないポートを占有し、ノードの再起動を停止しないことがあります。この問題は、サーバーのエラーログ「ポート使用中」コマンドのパフォーマンスで発生します。孤児のrsyncプロセスを検索し、その後、手動で殺します。 - パフォーマンス:設計の観点から、クラスタのパフォーマンスが最も遅いパフォーマンスのノードよりも高くありません。同じマシン、または単一ノードクラスタ性能に優れたスタンドアロンのデータベースのパフォーマンスではありません。場合は特に、大規模なトランザクション処理。
- これは、Windowsをサポートしていません。
- コピーフィルタ:クラスタ内ガレラ、あなたはコピーするフィルタを使用するように注意する必要があります。基本原理として、更新操作DML InnoDBはこれらのレプリカフィルタに加えてガレラクラスタを尊重していません:
binlog-do-db
、binlog-ignore-db
、replicate-wild-do-db
、replicate-wild-ignore-db
。しかしreplicate-do-db
、replicate-ignore-db
フィルタは、DDLのInnoDBとMyISAMストレージエンジンやDML文がサポートされています。それは、データの複製や割り込みの違いをもたらすことができるので、他の言葉では、フィルタは、介護コピーして使用する必要があります。 FLUSH PRIVILEGES
それはコピーされません。- 5.5.40-ガレラおよび10.0.14・ガレラのバージョンの前に、オフにする必要があり
query cache
機能を。 - ガレラノードに設けられた非同期複製がスレーブである場合、ノードから(スレーブ並列スレッド> 1)同時複製をサポートしていません。
オリジナル住所:https://mariadb.com/kb/en/mariadb/mariadb-galera-cluster-known-limitations/
参照
mariadbのガレラクラスタ上のご注意(翻訳) - 永福さんのブログ - OSCHINA https://my.oschina.net/foreverich/blog/743851