製品&サポートサービス

pt-slave-delay

コマンド

pt-slave-delay [ オプション ] [ スレーブのホスト名 ] [ マスターのホスト名 ]

【必須項目】

  • ・ [ オプション ] : -p パスワード
  • ・ スレーブのホスト名 : スレーブサーバのホスト名を指定します

【主なオプション】

  • ・ --delay : レプリケーションを遅延させる秒数を指定します(デフォルトでは1時間です)
  • ・ --interval : スレーブの停止・起動を判断する間隔を指定します(デフォルトで1分です)
  • ・ --run-time : コマンドを実行する秒数を指定します(デフォルトでは Ctrl - C するまで動作し続けます)

目的

指定した条件でスレーブサーバを停止・起動させ、レプリケーションを意図的に遅延させます

設定ファイル

必須オプションを、設定ファイルにまとめておきます

# touch /etc/percona-toolkit/pt-slave-delay.conf (設定ファイルの作成)
# vi /etc/percona-toolkit/pt-slave-delay.conf (設定ファイルの編集)
# config for pt-slave-delay
password=パスワード (スレーブ側のMySQL のパスワード)

シナリオ

スレーブ側で以下のコマンドを実行し90秒間、レプリケーションを60秒遅延させます

# pt-slave-delay --delay 60 --interval 30 --run-time 90 localhost

マスタ側で以下のSQL文を実行します

mysql> CREATE TABLE delay_test(id int);

スレーブ側で以下のSQL文を実行します

mysql> SHOW TABLES;

コンソールに以下のような文章が表示されたら、もう一度上のSQL文を実行します

pt-slave-delay01

結果

スレーブ側でレプリケーション遅延が発生していることが確認できます

pt-slave-delay02

※コマンド終了時点では、スレーブサーバのスレーブモードは停止した状態になります。そのため、コマンド終了後、以下を実行しスレーブモードを開始する必要があります。

mysql> SLAVE START;

※遅延する時間は、「--delayで指定した時間」 から 「--delay + --interval」 の間で推移します

良い点

マスターサーバのオペレーションミス等によるデータの反映を遅延させる事により、スレーブサーバへの被害を最小限に抑える事ができます

その他

MySQL5.6以降では、以下のSQL文でpt-slave-delayコマンドと同様の機能が実現できます

mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_DELAY=60;
mysql> START SLAVE;

MySQLや関連ソリューションに関するお問い合わせ、お見積などがございましたら、ご連絡ください。

お問い合わせ各MySQL保守サービス見積依頼スマートスタイルOSSストア

ページトップへ