製品&サポートサービス

pt-fk-error-logger

コマンド

pt-fk-error-logger [ オプション ] [ DSN ]

【必須項目】

  • ・ [ オプション ] : -p パスワード
  • ・ [ DSN ] : h=ホスト名, D=データベース名

【主なオプション】

  • ・ --dest : 検出したエラー情報を格納するテーブルを指定します(デフォルトでは標準出力となります)
  • ・ --run-time 数字 : 動作する期間を指定します(デフォルトでは Ctrl - C するまで動作し続けます)

目的

外部キー制約に関するエラー情報を標準出力します

設定ファイル

上記の必須項目を、設定ファイルにまとめておきます
ただし、DSNはコマンドライン上で直接指定する必要があるため、ここでは書きません

# touch /etc/percona-toolkit/pt-fk-error-logger.conf (設定ファイルの作成)
# vi /etc/percona-toolkit/pt-fk-error-logger.conf (設定ファイルの編集)
# config for pt-fk-error-logger
user=root (MySQL のユーザ名)
password=パスワード (MySQL のパスワードを記載)

シナリオ

以下のような親テーブルを用意します

pt-fk-error-logger01

外部キーをつけるために titleカラムにインデックスを作成します

mysql> CREATE INDEX idx_title ON articles(title);

以下のCREATE文を実行し、子テーブルを作成します

mysql> CREATE TABLE articles_second (id int(11) AUTO_INCREMENT, title varchar(255),created_at datetime, updated_at datetime, PRIMARY KEY(id),FOREIGN KEY(title) REFERENCES articles(title) ) ENGINE=InnoDB;

pt-fk-error-loggerコマンドを実行します

# pt-fk-error-logger D=test

以下のSQL文を実行し、外部キー制約エラーを発生させます

mysql> INSERT INTO articles (title) VALUE ( "First" );
mysql> INSERT INTO articles_second (title) VALUE ( "Second" );

結果

外部キー制約に関するエラーが標準出力されます

pt-fk-error-logger02

良い点

外部キー制約に関するエラーを監視することが出来ます

良い点

標準出力の場合、最新のエラーを1件しか表示することが出来ません
そのため、エラー情報を保持するためには出力内容をMySQL内のテーブルに格納する必要があります

以下のようなテーブルを作成します

mysql> CREATE TABLE foreign_key_errors (ts datetime NOT NULL,error text NOT NULL, PRIMARY KEY (ts));

以下のコマンドを実行すると、エラー情報が foreign_key_errors テーブルに書き込まれます

# pt-fk-error-logger h=localhost --dest h=localhost,D=blog_test,t=foreign_key_errors

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

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

ページトップへ