Помогите разобраться с периодическим запуском заданий

ankalex
Дата: 25.02.2015 11:26:38
Доброго времени суток!
Ранее работал с разными БД (Oracle, DB2, Firebird), сейчас появилась необходимость по-быстрому разобраться с PostgreSQL, а именно: с запуском джобов.
Итак, есть Linux-сервер, на нем админ установил postgres, pgadmin и pgagent.
У меня Win7, я установил pgadmin, соединяюсь с БД нормально, теперь хочу создать тестовое задание, чтобы оно выполнялось раз в несколько минут.
Я его должен создавать через pgadmin у себя на компе, или обязательно на сервере?
Попробовал у себя создать задание, оно создается, пишет время следующего запуска, но это время проходит, и ничего не меняется (ни время последнего запуска, ни время следующего запуска).
mad_nazgul
Дата: 25.02.2015 12:04:23
ankalex
Доброго времени суток!
Ранее работал с разными БД (Oracle, DB2, Firebird), сейчас появилась необходимость по-быстрому разобраться с PostgreSQL, а именно: с запуском джобов.
Итак, есть Linux-сервер, на нем админ установил postgres, pgadmin и pgagent.
У меня Win7, я установил pgadmin, соединяюсь с БД нормально, теперь хочу создать тестовое задание, чтобы оно выполнялось раз в несколько минут.
Я его должен создавать через pgadmin у себя на компе, или обязательно на сервере?
Попробовал у себя создать задание, оно создается, пишет время следующего запуска, но это время проходит, и ничего не меняется (ни время последнего запуска, ни время следующего запуска).


На сколько я помню pgAgent это фишка чисто pgAdmin (точнее отдельная утилитка)
А так для Linux на сервере использовать:
cron + bash-script+psql
<:o)
ankalex
Дата: 25.02.2015 12:21:02
Да, про cron + psql я в курсе. Но удобнее же контролировать джобы непосредственно в БД.
Вероятно, надо создавать джобы именно на том компе, где установлен pgagent.
Но хотелось бы уточнить этот момент.
ээээээ
Дата: 25.02.2015 13:19:41
ankalex,

"пгагент" в пжодмине -- морда к пгагенту(сервису) конкретного инстанса (оно у вас в ветке сервера, если присмотритесь. содержимое его [держит данные и логи] -- в "каталоге" pgagent той бд, которую вы назначили как "бд обслуживания" [-- можете писать туда задания и шаги руками[SQL], в обход мордочки] .

пжогент это отдельный сервис [lдемон/воркер/etc], а не фишка пжодмин. но последний умеет изобразить "морду" к первому. хотя и кривовато местами (не оптимизируемый запрос заданий с результатом последнего запуска-- в частности [руки им вырвать из того места, откуда произросли]).

Можете, кстати, в заданиях указывать внешнюю строку подключения -- оно будет лазать в другие инстансы по ней, и исполнять sql там.
Maxim Boguk
Дата: 25.02.2015 13:47:21
ankalex
Да, про cron + psql я в курсе. Но удобнее же контролировать джобы непосредственно в БД.
Вероятно, надо создавать джобы именно на том компе, где установлен pgagent.
Но хотелось бы уточнить этот момент.


pgagent тот же типа-крон только с управлением не через crontab а через sql
насколько так удобнее - вопрос спорный
ankalex
Дата: 25.02.2015 14:57:40
Да, я понимаю, что pgagent - посредник для доступа к win-службе управления заданиями или cron'у в linux'е через pgadmin.
Вопрос в том, можно ли с некого компа управлять заданиями через pgadmin, если pgagent установлен не на этом компе, а на самом сервере с БД. Пока у меня не получается.
ээээээ
Дата: 25.02.2015 15:12:17
ankalex
Да, я понимаю, что pgagent - посредник для доступа к win-службе управления заданиями или cron'у в linux'е через pgadmin.
Вопрос в том, можно ли с некого компа управлять заданиями через pgadmin, если pgagent установлен не на этом компе, а на самом сервере с БД. Пока у меня не получается.

вы управляете не пг--аентом, а редактируете его данные в схеме пгагент той бд, в дереве которой видите пгагента.

а сам пгагент -- ищете на машине с агентом процесс pgagent-а, если его нет -- стартуете, читаете его логи (не в пгадмине, а на той машине, где)
удобно -- если он прописан сервисом в /etc/init.d/ -- читаете текст, понимаете, где что хранится (логи, прочее). Иначе -- изучать. как он поставился у вас.
ээээээ
Дата: 25.02.2015 15:15:41
ankalex
Да, я понимаю, что pgagent - посредник для доступа к win-службе управления заданиями или cron'у в linux'е через pgadmin.

кажется таки вы неверно понимате -- он сам по себе демон/служба/сервис. Ищите -- да обрящете.

у вас какой полосатый мух, который ОС , кстати ?
ankalex
Дата: 25.02.2015 16:01:58
У меня Win7, БД и pgagent установлены на linux'е.
Т.е. если менять данные в БД с помощью pgadmin'а, то демон pgagent'а установит запуск заданий cron'ом в соответствии с моими изменениями?
ээээээ
Дата: 25.02.2015 16:56:27
ankalex
У меня Win7, БД и pgagent установлены на linux'е.
Т.е. если менять данные в БД с помощью pgadmin'а, то демон pgagent'а установит запуск заданий cron'ом в соответствии с моими изменениями?

нет, если он запущен на ОС линукс (какой из кучи линуксов, кстати ?) -- как процесс -- то при рулении его данными из пгодмина вы будете менять ЕГО таблицы заданий и его же расписания.

Никакого крона он дёргать не будет, он сам умеет к постгресам ходить. Он, какэвотам, "афтономный", во.