O Magento Slave quebra quando um produto é adicionado do master

1

O título realmente diz tudo. Aqui está o LAST_ERROR :

Last_Error: Error 'Cannot add or update a child row: a foreign key constraint fails
('cd1n401'.'cdi_catalog_product_entity_int', CONSTRAINT 'FK_CDI_CAT_PRD_ENTT_INT_ENTT_ID_CDI_CAT_PRD_ENTT_ENTT_ID'
FOREIGN KEY ('entity_id') REFERENCES 'cdi_catalog_product_entity' ('entity_id')' on query.
Default database: 'cd1n401'.
Query: 'INSERT INTO 'cdi_catalog_product_entity_int' ('entity_type_id','attribute_id','store_id','entity_id','value')
VALUES ('4', '178', '0', '3', NULL), ('4', '180', '0', '3', NULL), ('4', '181', '0', '3', NULL), ('4', '182', '0', '3', NULL)
ON DUPLICATE KEY UPDATE 'value' = VALUES('value')'

Alguém configurou um escravo mestre antes para o magneto?

    
por Stephen Johnston 17.03.2016 / 01:16

1 resposta

0

Geralmente, erros de replicação como esse são causados por inconsistências de dados entre o mestre e o escravo - a restrição foi obviamente satisfeita no mestre, já que a consulta foi bem-sucedida, mas não no escravo.

Nesse ponto, todo o seu banco de dados (escravo) se torna suspeito. Você pode rastrear a inconsistência específica e corrigi-lo manualmente, mas como você sabe que é o único? O mais seguro é iniciar um novo escravo e, assim que a replicação for alcançada, mate a antiga.

No entanto, isso só conserta o sintoma; você precisa considerar como a escrava ficou fora de sincronia com o mestre em primeiro lugar. De longe, o problema mais comum é a execução de comandos de modificação (ou seja, não SELECT ) no escravo. Infelizmente, você não pode desabilitar isso completamente, pois o processo de replicação do MySQL precisa de privilégios de gravação, mas você pode auditar quem tem privilégios. Todo ser humano que tem acesso de consulta ao escravo precisa saber que ele não deve executar UPDATE s (e, idealmente, limitar suas permissões para que elas não possam ). Cada pedaço de código que fala com o escravo da mesma forma precisa fazer SELECT s.

Outra causa possível é que o processo usado para criar o conjunto de dados inicial do escravo (por exemplo, trazendo-o de um backup do mestre) é falho e começou com uma inconsistência antes mesmo de a replicação começar.

    
por 17.03.2016 / 23:50