目次
1. マスター/スレーブのレプリケーションと読み取りと書き込みの分離
1.2 読み取りと書き込みの分離 (ビジネス レベル)
2. 実装
ホームページ データベース mysql チュートリアル MySQL の詳細な分析によるマスター/スレーブ レプリケーション アーキテクチャの迅速な構築

MySQL の詳細な分析によるマスター/スレーブ レプリケーション アーキテクチャの迅速な構築

Mar 11, 2022 pm 06:01 PM
mysql

この記事では、mysql に関する関連知識を提供します。主に、マスター/スレーブ レプリケーション アーキテクチャを迅速に構築する方法に関する関連問題を紹介します。MySQL データベースが提供するマスター/スレーブ レプリケーション機能は、簡単に構築できます。データを複数のサーバーに自動バックアップすることでデータベースを拡張し、データのセキュリティを大幅に強化することを実現しましたので、皆様のお役に立てれば幸いです。

MySQL の詳細な分析によるマスター/スレーブ レプリケーション アーキテクチャの迅速な構築

推奨学習: mysql チュートリアル

1. マスター/スレーブのレプリケーションと読み取りと書き込みの分離

1.1 マスター/スレーブ レプリケーション (データ レベル)

マスター/スレーブ レプリケーションは、読み取り/書き込み分離の前提条件です。 MySQLデータベースが提供するマスタスレーブレプリケーション機能は、複数サーバ上のデータの自動バックアップを容易に実現し、データベースの拡張を実現し、データのセキュリティを大幅に強化します。同時に、マスター/スレーブ レプリケーションを実装した後、読み取りと書き込みの分離を実装することで、データベースの負荷パフォーマンスをさらに向上させることができます。

図に示すのは、マスター/スレーブ レプリケーションの一般的な実装プロセスです。

MySQL の詳細な分析によるマスター/スレーブ レプリケーション アーキテクチャの迅速な構築

1.2 読み取りと書き込みの分離 (ビジネス レベル)

読み取りと書き込みの分離はマスター/スレーブ レプリケーションに基づいており、データベースのマスター/スレーブ レプリケーションのみが行われます。読み書きの分離をさらに実現するために。読み取りと書き込みの分離は、すべてのクエリ操作がサブデータベースで実行され、すべての書き込み操作がメイン データベースで実行されると理解できます。データがメイン データベースに書き込まれた後、データはマスター/スレーブ レプリケーションを通じてサブデータベースにバックアップされ、データの整合性が確保されます。

MySQL の詳細な分析によるマスター/スレーブ レプリケーション アーキテクチャの迅速な構築

2. 実装

まずマスター/スレーブ レプリケーションの原理を理解しましょう:

  1. まず、次のデータになります。マスター データベース 変更が発生すると、変更レコードが binlog ログに書き込まれます。
  2. スレーブ データベースは、一定期間内にマスター データベースの binlog ログを検出し、変更が発生した場合はマスター ログ ファイルの情報を要求します。

その原理を理解した後、マスター/スレーブ レプリケーションを有効にするための前提条件を知る必要があります。
  1. マスター ノードは binlog ログを有効にする必要があります (mysql は有効にします)。デフォルトでは binlog が有効になっていません)
  2. スレーブ ノード、binlog ファイル、および同期オフセットを指定します
    • マスター ノードの IP を指定します
    • マスターノードを実行するためのユーザー名とパスワード

これで大まかには理解できたので、これを使ってデータベースモデルを構築しましょう。マスターと 1 つのスレーブを使用して、データベースのマスター/スレーブ設定の構成プロセスをデモンストレーションします。

CentOSサーバーを2台用意し、事前にmysql5.7をインストールしておきます。

2.1 マスター サーバーの binlog ログを開きます。

mysql の my.cnf ファイルを編集します: (インストール方法が異なり、ファイルの場所も異なる場合があります。特定の問題は次のセクションで分析されます)詳細~)

