問題タブ [galera]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
14163 参照

mysql - galera クラスターからノードを削除するにはどうすればよいですか?

削除したいノードごとに 'wsrep_cluster_address='gcomm://' を設定する以外に、それを行うより良い方法はありますか?

0 投票する
1 に答える
1082 参照

mysql - Galera クラスターでのコミット後のノードのステータスは何ですか

Galera のドキュメントに記載されているように、クラスターは同期レプリケーションを使用します。しかし、もう少し深く見てみると、Galera は "仮想" 同期のみであるという記述があります。ノードでは、コミットは物理的なコミットではなく「証明書」を渡す必要があります。アプリケーションのアーキテクチャを計画するには、この部分を理解する必要があります。

だから私は今、次のケースのどれが当てはまるかを知りたいです:

スクリプト A はUPDATE約 5 秒かかるトランザクションで実行し、COMMITどちらも数秒かかります。スクリプト A がすぐに終了すると、スクリプト B が続きます。たとえば、1 秒以内に HTTP-POST-Request の後に HTTP リダイレクトが行われます。スクリプト B は、スクリプト A とは異なるノードを照会します。

  1. スクリプト B は、が完了するまでに約 4 秒かかるUPDATEため、 の前のステータスを取得します。UPDATE
  2. スクリプト B は、すべてのノードの状態が同期のときに が終了するUPDATEため、 の後にステータスを取得します。COMMIT

あるとすれば、どれが正しいでしょうか?または、動作は構成に依存していますか?

0 投票する
1 に答える
657 参照

grails - ELB経由でmariadb galeraクラスターを使用して、GrailsアプリケーションでMysql接続がタイムアウトする

最近、データベースを mysql から mariadb への 2 ノード クラスター データベースでのレプリケーションをサポートするように移行しました。データベースは別のドメインでホストされており、ELB を介してアクセスされます。アプリケーションをノードの 1 つにポイントすると、アプリケーションは正常に動作しますが、ELB URL を使用してデータベースに接続すると、ランダムに変動し、followint エラーが頻繁に表示されます

これが私のデータソース構成です:-

誰でも問題を特定し、可能な解決策を提供できますか

0 投票する
1 に答える
522 参照

mysql - JBoss AS 5 から Wildfly 8 へのクラスター化されたデータソースの移行

Jboss 5 から Wildfly 8.2 に移行する予定です。データベース側には、MariaDB 10 を備えた 3 ノードの Galera クラスターがあります。

Jboss 5 では、ds.xml ファイルに次の設定がありました。

Jboss 5 ではすべてがうまく機能しましたが、Wildfly 8.2 では同じことを達成できません。管理コンソールから、クラスター化されていないデータソースを問題なく追加でき、機能しました。URL の例:jdbc:mysql://ip-node1/DBname

しかし、上記のようにクラスター化された URL を追加しようとすると、次のエラーが発生します。

Wildfly をクラスター化されたデータソースに接続するにはどうすればよいですか? HAProxy のような外部ロード バランサーをプラグインできることはわかっていますが、アーキテクチャをできるだけシンプルに保ちたいと考えています。

0 投票する
1 に答える
543 参照

mariadb - Galera クラスターで DDL クエリを自動的に実行する際の問題

MariaDB 10 を使用する WildFly 8.2 で実行される Java Web アプリケーションがあります。現在、単一の MariaDB サーバーから HAProxy 1.5 をロード バランサーとして使用する 3 ノードの Galera/MariaDB クラスターへの移行を評価しています。

クラスターに対して DML コマンドのみが発行された場合、すべて正常に機能します。しかし、Java アプリが CREATE TABLE や ALTER TABLE などの DDL コマンドを実行する場合があります。たとえば、Web インターフェイスでは、新しい顧客を作成できます。そのような顧客は、データを格納するために 50 個の新しいテーブルを取得します。

ID 123 の顧客を追加すると、アプリケーションは次の DDL および DML クエリの組み合わせを実行します。

wsrep_osu_method=toi (デフォルト) があります。

