序文 最近、私はある要件に遭遇しました。会社の業務上、2 つのデータベース間の一部のテーブルは、リアルタイムかつ双方向にデータを同期する必要があり、いずれかのデータベースのダウンタイムが他のデータベースに影響を与えないようにする必要があります。ここでは、後の再構築に使用するために、私自身の技術調査を記録します。早速、詳しい紹介を見ていきましょう。 MySQL 5.7をインストールする インストール用の yum ソースをダウンロードするには、公式 Web サイト https://dev.mysql.com に直接アクセスすることをお勧めします。これは安全で便利です。 https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm を実行します。 yum -y インストール mysql57-community-release-el7-11.noarch.rpm yum -y mysql-server をインストールします # MySQL 5.7 をインストール systemctl で mysqld を起動します。 # MySQLを起動する デュアルアクティブの設定 my.cnf の設定 ここでは単純なデュアルマスター構成のみを行い、データベース関連の最適化は行いません。最適化が必要な場合は、プライベートチャットでお問い合わせください。 MySQL1の設定は以下のとおりです [mysqld] vim /etc/my.cnf データディレクトリ=/var/lib/mysql ソケット=/var/lib/mysql/mysql.sock シンボリックリンク=0 ログエラー=/var/log/mysqld.log pidファイル=/var/run/mysqld/mysqld.pid スキップ名解決=オン #シンプルなパスワードを設定するvalidate_password_policy=0 パスワードの長さを検証する=1 ###メイン設定 log_bin=bin_log サーバーID=1 binlog-do-db=ziyun # どのライブラリがslave_parallel_type='logical_clock'から複製できるか #レプリケーションタイプをLOGICAL_CLOCKに設定する スレーブ並列ワーカー = 4 #並列処理の数を4に設定する ###設定relay-log=relay-binから リレーログインデックス=リレービンインデックス 複製するDB=ziyun # メインサービスライブラリのレプリケーションを許可する replicate-do-table=ziyun.test1 # メインサービスライブラリのどのテーブルが複製可能か replicate-do-table=ziyun.test2 MySQL2 の設定は基本的に上記と同じですが、 MySQLコマンド設定 SQLコマンドラインインターフェースでは以下が設定されます 主な構成: mysql> 'slave'@'192.168.1.100' というユーザーを作成し、'123.com' で識別します。 mysql> 'slave'@'192.168.1.100' に *.* のレプリケーションスレーブ権限を付与します。 # 承認されたレプリケーション ユーザーとパスワードmysql> show master status; +-----------------+----------+--------------+------------------+------------------+ | ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +-----------------+----------+--------------+------------------+------------------+ | bin_log.000002 | 8384 | ziyun | | | +-----------------+----------+--------------+------------------+------------------+ セット内の 1 行 (0.00 秒) 構成から: mysql> マスターを変更する -> MASTER_HOST='192.168.1.101', -> MASTER_USER='スレーブ'、 -> MASTER_LOG_FILE='bin_log.000002'、 -> MASTER_LOG_POS=8384; クエリは正常、影響を受けた行は 0 行、警告は 2 件 (0.01 秒) mysql> スレーブを起動します。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) mysql>スレーブステータスを表示\G スレーブIO実行中: はい スレーブSQL実行中: はい # 上記のすべてが「はい」であり、エラーがないことを確認します。 MySQL2でも同じ設定が可能です デュアルマスター同期テスト ここでは、両側に ziyun データベースを構築し、test1 test2 test3 テーブルを作成しました。テスト結果は次のとおりです。 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。 以下もご興味があるかもしれません:
|
<<: VUEはFlappy Birdゲームのサンプルコードを実装します
>>: 新しい Linux ファイル権限設定における umask の詳細な理解
1. 問題の説明今日、システム ログ ファイルを確認する必要がありますが、/var/log/mess...
ルートディレクトリとインデックスファイルroot ディレクティブは、ファイルの検索に使用するルート ...
この記事では、フォーム検証を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...
この記事の例では、ページ切り替え効果を実現するためのJSコードの具体的なコードを参考までに共有してい...
【1】中央の要素の幅と高さを知る絶対値 + 負のマージンコードの実装 .wrapBox5{ 幅: 3...
目次1. 目的2. 文法3. 練習する1. 目的通常、エラーが発生すると、スクリプトは直ちに停止し、...
Harborのインストールは非常に簡単ですが、Dockerログインで行き詰まってしまいました。このブ...
目次序文オンラインXMLエディタの必要性テクノロジー事前調査ビジュアルプログラミングVSCODEプラ...
1. MySQL インストール パッケージをダウンロードします(ここにはコツがあります。おそらく、こ...
序文最近、4 年間実行されている Java EE Web プロジェクトでは、システムが開けないという...
コードと例を直接投稿する #テーブル作成時にコメントを記述する CREATE TABLE useri...
会社のビジネスシナリオでは、WeChat アカウント分割機能を使用する必要があります。公式 Web ...
この記事では、モバイルとPCで簡単なドラッグアンドドロップ効果を実現するためのTypescript ...
以下のように表示されます。 mysql.proc から名前を選択します (db='データベー...
MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...