問題タブ [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.
mysql - galera クラスターからノードを削除するにはどうすればよいですか?
削除したいノードごとに 'wsrep_cluster_address='gcomm://' を設定する以外に、それを行うより良い方法はありますか?
mysql - Galera クラスターでのコミット後のノードのステータスは何ですか
Galera のドキュメントに記載されているように、クラスターは同期レプリケーションを使用します。しかし、もう少し深く見てみると、Galera は "仮想" 同期のみであるという記述があります。ノードでは、コミットは物理的なコミットではなく「証明書」を渡す必要があります。アプリケーションのアーキテクチャを計画するには、この部分を理解する必要があります。
だから私は今、次のケースのどれが当てはまるかを知りたいです:
スクリプト A はUPDATE
約 5 秒かかるトランザクションで実行し、COMMIT
どちらも数秒かかります。スクリプト A がすぐに終了すると、スクリプト B が続きます。たとえば、1 秒以内に HTTP-POST-Request の後に HTTP リダイレクトが行われます。スクリプト B は、スクリプト A とは異なるノードを照会します。
- スクリプト B は、が完了するまでに約 4 秒かかる
UPDATE
ため、 の前のステータスを取得します。UPDATE
- スクリプト B は、すべてのノードの状態が同期のときに が終了する
UPDATE
ため、 の後にステータスを取得します。COMMIT
あるとすれば、どれが正しいでしょうか?または、動作は構成に依存していますか?
grails - ELB経由でmariadb galeraクラスターを使用して、GrailsアプリケーションでMysql接続がタイムアウトする
最近、データベースを mysql から mariadb への 2 ノード クラスター データベースでのレプリケーションをサポートするように移行しました。データベースは別のドメインでホストされており、ELB を介してアクセスされます。アプリケーションをノードの 1 つにポイントすると、アプリケーションは正常に動作しますが、ELB URL を使用してデータベースに接続すると、ランダムに変動し、followint エラーが頻繁に表示されます
これが私のデータソース構成です:-
誰でも問題を特定し、可能な解決策を提供できますか
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 のような外部ロード バランサーをプラグインできることはわかっていますが、アーキテクチャをできるだけシンプルに保ちたいと考えています。
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 を実行する場合、このような状況に最適なアプローチは何でしょうか?
私たちの優先事項は次のとおりです(この順序で):
DDL の実行中および実行後に一貫性を維持します。
アプリケーション コードの変更を最小限に抑えます。
可能であれば、DDL を手動ではなく自動的に実行します。
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 を実現するための入力を提供してください。
mysql - ドナーからの完全同期後も PXC ノードが起動しない
停止した PXC 内のノードがあり、ドナーからの完全な同期の後、まだ起動しません。ドナーからのエラー ログ メッセージを以下に示します。
ドナー ノードで「show status like 'wsrep%'\G」を実行すると、wsrep_local_state_comment が DONOR/DESYNCED から SYNCED に変更されたことが示されました。これは、完全な同期が完了したことを示していると思います。しかし、ノードが起動しない理由がわかりません。
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
これはクラスター全体でのみ機能するようですが、単一のノードでは機能しませんか?