I encountered a problem when using gh-ost to alter primary key , Please help me

Abierto
#1,294 1 comentario 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 10 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
25/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
go, mysql
Área
databases

Línea de trabajo

No se nombra ningún archivo fuente, prueba ni punto de entrada. Empieza con el comando de gh-ost proporcionado, la definición de la tabla y el error de clave primaria duplicada; después investiga la reproducción en MySQL 5.7 Aurora con réplicas. Se considera terminado cuando se haya establecido la causa y documentado una resolución verificada o un cambio de código específico.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

This is the command:
gh-ost -allow-on-master -assume-rbr -exact-rowcount -initially-drop-ghost-table -initially-drop-old-table -initially-drop-socket-file -critical-load-hibernate-seconds 60 -database xxx -nice-ratio 0.1 -chunk-size 3888 -ask-pass -table ixxx_logging -user username -host host1 -alter 'ALTER TABLE ixxx_logging MODIFY COLUMN id varchar(50) NOT NULL' -verbose -execute 2>&1 | tee gh-ost.log
DB: 5.7.mysql_aurora.2.11.1 . This db has five slaves.
TABLE :
CREATE TABLE ixxx_logging (
id bigint(20) NOT NULL AUTO_INCREMENT,
x9 VARCHAR(32),
x8 VARCHAR(32),
x7 INT DEFAULT 0,
x6 INT DEFAULT 0,
x5 INT DEFAULT 1,
x4 VARCHAR(2) DEFAULT 0,
x3 timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
x2 TIMESTAMP timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
x1 DATETIME DEFAULT null,
xxxxx1 VARCHAR(1000),
xxxx9 VARCHAR(32),
xxxx8 VARCHAR(32),
xxxx7 VARCHAR(70),
xxxx6 INT DEFAULT 0,
xxxx5 VARCHAR(1) DEFAULT 0,
xxxx4 VARCHAR(1) DEFAULT 0,
xxxx3 VARCHAR(256),
xxxx2 VARCHAR(256),
xxx1 VARCHAR(1) DEFAULT 0,
bb1 VARCHAR(10),
bb2 CHAR(30),
bb3 VARCHAR(30),
bb4 VARCHAR(2) DEFAULT 0,
bb5 VARCHAR(100) DEFAULT null,
bb6 VARCHAR(100) DEFAULT null,
bb7 VARCHAR(20) DEFAULT null,
PRIMARY KEY (id) USING BTREE,
KEY idx_x9 (x9) USING BTREE,
KEY idx_x8 (x8) USING BTREE,
KEY idx_x3 (x3)
) ENGINE=InnoDB AUTO_INCREMENT=2694513087735591693 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

error:
2023-08-15 02:16:06 ERROR Error 1062: Duplicate entry '26945130xxxx5506529' for key 'PRIMARY'; query=
update /* gh-ost schema1._ixxx_logging_gho */
schema1._ixxx_logging_gho
set
id=?, x9=?, x8=?, x7=?, x6=?, x5=?, x3=?, ....
where
((id = ?));

args=[26945130xxxx5506529 242920747xxx526657 242920747xxx526657 2 2 1 9D0C49xxxx08118 2024-08-14 01:37:07 0 0 1 2 2023-08-15 01:37:11 +0000 UTC 2023-08-15 01:44:57 +0000 UTC 0 0 2694513087xxxx06524 242920747xxx526657 26945130xxxx5506529]

Lenguaje dominante
Go
Estrellas
13.6k
Forks
1.4k
Merge medio
9 d 19 h
PR fusionados (30 d)
1

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de github/gh-ost

Todos los issues de github/gh-ost

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.