そのような顧客を作成した後、新しく作成されたテーブルを確認すると、ノード間の不整合が何度も見られます。テーブル自体は適切に複製されましたが、その内容は複製されませんでした。一部のノードの一部の新しいテーブルには、他のノードに複製されていないデータが含まれています。

いくつかのテストを行い、HA プロキシを回避して、Java アプリを単一のノードにのみ直接接続しました。同じ矛盾がありましたが、違いは、アプリが直接接続されているノードだけがレプリケートされていないデータを保持していたことです。前のテストでは、レプリケートされていないデータがすべてのノードに分散していました。

この振る舞いがわかりません。ログに関連するエラーはありません。

このような DDL クエリの実行は、よくあることです。もちろん、手動ではなく自動で行いたいと考えています。アプリが DML と同様に DDL を実行する場合、このような状況に最適なアプローチは何でしょうか?

私たちの優先事項は次のとおりです(この順序で):

  1. DDL の実行中および実行後に一貫性を維持します。

  2. アプリケーション コードの変更を最小限に抑えます。

  3. 可能であれば、DDL を手動ではなく自動的に実行します。

0 投票する
1 に答える
1375 参照

mariadb - MariaDB Galera クラスターの DR セットアップ

3 つのノードを持つ 2 つの MariaDB Galera クラスターがあります。

クラスタ 1 : MDB-01、MDB-02、MDB-03 クラスタ 2 : MDBDR-01、MDBDR-02、MDBDR-03

これら 2 つのクラスターは、2 つの地理的リージョンにある 2 つの異なるデータ センターにあります。

クラスター 1 は PRODUCTION クラスターであり、クラスター 2 は DR クラスターです。

GTID を使用した非同期レプリケーションは、リンクの指定された構成に従って MDB-01 から MDBDR-01 の間にセットアップされています: http://www.severalnines.com/blog/deploy-asynchronous-replication-slave-mariadb-galera-cluster-gtid -clustercontrol (リンクは、MariaDB Galera クラスターからスタンドアロンの MariaDB インスタンスへの非同期レプリケーションです。ただし、MariaDB Galera クラスターから MariaDB Galera クラスターへの非同期レプリケーション用に同じ構成をセットアップしました)

以下のコマンドで、現在のスレーブ MDBDR-01 => MDB-01 から MDBDR-01 => MDB-02 に切り替えることができます。

マスターを master_host='MDB-02' に変更

ただし、MDBDR-01 がダウンしている場合に、MDBDR-02 => MDB-01 を指す方法に挑戦しています。

ポインティング MDBDR-02 => MDB-01 または MDBDR-03 => MDB-01 を実現するための入力を提供してください。

0 投票する
0 に答える
264 参照

mysql - ドナーからの完全同期後も PXC ノードが起動しない

停止した PXC 内のノードがあり、ドナーからの完全な同期の後、まだ起動しません。ドナーからのエラー ログ メッセージを以下に示します。

ドナー ノードで「show status like 'wsrep%'\G」を実行すると、wsrep_local_state_comment が DONOR/DESYNCED から SYNCED に変更されたことが示されました。これは、完全な同期が完了したことを示していると思います。しかし、ノードが起動しない理由がわかりません。

0 投票する
1 に答える
836 参照

cluster-computing - MariaDBは特定のノードのデータベースを無視します

mariaDB クラスターの場合、次の構造を構築しようとしています。

私は3つのノードを持っています。ノード 1 はデータベース「カタログ」をノード 2 に複製し、データベース「アドレス」を無視します。
ノード 2 には「カタログ」と「アドレス」の両方があります。ノード 3 は「アドレス」のみを複製します。

特定のデータベースを無視するようにノードに指示することは可能ですか? 私が見つけたのはこのコマンドだけでした: https://mariadb.com/kb/en/mariadb/replication-and-binary-log-server-system-variables/#replicate_ignore_db

これはクラスター全体でのみ機能するようですが、単一のノードでは機能しませんか?