|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
сникерсТут дети интересуются что плохого в pg_sleep(100), если он выполняется на сервере из крона? если в этот момент одмин переведет часы на час /год назад, вы будете ждать вашего слипа час/год соответственно. даже 5 минут м.б. роскошью. потому как пг_слип написан колхозниками, не знающими о наличии (и доступности) монотонного "внутреннего" времени. и зачем вам ещё один таймер в кроне ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2017, 19:09 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
сникерсЭто все в одном блоке EXECUTE через ; каждая команда. ой, держите меня семеро. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2017, 19:11 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
qwwqсникерсЭто все в одном блоке EXECUTE через ; каждая команда. ой, держите меня семеро. в общем не работает так, даже когда слип 5 минут Как удалить эти таблицы без дедлока? о_О ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2017, 10:20 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
может как-то можно вычислить коннект, который использует эту таблицу и кильнуть его? Но я не знаю как нужный коннект вычислить ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2017, 10:27 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
qwwq, Дать товарищу дробовик для отстреливания ног или обойдемся без членовредительства? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2017, 10:29 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
ursidoqwwq, Дать товарищу дробовик для отстреливания ног или обойдемся без членовредительства? Не жалко вам свои ноги-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2017, 10:30 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
ursidoqwwq, Дать товарищу дробовик для отстреливания ног или обойдемся без членовредительства?давайте челу явно не хватает рубцов и потерянных конечностей как стимула к размышлению а медитировать над безопасными тестами видимо не полачаецца кстати, баунти, вы следить за pg_stat_activity / pg_lock не пробовали ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2017, 11:47 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
В общем, вопрос актуален ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 11:25 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
делал так: 1) NO INHERIT 2) килл всех сессий которые в pg_lock по удаляеммой таблички 3)дроп. Проработал несколько дней нормально. Потом появился дедлок снова. Затем сделал так: 1) NO INHERIT 2) килл всех сессий которые в pg_lock по удаляеммой таблички 3) пауза 30 сек 4)килл всех сессий которые в pg_lock по удаляеммой таблички 5) дроп все равно дедлок. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 11:28 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
сникерсделал так: 1) NO INHERIT 2) килл всех сессий которые в pg_lock по удаляеммой таблички 3)дроп. Проработал несколько дней нормально. Потом появился дедлок снова. Затем сделал так: 1) NO INHERIT 2) килл всех сессий которые в pg_lock по удаляеммой таблички 3) пауза 30 сек 4)килл всех сессий которые в pg_lock по удаляеммой таблички 5) дроп все равно дедлок. begin; set local deadlock_timeout to '1h'; drop ... commit; ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 11:33 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
Maxim Bogukсникерсделал так: 1) NO INHERIT 2) килл всех сессий которые в pg_lock по удаляеммой таблички 3)дроп. Проработал несколько дней нормально. Потом появился дедлок снова. Затем сделал так: 1) NO INHERIT 2) килл всех сессий которые в pg_lock по удаляеммой таблички 3) пауза 30 сек 4)килл всех сессий которые в pg_lock по удаляеммой таблички 5) дроп все равно дедлок. begin; set local deadlock_timeout to '1h'; drop ... commit; ого, круто! т.е. тут deadlock_timeout = 1 час включится только НА ВРЕМЯ ТРАНЗАКЦИИ? и в течении этого часа drop table будет ждать освобождение таблицы от блокировки и пытаться ее удалить? deadlock_timeout в БД останится такимже как был? (1 сек) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 11:42 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
сникерс, Если не вникать в детали - то да. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 11:44 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
Maxim Bogukсникерс, Если не вникать в детали - то да. Спасибо! Просто пытаюсь разобраться и желательно не положить сервер Попробую - отпишусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 11:46 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
Пока такая ошибка: Код: sql 1. 2. 3.
ищу как обойти. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 12:00 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
сникерсЗатем сделал так: 1) NO INHERIT 2) килл всех сессий которые в pg_lock по удаляеммой таблички 3) пауза 30 сек 4)килл всех сессий которые в pg_lock по удаляеммой таблички 5) дроп это посильнее фауста гётте а крестиком не пробовали ? или гладью кстати вы там дампы в то же время не снимаете часом ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 12:17 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
батончик, вы не можете объяснить, какого хера вы внутри транзакции делаете паузы ? чего вы хотите ими добиться ? добро бы вы рулили через паузы другими сеансами дблинк-а -- это было бы понятно. хотя там проще выставить сеансу дблинка statement_timout , а не рулить асинхронщиной в цыкле ожыдания. покажите содержимое стат-активити и локов на момент вислого дропа, можно не все, а имеющее отношение к проблеме. м.б. что-то станет ясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 12:30 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
Так работает: Код: sql 1. 2. 3. 4.
А внутри процедуры не работает: Код: sql 1. 2. 3.
Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 13:47 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
qwwqвы не можете объяснить, какого хера вы внутри транзакции делаете паузы ? А вдруг кто-то недобитый останется ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 13:49 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
qwwq,а вы с какого города? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 13:57 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
сникерсqwwqвы не можете объяснить, какого хера вы внутри транзакции делаете паузы ? А вдруг кто-то недобитый останется ?а вдруг кто-то новый поднимется ? или старый переподнимется ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 13:57 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
qwwqсникерспропущено... А вдруг кто-то недобитый останется ?а вдруг кто-то новый поднимется ? или старый переподнимется да! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 13:57 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
сникерс, Вам английским языком написано: ERROR: cannot begin/end transactions in PL/pgSQL ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 13:58 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
ursidoсникерс, Вам английским языком написано: ERROR: cannot begin/end transactions in PL/pgSQL Как же ее впихнуть в процедуру? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 13:59 |
|
Как удалить таблицу и не стать жертвой взаимоблокировки?
|
|||
---|---|---|---|
#18+
ursido, чел не понимает, что BEGIN; в SQL (SQL.BEGIN) и BEGIN в plpgSQL (plpgSQL.BEGIN) разные слова разных языков, и означают разное. это в поцгрессе сплошь и рядом например END; EXECUTE; и т.п. -- сыршенно разные слова. вплоть до SELECT .... INTO . Из за чего требуется отдельная альтернатива --"CREATE table .... as select ...." ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2017, 14:05 |
|
|
start [/forum/topic.php?fid=53&msg=39469018&tid=1996390]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 330ms |
total: | 480ms |
0 / 0 |