Todas as noites o agendador Laravel executa "mysqldump -h $dbHost -u $dbUsername -p$dbPassword $dbDatabase > $path/$filename"
comandos por meio exec()
de funções.
E às vezes o dump é corrompido em algum lugar aleatório:
Um bom dump se parece com isso:
LOCK TABLES `action_categories_link` WRITE;
/*!40000 ALTER TABLE `action_categories_link` DISABLE KEYS */;
INSERT INTO `action_categories_link` VALUES (1,1,1),(10,2,1),(15,3,2);
/*!40000 ALTER TABLE `action_categories_link` ENABLE KEYS */;
UNLOCK TABLES;
E o ruim:
LOCK TABLES `action_categories_link` WRITE;
/*!40000 ALTER TABLE `action_categories_link` DISABLE KEYS */;
INSERT INTO `action_categories_link` VALUES (1,1,1),(10,2,1),(15,3,/*!4/*40000 ALTER TABLE `action_categories_link` ENABLE KEYS */;
UNLOCK TABLES;
Também vi esta linha:
LOCKLOCK TABLES `action_categories` WRITE;
Não posso executar um dump enquanto o aplicativo está em execução? O tamanho típico do dump é de quase 2 GB, mas esses erros aparecem desde o começo. Alguns dumps não estão corrompidos, então não tenho a mínima ideia.
Despejando no mesmo servidor Linux que o db, sem docker. MySQL dump 10.13 Distrib 8.0.29