sql >> データベース >  >> RDS >> MariaDB

MariaDBサーバーとMariaDBクラスターの比較

    MariaDBサーバーとMariaDBクラスターは、MariaDBCorporationが提供するオープンソース製品です。 MariaDBサーバーは最も人気のあるリレーショナルデータベースの1つであり、元々はMySQLサーバーからフォークされていました。

    MariaDBクラスターは、Galera Cluster wsrepライブラリを使用してノード間でデータを同期する、MariaDBサーバーから構築された高可用性ソリューションです。 Galeraのレプリケーション方法は同期的(または「実質的に同期的」)であり、データがすべてのノードで同じになるようにします。

    MariaDBサーバーは、標準のレプリケーションを介して高可用性にすることもできます。レプリケーションは、非同期または準同期にすることができます。

    では、標準レプリケーションを使用するMariaDBサーバーは、Galeraクラスターを使用するMariaDBクラスターとどのように異なりますか?このブログでは、これら2つを比較します。 ClusterControlを使用して、いくつかの違いを説明します。

    MariaDBサーバーアーキテクチャ

    MariaDBサーバーのアーキテクチャは、次の図に示すように、シングル/スタンドアロンインスタンスまたはマスター/スレーブレプリケーションにすることができます。

    MariaDBサーバーのシングルインスタンスアーキテクチャは、1つのノードのみを表します。単一インスタンスを持つことの欠点は、データベースの単一障害点です。データベースがクラッシュして復旧しない場合は、フェイルオーバーメカニズムがないため、最後のバックアップからデータベースを回復するために復元を実行する必要があります。

    マスター/スレーブアーキテクチャは分散セットアップであり、マスターがライターとして機能し、スレーブがリーダーとして機能します。 MaxscaleやProxySQLなどのロードバランサーを使用すると、データベーストラフィックを分割して、書き込みがマスターに送信され、読み取りがスレーブに送信されるようにすることができます。レプリケーションを設定すると、データベースの単一障害点がなくなりますが、マスターに障害が発生した場合は自動的にフェイルオーバーできる必要があります。そうしないと、アプリケーションがデータベースに書き込むことができなくなり、影響を受けます。 ClusterControlは、MariaDBレプリケーションの自動フェイルオーバーとリカバリを提供するように構成できます。

    MariaDBクラスターアーキテクチャ

    MariaDBクラスターは、以下のアーキテクチャ図に示すように、MariaDBサーバーとGaleraレプリケーションで構成される高可用性ソリューションです:

    これは同期(「実質的に同期」)レプリケーションであり、すべてのノードが書き込み可能です。同期レプリケーションは、変更がガレラノードの1つで発生した場合、コミットされる前にクラスタ内の他のすべてのノードで利用可能になることを保証します。

    大きな違いは、アプリケーションの観点からはすべてのノードが同等であり、任意のデータベースインスタンスに書き込みトラフィックを送信できることです。また、ノードに障害が発生した場合にデータが失われないように、すべてのノードにまったく同じデータが必要です。

    MariaDBの導入

    MariaDBレプリケーションとMariaDBクラスターの両方を、ClusterControlを介してデプロイできます。 MariaDBサーバーをデプロイするときは、MySQLレプリケーションを選択することから始める必要がありますが、MariaDBクラスターの場合は、MySQLガレラを選択する必要があります。

    MariaDBサーバーの場合、単一ノードのMariaDBインスタンスをデプロイするか、マスター/スレーブおよび双方向レプリケーションをセットアップできます。レプリケーションセットアップのノードの最小数は2であり、1つのマスターと少なくとも1つのスレーブが必要です。マスターのIPアドレスを入力し、スレーブを追加するだけです(マスター/スレーブアーキテクチャが必要な場合)。双方向レプリケーションを設定する場合は、[2番目のマスターの追加]フィールドを使用できます。マスターマスターセットアップは双方向レプリケーションでプロビジョニングされますが、ノードの1つは読み取り専用として設定されます。その理由は、データのドリフトや「誤ったトランザクション」のリスクを最小限に抑えるためです。

    MariaDBクラスターの場合、ターゲットデータベースノード用に少なくとも3つのホストが必要です。インストールされます。これは、ネットワークパーティショニングまたは「スプリットブレイン」シンドロームを処理できる必要があるためです。 MySQLサーバー構成を定義するときにノードを追加するときにIPアドレスを入力する必要があります。

    データベースのベンダーとしてMariaDBを選択することを忘れないでください。データベースのバージョンは、ルートパスワードをインストールして入力します。デフォルト以外のdatadirを他のパスに変更することもできます。

    すべてを構成したら、クラスターをデプロイするだけです。データベース展開のための新しいジョブがトリガーされます。

    3番目のホストに2つのGaleraノードと1つのGaleraアービトレーター(別名garbd)を配置することも可能であることに注意してください。

    MariaDBサーバーとクラスターの監視

    データベースの監視はデータベースの重要な部分であり、データベースの状態の現在の状態を知ることができます。 MariaDBサーバーとMariaDBクラスターの監視の違いは、同期のためのガレラメトリックです。

    MariaDBサーバーでは、MySQLメトリクスを使用して現在のデータベースの状態を確認できます。; MySQLサーバー-一般、MySQLサーバー-キャッシュ、MySQL InnoDBメトリック。これは、以下に示すように、MariaDBクラスターにも表示されます。

    MySQL Server --Generalは、InnoDBバッファープールのヒット率、データベース接続、クエリ、ロック、およびデータベースメモリ使用率の現在の状態に関する情報を提供します。

    MySQL Server -キャッシュ、キャッシュで提供される多くの情報があります。主にデータベースのキャッシュに関連します。例:バッファプールサイズ、バッファプールインスタンス。テーブルキャッシュの使用状況、ヒット率、キャッシュのヒットとミスに関する情報もあります。スレッドキャッシュの使用状況とヒット率の情報も確認できます。

    MySQL Server -InnoDBメトリックは、InnoDBストレージに関連するメトリックを示します。例:バッファープールアクティビティ、InnoDB行操作、InnoDBログファイルサイズ、InnoDBデータの読み取り/書き込み。

    MariaDBサーバーでは、マスター/スレーブレプリケーションをセットアップする場合に1つあります。 MySQLレプリケーションのメトリックのサブカテゴリ-マスター。マスターバイナリログファイル、マスターバイナリログの位置、およびbinlogの作成頻度に関する情報があります。

    MariaDBサーバーにはデータベースに関連する多くの情報があり、これらはMariaDBクラスターでも利用できます。違いは、MariaDBクラスターには2つのダッシュボード(Galeraの概要とGaleraサーバーのグラフ)があることです。

    Galeraの概要には、Galeraレプリケーションの現在の状態に関連する情報が表示されます。クラスターサイズ、送信されたフロー制御、受信されたフロー制御、一時停止されたフロー制御などの情報があります。

    Galera Server Chartsには、クラスター名、クラスターステータス、サイズ、グローバルキャッシュサイズに関する情報があります。

    結論

    標準レプリケーションを備えたMariaDBサーバーとMariaDBクラスターは、データベースサービスの点では実際には異なる製品ではありませんが、可用性とスケーラビリティの要件に応じて異なる特性を備えています。 ClusterControlは、標準レプリケーションを備えたMariaDBサーバーとMariaDBクラスター展開の両方をサポートしているため、両方のセットアップを試して、考えをお知らせください。


    1. SQLデータベースエラー5243を修正するための完全ガイド

    2. C#で複数の要求に対して単一のSQL Server接続インスタンスを開いたままにする方法は?

    3. テーブル名を囲む引用符は正確に何をしますか?

    4. UnicodeEncodeError:'latin-1'コーデックは文字をエンコードできません