ページ ツリー
メタデータの末尾にスキップ
メタデータの先頭に移動

概要

準同期レプリケーションの実装方法を記載します。
MuSQL5.5でも同じ手順で実装することは可能だと思われますが、実装実験はMySQL5.6.10で行っております。

 

手順

  1. DB Masterでの作業
    1. MySQLにログイン

      mysql -u root
    2. プラグインのインストール(MySQLにログインしている前提の手順です)

      INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
      実行例

      mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
      Query OK, 0 rows affected (0.26 sec)

      コマンドを実行しエラーを返していなければ問題ありません。

    3. 準同期レプリケーションの有効化

      SET GLOBAL rpl_semi_sync_master_enabled = 1;
      実行例

      mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;
      Query OK, 0 rows affected (0.03 sec)

      コマンドを実行しエラーを返していなければ問題ありません。

    4. 準同期レプリケーションのタイムアウト値を設定、この値を超えると、非同期レプリケーションに切り替わります。

      SET GLOBAL rpl_semi_sync_master_timeout = 3000;
    5. 設定の確認

      SHOW GLOBAL VARIABLES LIKE "rpl%";
      実行例

      mysql> SHOW GLOBAL VARIABLES LIKE "rpl%";

      +-----------------------------------------------------+---------+
      | Variable_name                                           | Value   |
      +-----------------------------------------------------+---------+
      | rpl_semi_sync_master_enabled                | ON     |
      | rpl_semi_sync_master_timeout                | 3000    |
      | rpl_semi_sync_master_trace_level           | 32       |
      | rpl_semi_sync_master_wait_no_slave      | ON     |
      +------------------------------------------------------+--------+
      4 rows in set (0.28 sec)

  2. DB Slaveでの作業
    1. MySQLにログイン

      mysql -u root
    2. プラグインのインストール(MySQLにログインしている前提の手順です)

      INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
      実行例

      mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_slave.so';
      Query OK, 0 rows affected (0.26 sec)

      コマンドを実行しエラーを返していなければ問題ありません。

    3. 準同期レプリケーションの有効化

      SET GLOBAL rpl_semi_sync_slave_enabled = 1;
      実行例

      mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;
      Query OK, 0 rows affected (0.00 sec)

      コマンドを実行しエラーを返していなければ問題ありません。

    4. 設定の確認

      SHOW GLOBAL VARIABLES LIKE "rpl%";
      実行例

      mysql> SHOW GLOBAL VARIABLES LIKE "rpl%";

      +-----------------------------------------------+--------+
      | Variable_name                                    | Value  |
      +-----------------------------------------------+--------+
      | rpl_semi_sync_slave_enabled           | ON    |
      | rpl_semi_sync_slave_trace_level      | 32      |
      +-----------------------------------------------+--------+
      2 rows in set (0.00 sec)

    5. 状態の確認

      SHOW STATUS LIKE 'Rpl_semi_sync%';
      実行例

      mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';

      +------------------------------------------+---------+
      | Variable_name                        | Value  |
      +------------------------------------------+---------+
      | Rpl_semi_sync_slave_status      | OFF    |
      +------------------------------------------+---------+
      1 row in set (0.06 sec)

      Rpl_semi_sync_slave_statusがONになっていれば、本手順は終了です。

    6. IOスレッドの再起動を行う

      STOP SLAVE IO_THREAD;
      START SLAVE IO_THREAD;
    7. 状態を確認

      SHOW STATUS LIKE 'Rpl_semi_sync%';
      実行例

      mysql> SHOW STATUS LIKE 'Rpl_semi_sync%';

      +------------------------------------------+---------+
      | Variable_name                        | Value  |
      +------------------------------------------+---------+
      | Rpl_semi_sync_slave_status      | ON      |
      +------------------------------------------+---------+
      1 row in set (0.06 sec)

my.cnfへの設定追記方法

  1. マスタ側のmy.cnfに下記の項目を追記

    設定例
    [mysqld]
    #-中略-
    rpl_semi_sync_master_enabled=1 rpl_semi_sync_master_timeout=3000 # 3 second
    #中略
  2. スレーブ側のmy.cnfに下記の項目を追記

    設定例
    [mysqld]
    #-中略-
    rpl_semi_sync_slave_enabled=1
    #中略

    プラグインをインストールするまえに、この設定を記述することはできません。

    MySQL-MHA等でフェイルオーバーする場合は、マスター、スレーブ関係なしに両方のプラグインをインストールすることをおすすめします。

  • ラベルがありません
コメントを書く…