Mysqlはどのようにデュアルマシンのホットスペアと負荷のバランスを作ります

24707 ワード

まず、mysqlの双方向ホットスペアについて簡単に説明します.mysqlは3.23.15バージョン以降、データベース・レプリケーション機能を提供します.この機能により,2つのデータベース同期,主従モード(A−>B),相互バックアップモード(A<=>B)の機能を実現できる.
mysqlデータベースの双方向ホットスペアの操作の実際の説明:
1、mysqlデータベースの同期レプリケーション機能の設定はmysqlのプロファイルに反映されています.linux環境でのプロファイルは、一般的に/etc/mysql/my.cnfまたはmysqlユーザーのホームディレクトリの下のmy.cnf,筆者のmy.cnfは/etc/my.cnf;Windows環境ではmysqlインストールパスの下でmyを見つけることができます.ini.
2、構成データ同期(A->B)(mysqlバージョン5.0.26を例に):
データベースAをホストとする:Aマシン:IP=192.168.1.1.1101 Bマシン:IP=192.168.1.1102
(1)A機器には次のようなデータベースがある.
//データベースA

   
   
   
   
  1. CREATE DATABASE backup_db;
  2. USE backup_db;
  3. CREATE TABLE `backup_table` (
  4. `id` int(11) NOT NULL auto_increment,
  5. `name` varchar(20) character set utf8 NOT NULL,
  6. `sex` varchar(2) character set utf8 NOT NULL,
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Aマシンのmy.cnf(またはmy.ini)で構成する必要があります.

   
   
   
   
  1. server-id=1
  2. log-bin=c:\mysqlback #
  3. binlog-do-db=backup_db #

(2)Bマシンには次のようなデータベースがあります.
//データベースB

   
   
   
   
  1. CREATE DATABASE backup_db;
  2. USE backup_db;
  3. CREATE TABLE `backup_table` (
  4. `id` int(11) NOT NULL auto_increment,
  5. `name` varchar(20) character set utf8 NOT NULL,
  6. `sex` varchar(2) character set utf8 NOT NULL,
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

注意:データベースAとBのデータベース構造は必ず同じでなければなりません.そうしないと、同期を構成できません.
Bマシンのmy.cnf(またはmy.ini)で構成する必要があります.

   
   
   
   
  1. server-id=2
  2. master-host=192.168.1.101 # A
  3. master-user=ym # A B , backup_db
  4. master-password=ym #
  5. master-port=3306 # , MYSQL
  6. master-connect-retry=60 # 60
  7. replicate-do-db=backup_db #

(3)以上の構成が完了したら,Aのmysqlデータの権限をBに与える.
Aマシン:

   
   
   
   
  1. mysql>GRANT FILE ON *.* TO ym@192.168.1.102 IDENTIFIEDBY ym’;

(4)ABデータベースを再起動した後:
Bマシン:

   
   
   
   
  1. mysql>slave start;

同期構成の表示
Aマシン:

   
   
   
   
  1. mysql>show master status;

Bマシン:

   
   
   
   
  1. mysql>show slave status;

(5)Aでのbackup_db.backup_tableテーブルにいくつかのデータを挿入し、Bのbackup_を表示します.db.backup_tableテーブルがデータ変更を同期しているかどうか.同期データの結果が表示されない場合、同期が失敗した場合は、エラー(以下)を確認します.
エラー発生時*Errログファイル(mysqlインストールディレクトリで検索可能)、同期スレッドが終了します.エラーを修正したら、手順(4)を繰り返します.
3、双方向の熱調製を実現する(A<=>B):
以上の(1)-(5)の手順をA-B双方向に配置すればよい.
まとめてみます.
主に両方に同じデータベースを作成し、データベースプロファイルに更新文を追加すればよい.
相互に権限を持つユーザーを開きます.このコマンドは、同期頻度と同期データベースです.

   
   
   
   
  1. master-connect-retry=60 # 60
  2. replicate-do-db=backup_db #
auto_increment_increment=
auto_increment_offset=

, MASTER