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

ClusterControlを使用した高可用性データベースとクラスターのデプロイ

    製品ClusterControlに関して、特にインストールと実行がいかに簡単であるかについて、いくつかの素晴らしいフィードバックを受け取ります。新しいソフトウェアをインストールすることは1つのことですが、それを適切に使用することは別のことです。

    新しいソフトウェアをテストするのを待ちきれないことは珍しくなく、始める前にドキュメントを読むよりも、新しいエキサイティングなアプリケーションをいじくり回したほうがよいでしょう。重要な機能を見逃したり、使用方法を誤解したりする可能性があるため、これは少し残念です。

    このブログシリーズでは、ClusterControl for MySQL、MongoDB、およびPostgreSQLのすべての基本操作と、セットアップを最大限に活用する方法の例について説明します。時間を節約するために、さまざまなトピックについて深く掘り下げることができます。

    このシリーズで取り上げるトピックは次のとおりです。

    • 最初のクラスターの展開
    • 既存のインフラストラクチャを追加する
    • パフォーマンスとヘルスの監視
    • コンポーネントをHAにする
    • ワークフロー管理
    • データの保護
    • データの保護
    • 詳細なユースケース

    今日の投稿では、ClusterControlのインストールと最初のクラスターのデプロイについて説明します。

    準備

    このシリーズでは、Vagrantボックスのセットを使用しますが、必要に応じて独自のインフラストラクチャを使用できます。 Vagrantでテストしたい場合は、次のGithubリポジトリからセットアップ例を利用できるようにしました:https://github.com/severalnines/vagrant

    リポジトリを自分のマシンに複製します:

    $ git clone [email protected]:severalnines/vagrant.git

    浮浪者ノードのトポロジーは次のとおりです。

    • vm1:clustercontrol
    • vm2:データベースノード1
    • vm3:データベースノード2
    • vm4:データベースノード3

    次の行を変更することで、必要に応じてノードを簡単に追加できます。

    4.times do |n|

    Vagrantファイルは、最初のノードにClusterControlを自動的にインストールし、ClusterControlのユーザーインターフェイスをVagrantを実行するホストのポート8080に転送するように構成されています。したがって、ホストのIPアドレスが192.168.1.10の場合、ClusterControl UIは次の場所にあります:http://192.168.1.10:8080 / clustercontrol /

    ClusterControlのインストール

    Vagrantファイルを使用することを選択した場合は、これをスキップして、自動インストールを取得できます。ただし、ClusterControlのインストールは簡単で、5分もかかりません。

    パッケージのインストールでは、ClusterControlノードで次の3つのコマンドを発行して、インストールするだけです。

    $ wget http://www.severalnines.com/downloads/cmon/install-cc
    $ chmod +x install-cc
    $ ./install-cc   # as root or sudo user

    それだけです。これより簡単になることはできません。インストールスクリプトで問題が発生していない場合は、ClusterControlをインストールして実行する必要があります。これで、次のURLでClusterControlにログインできます:http://192.168.1.210/clustercontrol

    管理者アカウントを作成してログインすると、最初のクラスターを追加するように求められます。

    ガレラクラスターを展開する

    新しいデータベースサーバー/クラスターを作成するか、既存の(つまり、既にデプロイされている)サーバーまたはクラスターをインポートするように求められます。

    Galeraクラスターをデプロイします。入力する必要のあるセクションが2つあります。最初のタブはSSHと一般設定に関連しています:

    ClusterControlがGaleraノードをインストールできるようにするために、VagrantブートストラップスクリプトによってSSHアクセスが許可されたrootユーザーを使用します。独自のインフラストラクチャを使用することを選択した場合は、ClusterControlが制御するノードに対してパスワードなしのSSHを実行できるユーザーをここに入力する必要があります。事前に、ClusterControlからすべてのデータベースノードへのパスワードなしのSSHを自分で設定する必要があることに注意してください。

    また、AppArmor/SELinuxを必ず無効にしてください。理由はこちらをご覧ください。

    次に、第2段階に進み、データベース関連の情報とターゲットホストを指定します。

    ClusterControlは、ノードを追加するときにEnterキーを押すたびに、すぐにいくつかの健全性チェックを実行します。定義された各ノードにカーソルを合わせると、ホストの概要が表示されます。すべてが緑色になったら、ClusterControlがすべてのノードに接続できることを意味します。[デプロイ]をクリックできます。新しいクラスターを構築するためのジョブが生成されます。良い点は、アクティビティ->ジョブ->クラスターの作成->完全なジョブの詳細をクリックすることで、このジョブの進行状況を追跡できることです。 :

    ジョブが終了すると、最初のクラスターが作成されます。クラスタの概要は次のようになります。

    [ノード]タブでは、クラスターで通常実行するすべての操作を実行できます。クエリモニターは、実行中のクエリと上位のクエリの両方の概要を示します。 [パフォーマンス]タブは、クラスターのパフォーマンスを注意深く監視するのに役立ち、データの傾向に積極的に対応するのに役立つアドバイザーも備えています。 [バックアップ]タブを使用すると、バックアップを簡単にスケジュールして、ローカルストレージまたはクラウドストレージに保存できます。 [管理]タブを使用すると、クラスターを拡張したり、ロードバランサーを介してアプリケーションでクラスターを高可用性にすることができます。

    このすべての機能については、このシリーズの後半のブログ投稿で取り上げます。

    MySQLレプリケーションクラスターをデプロイする

    MySQLレプリケーションセットアップのデプロイは、レプリケーショントポロジを定義できるデプロイメントダイアログに追加のタブがあることを除いて、Galeraデータベースデプロイメントに似ています。

    標準のマスタースレーブレプリケーションとマスターマスターレプリケーションを設定できます。後者の場合、一度に書き込み可能なマスターは1つだけです。マスターマスターレプリケーションには、Galeraの場合のように、競合の解決と保証されたデータの一貫性が付属していないことに注意してください。この設定は注意して使用するか、Galeraクラスターを調べてください。すべてが緑色になり、[デプロイ]をクリックすると、新しいクラスターを構築するためのジョブが生成されます。

    繰り返しになりますが、展開の進行状況は[アクティビティ]->[ジョブ]で確認できます。

    スレーブをスケールアウト(コピーの読み取り)するには、クラスターリストの[ノードの追加]オプションを使用するだけです。

    スレーブノードを追加した後、ClusterControlは、Xtrabackupを使用してマスターから、またはそのクラスターの既存のPITR互換バックアップからのデータのコピーをスレーブにプロビジョニングします。

    PostgreSQLレプリケーションをデプロイする

    ClusterControlは、PostgreSQLバージョン9.x以降のデプロイメントをサポートします。手順はMySQLレプリケーションの配置と似ており、配置手順の最後に、ノードを追加するときにデータベーストポロジを定義できます。

    MySQLレプリケーションと同様に、デプロイメントが完了したら、レプリケーションスレーブをクラスターに追加することでスケールアウトできます。手順は、マスターを選択し、新しいスレーブのFQDNを入力するだけです。

    次に、ClusterControlは、pg_basebackupを使用して、選択したマスターから必要なデータステージングを実行し、レプリケーションユーザーを構成して、ストリーミングレプリケーションを有効にします。 PostgreSQLクラスターの概要から、セットアップに関する洞察が得られます。

    GaleraおよびMySQLクラスターの概要と同様に、ここで必要なすべてのタブと機能を見つけることができます。クエリモニター、パフォーマンス、バックアップタブはすべて、必要な操作を実行できるようにします。

    MongoDBレプリカセットをデプロイする

    新しいMongoDBレプリカセットのデプロイは、他のクラスターと同様です。 [データベースクラスターのデプロイ]ダイアログから、MongoDB ReplicatSetを選択し、優先データベースオプションを定義して、データベースノードを追加します。

    PerconaからMongoDB用のPerconaServerをインストールするか、MongoDB、Inc(以前の10gen)からMongoDBServerをインストールするかを選択できます。 ClusterControlはデフォルトで認証が有効になっているMongoDBクラスターをデプロイするため、MongoDB管理者ユーザーとパスワードも指定する必要があります。

    クラスタをインストールした後、クラスタの概要から同じドロップダウンの下にある[ノードの追加]メニューを使用して、レプリカセットにスレーブノードまたはアービターノードを追加できます。

    スレーブまたはアービターをレプリカセットに追加すると、ジョブが生成されます。このジョブが完了すると、MongoDBがそれをクラスターに追加し、クラスターの概要に表示されるようになるまでに少し時間がかかります。

    最終的な考え

    これらの3つの例を使用して、わずか数分でさまざまなクラスターを最初からセットアップすることがいかに簡単であるかを示しました。このVagrantセットアップを使用する利点は、この環境をスポーンするのと同じくらい簡単に、それを削除してから再度スポーンできることです。作業環境をどれだけ迅速にセットアップできるかを示して、同僚に感銘を与えましょう。

    もちろん、既存のホストとすでにデプロイされているクラスターをClusterControlに追加することも同様に興味深いことです。これについては、次回説明します。


    1. MySQLは自動的に文字列を数値にキャスト/変換しますか?

    2. SQL Serverエラー111:「…クエリバッチの最初のステートメントである必要があります」

    3. SQLServerでのINSERTまたはUPDATEのソリューション

    4. DAOでのMicrosoftSQLストアドプロシージャの大きなパラメータの使用