Lösung für Primärschlüsselkonflikte, wenn innodb_index_stats beim Importieren von Sicherungsdaten einen Fehler meldet

Lösung für Primärschlüsselkonflikte, wenn innodb_index_stats beim Importieren von Sicherungsdaten einen Fehler meldet

Fehlerbeschreibung

percona5.6, mysqldump vollständige Sicherung, Fehler Doppelter Eintrag 'hoc_log99-item_log_27-PRIMARY-n_diff_pfx01' für Schlüssel 'PRIMARY' beim Importieren von Sicherungsdaten

Ursache

Überprüft und festgestellt, dass dieser Primärschlüssel die Systemtabelle innodb_index_stats unter der MySQL-Systembibliothek sein sollte

mysql> anzeigen, Tabelle erstellen innodb_index_stats\G
*************************** 1. Reihe ***************************
    Tabelle: innodb_index_stats
Tabelle erstellen: CREATE TABLE `innodb_index_stats` (
 `Datenbankname` varchar (64) COLLATE utf8_bin NICHT NULL,
 `table_name` varchar(64) COLLATE utf8_bin NICHT NULL,
 `index_name` varchar(64) COLLATE utf8_bin NICHT NULL,
 `last_update` Zeitstempel NICHT NULL STANDARD CURRENT_TIMESTAMP BEI UPDATE CURRENT_TIMESTAMP,
 `stat_name` varchar(64) COLLATE utf8_bin NICHT NULL,
 `stat_value` bigint(20) unsigned NICHT NULL,
 `sample_size` bigint(20) unsigned DEFAULT NULL,
 `stat_description` varchar(1024) COLLATE utf8_bin NICHT NULL,
 PRIMÄRSCHLÜSSEL (`Datenbankname`, `Tabellenname`, `Indexname`, `Statistikname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0

1 Zeile im Satz (0,00 Sek.)

mysql> wähle * aus innodb_index_stats, wobei database_name='hoc_log99' und table_name='item_log_27' und stat_name='n_diff_pfx01' und index_name='PRIMARY';
+-----------------+----------+------------+---------------------+---------------+------------+-------------+------------------+
| Datenbankname | Tabellenname | Indexname | letzte_Aktualisierung | Statistikname | Statistikwert | Stichprobengröße | Statistikbeschreibung |
+-----------------+----------+------------+---------------------+---------------+------------+-------------+------------------+
| hoc_log99 | item_log_27 | PRIMARY | 07.10.2016 18:44:06 | n_diff_pfx01 | 823672 | 20 | neu erstellt |
+-----------------+----------+------------+---------------------+---------------+------------+-------------+------------------+
1 Zeile im Satz (0,00 Sek.)

Ich habe damals die SQL-Datensätze in meiner Sicherungsdatei überprüft und festgestellt, dass die Tabelle vor dem Importieren neu erstellt werden würde. Dies schloss die Möglichkeit aus, dass die Betriebsdatensätze der Tabelle item_log_27 vor dem Importieren der Tabelle in innodb_index_stats eingegeben wurden.

-- Tabellenstruktur für Tabelle „innodb_index_stats“
Tabelle löschen, wenn `innodb_index_stats` vorhanden ist;
Tabelle „innodb_index_stats“ erstellen (
-- Daten für Tabelle „innodb_index_stats“ ausgeben
SPERRT TABELLEN `innodb_index_stats` SCHREIBEN;
/*!40000 ALTER TABLE `innodb_index_stats` SCHLÜSSEL DEAKTIVIEREN */;

Also habe ich die aktuellen Binärprotokolldatensätze noch einmal überprüft und festgestellt, dass tatsächlich eine Operation zum Neuerstellen dieser Tabelle stattgefunden hat.

DROP TABLE IF EXISTS `innodb_index_stats` /* vom Server generiert */
Tabelle „innodb_index_stats“ erstellen (
/*!40000 ALTER TABLE `innodb_index_stats` SCHLÜSSEL DEAKTIVIEREN */

abschließend

MySQL 5.6-Fehler, andere Kollegen haben den gleichen Fehler festgestellt

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

Lösung

1 mysqldump fügt Parameter hinzu, um die Sicherung dieser Tabelle zu ignorieren

2 Ändern Sie den Einfügevorgang dieser Tabelle in der Sicherungsdatei, um

3 mysql -f erzwungener Import

Der obige Artikel zum Lösen des Primärschlüsselkonflikts der Fehlertabelle, wenn innodb_index_stats Sicherungsdaten importiert, ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, er kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen.

<<:  So lösen Sie das Problem FileZilla_Server:425. Datenverbindung kann nicht geöffnet werden

>>:  Ubuntu-Terminal, mehrere Fenster, geteilter Bildschirm, Terminator

Artikel empfehlen

Der Prozess des Aufbaus einer Lampenarchitektur durch einen Docker-Container

Inhaltsverzeichnis 1. Ziehen Sie das Centos-Image...

4 Lösungen für CSS-Browserkompatibilitätsprobleme

Frontend ist ein harter Job, nicht nur weil sich ...

Implementierung eines MySQL-Gemeinschaftsindex (zusammengesetzter Index)

Gemeinsamer Index Die Definition des gemeinsamen ...

Optimierungsanalyse der Limit-Abfrage in MySQL-Optimierungstechniken

Vorwort Im realen Geschäftsleben ist Paging eine ...

Detaillierte Schritte zur Installation von Docker 1.8 auf CentOS 7

Docker unterstützt die Ausführung auf den folgend...

Eine kurze Einführung in die Gesamtstruktur von Tomcat

Tomcat ist weithin als Webcontainer bekannt. Es h...

Gemeinsame Nutzung von zwei Plug-Ins zur Übersetzung von Webseiten

Übersetzen Sie diese URL: http://translateth.is G...

Tutorial zu HTML-Formular-Tags (1):

Formulare sind eine wichtige externe Form zur Imp...

So implementieren Sie die Größenanpassung mobiler Webseiten

Ich habe das vorliegende Projekt endlich abgeschl...

Dieser Artikel zeigt Ihnen, wie Sie mit CSS-Rahmen spielen

Rahmenstil Die Eigenschaft „Border-Style“ gibt an...

Detaillierte Erklärung der Filter und Anweisungen in Vue

Inhaltsverzeichnis benutzerdefinierte Vue-Direkti...

Reines JavaScript zur Implementierung des Zahlenratespiels

Entwickeln Sie ein Zahlenratespiel, bei dem zufäl...