vim /etc/my.cnf
ログイン後にコピー
ログイン後にコピー
元のファイルには次の内容が含まれていないため、自分で追加する必要があります。私の側では、myslave データベース内のデータのマスター/スレーブ レプリケーションを実行します。

server-id = 1 #server-id 服务器唯一标识log_bin = master-bin 
#log_bin 启动MySQL二进制日志log_bin_index = master-bin.index
binlog_do_db = myslave #binlog_do_db 指定记录二进制日志的数据库 这两个指定可以不添加binlog_ignore_db = mysql 
#binlog_ignore_db 指定不记录二进制日志的数据库
ログイン後にコピー
次のコマンドを使用して、mysql を再起動します。 Linux のバージョンが異なれば、コマンドも異なる場合があります。

service mysql restart
ログイン後にコピー
ログイン後にコピー
正常に起動した後、次のステートメントを通じて bin-log のオープン ステータスを確認できます: (Navicat で直接クエリするだけです)

show variables like 'log_bin%';
ログイン後にコピー
MySQL の詳細な分析によるマスター/スレーブ レプリケーション アーキテクチャの迅速な構築

2.2リモート アクセス

#允许远程用户访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.221.131' IDENTIFIED BY '123456' WITH GRANT OPTION;
#刷新
FLUSH PRIVILEGES;
ログイン後にコピー

2.3 スレーブ ノードの構成
  • まずマスター ノードで次のコマンドを実行して、マスター ノードのステータスを把握し、次の図に示す情報を取得します。 。

show master status;
ログイン後にコピー
MySQL の詳細な分析によるマスター/スレーブ レプリケーション アーキテクチャの迅速な構築
  • 関連構成の変更

    vim /etc/my.cnf
    ログイン後にコピー
    ログイン後にコピー
    関連情報の追加:

    server-id = 2  #唯一标识relay-log = slave-relay-bin
    relay-log-index = slave-relay-bin.index
    replicate-do-db=myslave #备份数据库 对应master中设置的,可以不设置replicate-ignore-db=mysql #忽略数据库
    ログイン後にコピー
    必ず再起動してください。 service;
service mysql restart
ログイン後にコピー
ログイン後にコピー
  • スレーブノードで以下のコマンドを実行します。

    change master to master_host='192.168.221.128',master_user='root',master_password='123456',master_log_file='binlog.000009',master_log_pos=2339;
    ログイン後にコピー
    master_log_file は最初のステップで取得したファイル名です;

    master_log_pos は最初のステップで取得した同期位置です;
  • スレーブ同期の開始
  • start slave;
    ログイン後にコピー
  • 同期状態を確認すると、下図のような状態になり、マスタとスレーブの同期が正常に確立されています。テーブル テストはメイン データベースで作成できます。

    show slave status\G
    ログイン後にコピー
    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衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

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

    SublimeText3 中国語版

    SublimeText3 中国語版

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

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

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

    MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

    MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

    MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

    データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

    Apacheのデータベースに接続する方法 Apacheのデータベースに接続する方法 Apr 13, 2025 pm 01:03 PM

    Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

    なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

    MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

    DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

    DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

    MySQLの役割:Webアプリケーションのデータベース MySQLの役割:Webアプリケーションのデータベース Apr 17, 2025 am 12:23 AM

    WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

    Laravelは紹介例 Laravelは紹介例 Apr 18, 2025 pm 12:45 PM

    Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

    MySQLをCentos7にインストールする方法 MySQLをCentos7にインストールする方法 Apr 14, 2025 pm 08:30 PM

    MySQLをエレガントにインストールするための鍵は、公式のMySQLリポジトリを追加することです。特定の手順は次のとおりです。MYSQLの公式GPGキーをダウンロードして、フィッシング攻撃を防ぎます。 mysqlリポジトリファイルを追加:rpm -uvh https://dev.mysql.com/get/mysql80-community-rease-el7-3.noarch.rpm update yumリポジトリキャッシュ:yumアップデートインストールmysql:yumインストールmysql-server startup mysql sportin

    See all articles