Använd --single-transaction
för att undvika tabelllås på InnoDB-tabeller.
Det finns ingenting du egentligen kan göra åt MyISAM, även om du egentligen inte borde använda MyISAM. Den bästa lösningen är att skapa en läsreplika och göra säkerhetskopior från repliken så att låsen inte påverkar applikationen.
Vad du bör hitta är att medan en säkerhetskopia körs, en READ LOCAL
lås hålls på tabellerna i den enda databas som för närvarande säkerhetskopieras, vilket betyder att du kan läsa från tabellerna men skrivning (infoga/uppdatera/ta bort) kommer att blockera förutom vissa insatser på MyISAM som kan uppnås utan att störa låset. De kan vara tillåtna. Det enklaste sättet att se detta hända är att upprepade gånger fråga SHOW FULL PROCESSLIST;
för att hitta trådar som blockerar.