Replica HA_ERR_FOUND_DUPP_KEY after migration-on-replica cutover

Offen
#1,556 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 10 Tagen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
go, mysql
Bereich
databases

Rechercherichtung

Beginne damit, den migration-on-replica cutover mit MySQL 8.0.41 und gh-ost 1.1.7 anhand des im Issue beschriebenen Befehls und der nebenläufigen Transaktionen nachzustellen. Verfolge das Verhalten während des cutover und das Verhalten der Replica rund um den gemeldeten Fehler HA_ERR_FOUND_DUPP_KEY; abgeschlossen ist die Untersuchung, wenn die Ursache identifiziert und der Ausfall der Replica verhindert wurde, ohne den migration-on-replica cutover zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug data-integrity

I am doing table migration with gh-ost with migration-on-replica and there is transactions being processed at same time.

After cutover, there is replica failure.

Error message:
Duplicate entry '0' for key 'transaction.PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY

MySQL Version: 8.0.41-commercial

gh-ost Version: 1.1.7 (git commit: 41e72706c8caac24dc8225758eb688aae69a0ce8)

Command

./gh-ost \
    -migrate-on-replica \
    -ssl-allow-insecure \
    -ssl \
    -max-load=Threads_running=25 \
    -critical-load=Threads_running=1000 \
    -chunk-size=1000 \
    -max-lag-millis=1500 \
    -user="ghost" \
    -password="xxxx" \
    -host=slave-ip \
    -port=3306 \
    -database="transaction" \
    -table="transaction" \
    -verbose \
    -initially-drop-ghost-table \
    -initially-drop-old-table \
    -alter="CHANGE ID ID BIGINT unsigned not null auto_increment" \
    -cut-over=default \
    -exact-rowcount \
    -concurrent-rowcount \
    -default-retries=120 \
    -panic-flag-file=/tmp/ghost.panic.flag \
    -postpone-cut-over-flag-file=./ghost.postpone.flag \
    -execute
Vorherrschende Sprache
Go
Sterne
13.6k
Forks
1.4k
Ø Merge
9 T. 19 Std.
Gemergte PRs (30 T.)
1

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus github/gh-ost

Alle Issues in github/gh-ost

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.