Случайно выбрал пункт меню на таблице Разрешить тригеры и таблица перестала отвечать на запросы.
PostgreSQL установлен на хостинге Linux CentOS, администрирую с Windows с локальной машины. Поставил, начал изучать, понравилось, все получается, но случайно сделал это действие. Теперь при любом обращении к этой таблице администратор зависает.
Помогите пожалуйста. Как это исправить? Если есть возможность исправить это удаленно сообщите пожалуйста. Не хотелось бы лесть на сервак, я в нем плохо ориентируюсь. Вошел в панель управления сервера, думал, может перезапустить PostgreSQL, а его в панели даже нет. Мне его на сервак администраторы ставили через консоль.
Буд признателен за вашу помощь.
Попытался удалить базу, говорит, что не может ее удалить т.к. запущено 9 сессий. Может можно где уменьшить максимальное время сессии, чтобы они сами собой прерывались?
pgAdmin - это зло. Что
pgAdmin - это зло. Что конкретно делает "разрешить триггеры" в pgAdmin мне, например. неизвестно.
Пользуйтесь консольной программой psql.
Удалить базу пока вы к ней подключены разумеется не получится.
Исправить проблему можно попробовать, например пересозданием проблемной таблицы.
Как сбросить ранее запущенные сессии если они повисли?
Как сбросить ранее запущенные сессии если они повисли? Мне конечно перезапустили PostgreSQL на сервере, но на будущее нужно знать как обламать повисшие сессии? Так же мне администраторы установили тайм лимит сессии 30 секунд. Теперь я думаю, а не будет ли сервер обрывать соединение через 30 секунд? Если будет то все соединения с одного ip адреса или текущего пользователя?
Основной вопрос: Как прервать повисшие сессии (или вообще все сессии)?
Например, люди работают в базе, мне срочно нужно добавить поле (или внести какие то изменения в базу), его нельзя будет добавить т.к. таблица будет занята?
Мне как администратору все равно что будет на клиентской машине, мне нужен полный контроль, как это сделать?
но на будущее нужно знать как
Это может сделать только администратор. Однако, PostgreSQL замечен в зависших сессиях не был.
Если же вы откываете соединение через pgAdmin и потом держите его (pgAdmin) запущенным, то соответственно и сессия за ним сохраняется - это не зависание.
Не будет
С одного IP один и тот же пользователь может открыть несколько соединений. Таймаут для каждого соединения ведётся свой.
Так. Вижу, что дальнейшие объяснения делать бесполезно. Советую перед тем как задавать подобные вопросы прокурить доки о том, что такое клиент-серверная архитектура и о том как вообще работает SQL-сервер, чтобы не выглядеть нелепо.
прошу вас меня понять
прошу вас меня понять правильно, я покурил доки еще лет 10 назад. Из своего опыта хочу сказать что в каждом сервере есть свои правила.
Последний мой вопрос ни как к общему понимаю клиент - сервер не относится.
Даже один и тот же сервер например PostgreSQL под виндой работает совершенно по другому нежели под линуксом.
Не хочу вдаваться в полемику, просто хочу заметить, что не все присутствующие люди на форуме "погулять вышли", у каждого есть свой опыт за плечами и прежде чем отправлять человека курить доки, вы бы могли дать ссылки с какой стороны начинать "их курить", а не относиться к людям предвзято.
Если спрашиваю, значит не смог найти ответ в другом месте или не смог найти логического понимания в написанном.
Пожалуйста наберитесь терпения когда публикуете ответы.
Даже один и тот же сервер
Даже один и тот же сервер например PostgreSQL под виндой работает совершенно по другому нежели под линуксом
Может быть просветите меня в чём разница в работе PostgreSQL под виндой и линуксом? А то, не поверите, я что-то этого в упор не наблюдаю. Разница есть в установке и частично в стыковке PostgreSQL с операционной системой. Но чтобы работали по-разному - для меня это новость!
вы бы могли дать ссылки с какой стороны начинать "их курить", а не относиться к людям предвзято.
Ссылки на доки висят сверху любой страницы. Начинать курить можно с любых, но центральной докой является Мануал.
Если спрашиваю, значит не смог найти ответ в другом месте или не смог найти логического понимания в написанном.
Вы спрашиваете такие вещи, которые должны быть известны любому, кто берётся админить PostgreSQL. И это не сакральные знания - всё это описано в мануале, хотя и на английском языке. Прочти вы мануал, таких вопросов бы не было. Если вы не можете найти логического понимания в написанном, то приводите ЦИТАТУ где и что написано и говорите, что не поняли.
а не относиться к людям предвзято
Неоднократно писал и буду писать - я отношусь предвзято только к тем, кто не хочет читать документацию и разбираться, предпочитая, чтобы ему всё объяснили на пальцах те, кто читал. Буду относиться предвзято к тем, кто не хочет пробовать и пытаться понять самостоятельно, а сразу бежит задавать вопросы. Такие люди крадут время отвечающих и у тех, кто действительно нуждается в помощи.
Вы сами у себя крадете время
Вы сами у себя крадете время расписывая такие меморандумы. От вас требовался ответ ДА или НЕТ, а вы написали аж на две страницы (ваших политических взглядов). Можете дальше продолжать в том же духе
Я пишу не только для вас, но
Я пишу не только для вас, но и для других.
Если бы мне нужно было общаться только с вами, то проблема решилась бы простым удалением поста и баном или удалением пользователя заодно.
Могу предположить, что
Могу предположить, что команда Enable triggers выполняет инструкцию enable trigger (вкл./выкл.) выполнения уже созданного триггера для таблицы. Скорее всего для таблицы созданы триггеры, которые каким-то образом влияют на выполенение запросов к этой таблице. А просто Disable triggers не пробовали? Зачем сразу удалять базу.