ホームページ データベース mysql チュートリアル 分散データベース アーキテクチャを使用して高可用性 MySQL クラスターを構築する方法

分散データベース アーキテクチャを使用して高可用性 MySQL クラスターを構築する方法

Aug 02, 2023 pm 04:29 PM
建築 高可用性 分散データベース mysqlクラスター

分散データベース アーキテクチャを使用して高可用性 MySQL クラスターを構築する方法

インターネットの発展に伴い、データベースの高可用性とスケーラビリティに対する要求がますます高まっています。分散データベース アーキテクチャは、これらのニーズを解決する効果的な方法の 1 つとなっています。この記事では、分散データベース アーキテクチャを使用して高可用性 MySQL クラスターを構築する方法を紹介し、関連するコード例を示します。

  1. MySQL マスター/スレーブ レプリケーション クラスターの構築

MySQL マスター/スレーブ レプリケーションは、MySQL が提供する基本的な高可用性ソリューションです。マスター/スレーブ レプリケーションを通じて、データのバックアップと読み取り/書き込みの分離を実現できます。まず、マスター ライブラリと複数のスレーブ ライブラリを作成する必要があります。 3 台のサーバー、つまりマスター サーバー (192.168.1.100) と 2 台のスレーブ サーバー (192.168.1.101 および 192.168.1.102) があるとします。

メイン サーバーで次の設定を行います:

  1. my.cnf 設定ファイルに次の内容を追加します:

    server-id=1
    log-bin=mysql-bin
    ログイン後にコピー
  2. # # MySQL でレプリケーション用のユーザーを作成し、レプリケーション権限を付与します:

    GRANT REPLICATION SLAVE ON *.* TO 'replication'@'192.168.1.%' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    ログイン後にコピー

  3. 次のコマンドを実行してバイナリ ログの記録を開始します:

    FLUSH TABLES WITH READ LOCK;
    SHOW MASTER STATUS;
    ログイン後にコピー

    表示されたファイルと位置を記録します。これは後のステップで使用されます。

スレーブ サーバーで次を構成します:

  1. my.cnf 構成ファイルに次の内容を追加します:

    server-id=2
    ログイン後にコピー

  2. 次のコマンドを実行して、スレーブ サーバーをマスター サーバーに接続します。

    CHANGE MASTER TO 
     MASTER_HOST='192.168.1.100',
     MASTER_USER='replication',
     MASTER_PASSWORD='password',
     MASTER_LOG_FILE='[MASTER_LOG_FILE]',
     MASTER_LOG_POS=[MASTER_LOG_POS];
    START SLAVE;
    ログイン後にコピー

    [MASTER_LOG_FILE] と [MASTER_LOG_POS] を、マスター サーバーに記録されているファイルと位置に置き換えます。

上記の手順を繰り返して、すべてのスレーブ サーバーを構成します。

    MySQL 読み取り/書き込み分離クラスターの構築
マスター/スレーブ レプリケーション クラスターを構築した後、読み取り/書き込み分離を使用してデータベースのパフォーマンスをさらに向上させることができます。読み取り/書き込み分割では、読み取り操作がスレーブ サーバーに分散され、書き込み操作がマスター サーバーに送信されます。これにより、メイン サーバーの負荷が軽減され、読み取り操作の同時実行パフォーマンスが向上します。

まず、メイン サーバーで以下を構成します。

  1. my.cnf 構成ファイルに次の内容を追加します。

    log-slave-updates
    ログイン後にコピー

  2. 次のコマンドを実行してマスター サーバーを再起動します。

    SET @@GLOBAL.read_only=ON;
    ログイン後にコピー

スレーブ サーバーで次の設定を行います。 cnf 設定ファイル 次の内容を追加します。

read-only
ログイン後にコピー

  1. 次のコマンドを実行してスレーブ サーバーを再起動します。

    SET @@GLOBAL.read_only=OFF;
    ログイン後にコピー

  2. 次に、設定する必要があります。アプリケーション分離での読み取りと書き込み。 PHP を使用してアプリケーションを開発すると仮定し、簡略化されたサンプル コードを以下に示します。

    <?php
    $readConn = new mysqli('192.168.1.101', 'username', 'password', 'database');
    $writeConn = new mysqli('192.168.1.100', 'username', 'password', 'database');
    
    // 读操作
    $result = $readConn->query("SELECT * FROM table");
    
    // 写操作
    $writeConn->query("INSERT INTO table (column1, column2) VALUES ('value1', 'value2')");
    ?>
    ログイン後にコピー

  3. MySQL シャーディング クラスターの構築

