障害の説明 percona5.6、mysqldump フルバックアップ、バックアップデータのインポート時にキー 'PRIMARY' のエントリ 'hoc_log99-item_log_27-PRIMARY-n_diff_pfx01' が重複するエラー 原因 確認したところ、この主キーはMySQLシステムライブラリのシステムテーブルinnodb_index_statsであることがわかりました。 mysql> テーブル innodb_index_stats\G の作成を表示します ************************** 1. 行 **************************** テーブル: innodb_index_stats テーブルの作成: CREATE TABLE `innodb_index_stats` ( `database_name` varchar(64) COLLATE utf8_bin NOT NULL, `table_name` varchar(64) COLLATE utf8_bin NOT NULL, `index_name` varchar(64) COLLATE utf8_bin NOT NULL, `last_update` タイムスタンプ NOT NULL デフォルト CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP、 `stat_name` varchar(64) COLLATE utf8_bin NOT NULL, `stat_value` bigint(20) 符号なし NOT NULL, `sample_size` bigint(20) unsigned DEFAULT NULL, `stat_description` varchar(1024) COLLATE utf8_bin NOT NULL, 主キー (`データベース名`,`テーブル名`,`インデックス名`,`統計名`) ) エンジン=InnoDB デフォルト文字セット=utf8 照合=utf8_bin STATS_PERSISTENT=0 セット内の 1 行 (0.00 秒) mysql> select * from innodb_index_stats where database_name='hoc_log99' and table_name='item_log_27' and stat_name='n_diff_pfx01' and index_name='PRIMARY'; +---------------+-------------+------------+---------------------+--------------+--------------+------------------+ | データベース名 | テーブル名 | インデックス名 | 最終更新日 | 統計名 | 統計値 | サンプル サイズ | 統計の説明 | +---------------+-------------+------------+---------------------+--------------+--------------+------------------+ | hoc_log99 | item_log_27 | プライマリ | 2016-10-07 18:44:06 | n_diff_pfx01 | 823672 | 20 | 再作成 | +---------------+-------------+------------+---------------------+--------------+--------------+------------------+ セット内の 1 行 (0.00 秒) 当時のバックアップ ファイル内の SQL レコードを確認したところ、テーブルはインポート前に再構築されることがわかりました。これにより、テーブルをインポートする前に item_log_27 テーブルの操作レコードが innodb_index_stats に入力される可能性は排除されました。 -- テーブル `innodb_index_stats` のテーブル構造 `innodb_index_stats` が存在する場合はテーブルを削除します。 テーブル `innodb_index_stats` を作成します ( -- テーブル `innodb_index_stats` のデータをダンプしています LOCK TABLES `innodb_index_stats` WRITE; /*!40000 ALTER TABLE `innodb_index_stats` でキーを無効にする */; そこで、最近のbinlogレコードを再度確認したところ、このテーブルを再構築する操作が実際に行われていたことがわかりました。 DROP TABLE IF EXISTS `innodb_index_stats` /* サーバーによって生成されます */ テーブル `innodb_index_stats` を作成します ( /*!40000 ALTER TABLE `innodb_index_stats` キーを無効にする */ 結論は MySQL 5.6のバグ、他の同僚も同じエラーに遭遇した https://www.percona.com/forums/questions-discussions/mysql-and-percona-server/31971-mysql-innodb_index_stats-duplication-entry-error-on-restore https://bugs.mysql.com/bug.PHP?id=71814 解決 1 mysqldump はこのテーブルのバックアップを無視するパラメータを追加します 2 バックアップファイル内のこのテーブルの挿入を次のように変更します。 3 mysql -f 強制インポート innodb_index_stats がバックアップ データをインポートするときにエラー テーブルの主キー競合を解決する方法に関する上記の記事は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 |
<<: FileZilla_Server:425 データ接続を開けない問題を解決する方法
>>: Ubuntu ターミナル マルチウィンドウ 分割画面 ターミネーター
目次チュートリアルシリーズ1. ユーザー管理1. ユーザーアカウント2. アカウントの追加と削除3....
目次ピッカーコンポーネントとはピッカーコンポーネントの問題解決オプションの説明解決ディレクトリ部門P...
目次Nginx は 2 つの socket.io サーバーをプロキシします。 socket.ioの動...
1. HTMLの概要htyper テキスト マークアップ言語 ハイパーテキスト マークアップ言語ハ...
パブリッシュ/サブスクライブとは何ですか?例を挙げてみましょう。あなたは服を買うために店に行きます。...
HTML のインライン要素とブロックレベル要素の違い:標準的なドキュメント フローでは、ブロック ...
目次1. ルール 1: Object.Method() 1.1 ケース1 1.2 ケース2 1.3 ...
1. リストリスト ulコンテナーには、一貫した構造とスタイルを持つテキストまたはグラフの形式が読...
JavaScriptをクリックすると画像の形状が変わります(変形の応用)。参考までに具体的な内容は...
作成したイメージを一元管理し、サービスの展開を容易にするために、プライベート Docker リポジト...
最初のステップはTypeScriptをグローバルにインストールすることですnpmを使用してインストー...
目次1. ノード、ツリー、仮想DOM 2. 仮想DOM 2.1 データオブジェクトの詳細2.2 制約...
序文:データベースのバックアップの重要性は、特にデータの損失が深刻な結果を招く可能性がある実稼働環境...
HTML フォームは、さまざまな種類のユーザー入力を収集するために使用されます。次のコードは、HTM...
この記事の例では、下部のポップアップウィンドウで複数選択を実装するためのVueの具体的なコードを共有...