Як позбутися проблем з типом вимкнення та блокування?


17

Я читав декілька блогів, намагався гугл, але не знайшов задоволення від жодного рішення. У мене є такі питання:

PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: DELETE FROM {cache_field} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => field\_info:% ) in cache_clear_all() (line 163 of \includes\cache.inc).

PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction: SELECT 1 AS expression FROM {sessions} sessions WHERE ( (sid = :db_condition_placeholder_0) AND (ssid = :db_condition_placeholder_1) )

Я намагався вирішити це шляхом збільшення innodb_pool_buffer_sizeта wait_timeoutв my.ini, але не вийшло.

Я змінив двигун таблиці кеш-пам'яті з Innodb на MyIasm. Питання пішло, але воно не є ідеальним рішенням. Двигун таблиці буде змінено після оновлення drupal. Ця проблема нічого не стосується на сайті, але я не хочу, щоб це сталося.

Будь-яке рішення, хлопці?


Ви працюєте з періодичним кроном? Успішно завершується?
mpdonadio

Так, cron успішно працює.
Суміт Мадан

Що змушує вас думати, що двигун таблиці кеш-пам'яті буде змінений під час оновлення? Це не був мій досвід.
кейт

Я маю на увазі, якщо я модернізую drupal, кеш-таблиця буде змінена з MyIasm на Innodb. Ні???
Суміт Мадан

Відповіді:


16

Прочитайте та дотримуйтесь цієї публікації ; це передбачає InnoDB.

Зокрема, дивіться частину про те, щоб додати наступне у файл settings.php.

$databases['default']['default']['init_commands'] = array('isolation' => "SET SESSION tx_isolation='READ-COMMITTED'");

У даному посиланні він розмовляє лише за тупиком cache_field. Але на моєму сайті трапляється тупик та час очікування блокування на всіх таблицях кешу.
Суміт Мадан

Ей, Майку, дякую за посилання. Я перевірив ваш інший пост і додав це до settings.php $databases['default']['default']['init_commands'] = array('isolation' => "SET SESSION tx_isolation='READ-COMMITTED'");вирішив мою проблему на моєму локальному сервері. Я ще не перевіряв це на живому сервері. Підтвердьте, що він не видасть жодних проблем у майбутньому, якщо він буде перевірений вами? Я використовую комерційний удар.
Суміт Мадан

Я використовую всі рекомендації в прямому ефірі, чую повідомлення про те, що drupal.org використовує прочитане. Також не забудьте скористатися останньою версією d7, оскільки вона також має виправлення в тупиковому стані.
mikeytown2

1
Mikeytown2 Із того, що ви говорите, я зрозумів, що зараз у версії drupal 7 це вирішено? цікаво про це, як я все ще зіткнувся з такою ж проблемою в останній версії.
Марко Блажекович

1
@MarkoBlazekovic Більшість найважливіших проблем із тупиковою ситуацією наполовину вирішені у D7. Існують ще деякі проблеми з блокуванням та блокуванням метаданих у таблицях кешу бази даних. Я працюю над модулем для їх вирішення: drupal.org/project/apdqc . APDQC з мого тестування вирішує майже кожну проблему блокування бази даних щодо таблиць кешу. Обов’язково виправте всі проблеми у звіті про стан після його встановлення. Зауважте, що цей модуль все ще знаходиться в значній розробці, оскільки я ще не повинен випустити його не розроблювану версію.
mikeytown2

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.