MySQL シャーディングは、データの分散ストレージです。データベースのスケーラビリティを向上させるために複数のサーバーを使用します。シャードクラスターはデータを複数のシャードに分割し、各シャードにデータの一部を保存します。シャーディングを行う前に、まずアプリケーションでシャーディング ルールを定義する必要があります。
  1. 以下は、ユーザー ID に基づいてシャード ストレージのロジックを実装するサンプル コードです。
  2. <?php
    $user_id = 1;
    $shard_id = $user_id % 3;
    
    $conn = new mysqli('192.168.1.10' . $shard_id, 'username', 'password', 'database');
    
    $result = $conn->query("SELECT * FROM table WHERE user_id = " . $user_id);
    ?>
    ログイン後にコピー
実際にシャード クラスターを構築する場合は、複数のデータベース サーバーを作成し、対応する構成を行う必要があります。各データベース サーバーはデータの一部を保存し、アプリケーションのシャーディング ルールを通じてデータの読み取りと書き込みを行います。

概要

MySQL マスター/スレーブ レプリケーション クラスター、読み取り/書き込み分離クラスター、およびシャード クラスターを構築することで、可用性の高い MySQL クラスターを実現し、パフォーマンスとスケーラビリティを向上させることができます。データベース。実際のアプリケーションでは、データのバックアップとリカバリ、フェイルオーバーなどの問題も考慮する必要があり、対応する構成と最適化を実行する必要があります。上記のコード例と構成が、読者が分散データベース アーキテクチャを理解し、適用するのに役立つことを願っています。

以上が分散データベース アーキテクチャを使用して高可用性 MySQL クラスターを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Spring Data JPA のアーキテクチャと動作原理は何ですか? Spring Data JPA のアーキテクチャと動作原理は何ですか? Apr 17, 2024 pm 02:48 PM

SpringDataJPA は JPA アーキテクチャに基づいており、マッピング、ORM、トランザクション管理を通じてデータベースと対話します。そのリポジトリは CRUD 操作を提供し、派生クエリによりデータベース アクセスが簡素化されます。さらに、遅延読み込みを使用して必要な場合にのみデータを取得するため、パフォーマンスが向上します。

1.3ミリ秒には1.3ミリ秒かかります。清華社の最新オープンソース モバイル ニューラル ネットワーク アーキテクチャ RepViT 1.3ミリ秒には1.3ミリ秒かかります。清華社の最新オープンソース モバイル ニューラル ネットワーク アーキテクチャ RepViT Mar 11, 2024 pm 12:07 PM

論文のアドレス: https://arxiv.org/abs/2307.09283 コードのアドレス: https://github.com/THU-MIG/RepViTRepViT は、モバイル ViT アーキテクチャで優れたパフォーマンスを発揮し、大きな利点を示します。次に、この研究の貢献を検討します。記事では、主にモデルがグローバル表現を学習できるようにするマルチヘッド セルフ アテンション モジュール (MSHA) のおかげで、軽量 ViT は一般的に視覚タスクにおいて軽量 CNN よりも優れたパフォーマンスを発揮すると述べられています。ただし、軽量 ViT と軽量 CNN のアーキテクチャの違いは十分に研究されていません。この研究では、著者らは軽量の ViT を効果的なシステムに統合しました。

Golang フレームワーク アーキテクチャの学習曲線はどれくらい急ですか? Golang フレームワーク アーキテクチャの学習曲線はどれくらい急ですか? Jun 05, 2024 pm 06:59 PM

Go フレームワーク アーキテクチャの学習曲線は、Go 言語とバックエンド開発への慣れ、選択したフレームワークの複雑さ、つまり Go 言語の基本の十分な理解によって決まります。バックエンドの開発経験があると役立ちます。フレームワークの複雑さが異なると、学習曲線も異なります。

