内容へ移動
メモとかメモのようなものとか(By ルーキーの中のひと)
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
ODT 出力
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
os:centos:mysql:semisyncrep
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== Semi-Synchronous Replication ====== [[os:centos:mysql:replication|標準レプリケーション]]の設定が済んでいるものとします。 * Slaveが落ちると自動で通常の非同期レプリケーションに切り替わる * 切り替わるまでの待ち時間はrpl_semi_sync_master_timeout ===== Master側の設定 ===== プラグインインストール mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; 確認 mysql> show plugins; +--------------------------+----------+--------------------+--------------------+---------+ | Name | Status | Type | Library | License | +--------------------------+----------+--------------------+--------------------+---------+ | rpl_semi_sync_master | ACTIVE | REPLICATION | semisync_master.so | GPL | +--------------------------+----------+--------------------+--------------------+---------+ LOGの書き出しがコミット単位になっているか確認 mysql> show variables like 'innodb_flush_log_at_trx_commit'; +--------------------------------+-------+ | Variable_name | Value | +--------------------------------+-------+ | innodb_flush_log_at_trx_commit | 1 | +--------------------------------+-------+ /etc/my.cnf で [mysqld] の中に下記を追加 rpl_semi_sync_master_enabled=1 <= 準同期レプリケーションを有効に rpl_semi_sync_master_timeout=100 <= 更新時、SLAVEが応答しない時のタイムアウト時間を0.1秒に設定 MySQLを再起動して、設定が反映しているか確認 mysql> show variables like '%semi%'; +------------------------------------+-------+ | Variable_name | Value | +------------------------------------+-------+ | rpl_semi_sync_master_enabled | ON | <= | rpl_semi_sync_master_timeout | 100 | | rpl_semi_sync_master_trace_level | 32 | | rpl_semi_sync_master_wait_no_slave | ON | <= +------------------------------------+-------+ Status mysql> SHOW STATUS LIKE "rpl%"; +--------------------------------------------+-------------+ | Variable_name | Value | +--------------------------------------------+-------------+ | Rpl_semi_sync_master_clients | 1 | | Rpl_semi_sync_master_net_avg_wait_time | 0 | | Rpl_semi_sync_master_net_wait_time | 0 | | Rpl_semi_sync_master_net_waits | 0 | | Rpl_semi_sync_master_no_times | 0 | | Rpl_semi_sync_master_no_tx | 0 | | Rpl_semi_sync_master_status | ON | <=SemiSyncで動作 | Rpl_semi_sync_master_timefunc_failures | 0 | | Rpl_semi_sync_master_tx_avg_wait_time | 0 | | Rpl_semi_sync_master_tx_wait_time | 0 | | Rpl_semi_sync_master_tx_waits | 0 | | Rpl_semi_sync_master_wait_pos_backtraverse | 0 | | Rpl_semi_sync_master_wait_sessions | 0 | | Rpl_semi_sync_master_yes_tx | 0 | | Rpl_status | AUTH_MASTER | +--------------------------------------------+-------------+ ===== Slave側の設定 ===== 同期停止 mysql> STOP SLAVE; プラグインインストール mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so'; 確認 mysql> show plugins; +--------------------------+----------+--------------------+--------------------+---------+ | Name | Status | Type | Library | License | +--------------------------+----------+--------------------+--------------------+---------+ | rpl_semi_sync_slave | ACTIVE | REPLICATION | semisync_slave.so | GPL | +--------------------------+----------+--------------------+--------------------+---------+ LOGの書き出しがコミット単位になっているか確認 mysql> show variables like 'innodb_flush_log_at_trx_commit'; +--------------------------------+-------+ | Variable_name | Value | +--------------------------------+-------+ | innodb_flush_log_at_trx_commit | 1 | +--------------------------------+-------+ /etc/my.cnf で [mysqld] の中に下記を追加 rpl_semi_sync_slave_enabled=1 <= 準同期レプリケーションスレーブ動作を有効に MySQLを再起動して、同期再開 mysql> START SLAVE; ===== 参照 ===== [[http://nippondanji.blogspot.jp/2009/03/mysql-ha-semi-synchronous-replication.html|漢(オトコ)のコンピュータ道]]
os/centos/mysql/semisyncrep.txt
· 最終更新: 2017/04/14 14:21 (外部編集)
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
ODT 出力
文書の先頭へ