製品&サポートサービス

pt-slave-restart

コマンド

pt-slave-restart [オプション] [DSN]

【必須項目】

  • ・ [ オプション ] : -p パスワード

【主なオプション】

  • ・ [ DSN ] : h=ホスト名, u=ユーザー名(デフォルトではそれぞれlocalhost, root)
※ ここで指定するDSNはスレーブ側のものを使用します

目的

レプリケーションの Slave を監視して、エラー等により停止した場合に自動的に再起動を試みます

シナリオ

マスター側に以下のようなテーブルを用意します(スレーブ側にも同テーブルがレプリケーションされます)

mysql> CREATE TABLE `test001` (`id` int(11) DEFAULT NULL)
ENGINE=InnoDB DEFAULT CHARSET=utf8

スレーブ側のテーブルにPRIMARY KEY 制約をつけます

mysql> ALTER TABLE test001 ADD PRIMARY KEY(id);

スレーブ側のコンソール画面から、以下のコマンドを実行します

# pt-slave-restart -u root -ppassword

マスター側で以下のSQLを実行し、意図的にスレーブ側でキー重複エラーを起こします

mysql> INSERT INTO test001(id) VALUES(1);
mysql> INSERT INTO test001(id) VALUES(1);

結果

スレーブ側で、レプリケーションのエラーが発生します

pt-slave-restart01

※スレーブ側のテーブルにのみ、idカラムに対しPRIMARYキーが設定されているため、重複したデータをINSERT出来ず、エラーが発生する

その後、pt-slave-restart が動作します

pt-slave-restart02

エラーの原因となる処理がスキップされ、レプリケーションが正常に継続されます

pt-slave-restart03

良い点

レプリケーション中にエラーが生じても、その処理をスキップしてくれるので、レプリケーションの停止を 防ぐことができます

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

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

ページトップへ