Llama3 レイヤー 1 を手動でティアリングする: llama3 を最初から実装する Llama3 レイヤー 1 を手動でティアリングする: llama3 を最初から実装する Jun 01, 2024 pm 05:45 PM

1. Llama3 のアーキテクチャ このシリーズの記事では、llama3 を最初から実装します。 Llama3 の全体的なアーキテクチャ: Llama3 のモデル パラメーターをイメージします: Llama3 モデルのこれらのパラメーターの実際の値を見てみましょう。図[1] コンテキストウィンドウ (context-window) LlaMa クラスをインスタンス化する際、変数 max_seq_len によって context-window が定義されます。クラスには他にもパラメータがありますが、このパラメータは変圧器モデルに最も直接関係しています。ここでの max_seq_len は 8K です。図[2] 語彙サイズと注意力L

高可用性 MySQL クラスターの構築: マスター/スレーブ レプリケーションとロード バランシングのベスト プラクティス ガイド 高可用性 MySQL クラスターの構築: マスター/スレーブ レプリケーションとロード バランシングのベスト プラクティス ガイド Sep 09, 2023 am 10:57 AM

高可用性 MySQL クラスターの構築: マスター/スレーブ レプリケーションとロード バランシングのベスト プラクティス ガイド 近年、インターネットの急速な発展に伴い、データベースはほとんどの Web アプリケーションにとって中核となるデータ ストレージおよび処理エンジンの 1 つになりました。このシナリオでは、高可用性と負荷分散がデータベース アーキテクチャ設計における重要な考慮事項になります。最も人気のあるオープンソース リレーショナル データベースの 1 つとして、MySQL のクラスター展開ソリューションは大きな注目を集めています。この記事では、MySQL のマスター/スレーブ レプリケーションと負荷分散を通じて高可用性データベース クラスターを実装する方法を紹介します。

レビュー!自動運転推進におけるベーシックモデルの重要な役割を総まとめ レビュー!自動運転推進におけるベーシックモデルの重要な役割を総まとめ Jun 11, 2024 pm 05:29 PM

上記および著者の個人的な理解: 最近、ディープラーニング技術の発展と進歩により、大規模な基盤モデル (Foundation Model) が自然言語処理とコンピューター ビジョンの分野で大きな成果を上げています。自動運転における基本モデルの応用にも大きな発展の可能性があり、シナリオの理解と推論を向上させることができます。豊富な言語と視覚データの事前トレーニングを通じて、基本モデルは自動運転シナリオのさまざまな要素を理解して解釈し、推論を実行して、運転の意思決定と計画のための言語とアクションのコマンドを提供します。基本モデルは、運転シナリオを理解してデータを拡張することで、日常的な運転やデータ収集では遭遇する可能性が低い、ロングテール分布におけるまれな実現可能な機能を提供できます。

Spring フレームワークのアーキテクチャと動作原理についての深い理解 Spring フレームワークのアーキテクチャと動作原理についての深い理解 Jan 24, 2024 am 09:41 AM

Spring フレームワークのアーキテクチャと動作原理の詳細な分析 はじめに: Spring は、Java エコシステムで最も人気のあるオープン ソース フレームワークの 1 つであり、強力なコンテナ管理および依存関係注入機能のセットを提供するだけでなく、トランザクション、管理、AOP、データ アクセスなど、他の多くの機能。この記事では、Spring フレームワークのアーキテクチャと動作原理を詳細に分析し、具体的なコード例を通じて関連する概念を説明します。 1. Spring フレームワークの中心概念 1.1IoC (Inversion of Control) Spring の核

高可用性分散システムを実装するための Golang ソリューション 高可用性分散システムを実装するための Golang ソリューション Jan 16, 2024 am 08:17 AM

Golang は、開発者が高可用性の分散システムを実装するのに役立つ、効率的で簡潔かつ安全なプログラミング言語です。この記事では、Golang が高可用性分散システムを実装する方法を検討し、いくつかの具体的なコード例を示します。分散システムの課題 分散システムは、複数の参加者が協力するシステムです。分散システムの参加者は、地理的位置、ネットワーク、組織構造などの複数の側面で分散された異なるノードである場合があります。分散システムを実装する場合、次のような多くの課題に対処する必要があります。

See all articles