LINUX.ORG.RU
решено ФорумAdmin

Помогите запустить PostgreSQL Pro 1C

 ,


1

2

В общем пытаюсь запустить PostgreSQL 11 так :

/opt/pgpro/1c-11/bin/postgres -D /Databases_11/ > /var/log/postgresql/postgresql-11.1-Database_11.log 2>&1 &

Говорит что порт уже занят. Поправил конфиг, который лежит в каталоге /Databases_11/, там же лежит и база. Не пойму в чем дело.

Для 9.6 это работало, так же описан запуск в официальной документации.

/usr/lib/postgresql/9.6/bin/postgres -D /etc/postgresql/9.6/Slave/ >/var/log/postgresql/postgresql-9.6-Slave.log 2>&1 &

Другое дело, что в 9.6 в каталоге /etc/postgresql/9.6/Slave/ нет данных, только конфиги.



Последнее исправление: Shulman (всего исправлений: 2)

Ты шо, извращенец? Зачем ты запускаешь его руками? Он должен нормально быть оформлен как сервис и убиваться/запускаться, как всё остальное через systemctl, /etc/init.d/ или что там у тебя. А так всё похоже на то, что он у тебя уже запущен и ты его не прибил.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Да!

А так всё похоже на то, что он у тебя уже запущен и ты его не прибил.

А может я хочу 2 постреса? Надо мне так.

К тому же бывают случаи когда надо запускать вручную, ибо systemd не дает ему восстанавливаться.

Конечно в дальнейшем будем через systemd (init.d).

Shulman
() автор топика
Ответ на: комментарий от Anoxemian

ты поехавший?

Я залез в конфиг и поправил порт на 5434, но он в лог мне упорно продолжает писать про 5432, не пойму почему

Shulman
() автор топика
Ответ на: комментарий от Anoxemian

Ссылку которую ты дал я видел. Там написано:

путь к каталогу данных сохраняется в файле /etc/default/postgrespro-standard-11

У меня в этом каталоге нет такого файла.

Кроме того написано:

подключиться к только что созданной базе данных, находящийся в каталоге данных /var/lib/pgpro/std-11/data.

Я создал еще один кластер, в каталоге /Databases_11/

Shulman
() автор топика
Последнее исправление: Shulman (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Насколько я понимаю, у меня второй (старый) Postgres будет только до момента конвертации данных в 11 версию.

Давайте разберемся с моей схемой, докер ковырять пока что некогда... хотя если управлюсь до выходных с этой задачей, можно будет в субботу поковырять докер

Shulman
() автор топика
Последнее исправление: Shulman (всего исправлений: 1)
Ответ на: комментарий от Shulman

Давайте разберемся с моей схемой

Ставлю бутылку пива на то, что у тебя 11 читает конфиг 9-го.

докер ковырять пока что некогда

Тебе быстрее докер расковырять, чем выковыривать что там не так в системе. Тут всё заточено так, что у тебя только один постгресс и они не ставятся, как в венде, каждый в свой каталог. Ты пытаешься плыть против потока.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

они не ставятся, как в венде, каждый в свой каталог

В доках написано что такое А) Возможно, Б) Ставятся именно независимо, каждый в свой каталог.

Shulman
() автор топика
Ответ на: комментарий от crutch_master
/opt/pgpro/1c-11/bin/postgres -D /Databases_11 -p 5434 > /var/log/postgresql/postgresql-11.1-Database_11.log 2>&1 &

Допустим я его так запустил. Не пойму что дальше, почему не читается postgresql.conf?

Shulman
() автор топика
Ответ на: комментарий от Shulman

В доках написано что такое А) Возможно, Б) Ставятся именно независимо, каждый в свой каталог.

А разработчики твоей убунты запихали его куда захотели. И сейчас ты будешь с ними бороться.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Да, у меня Debian 9, и репа разработчиков специально для него, так что тут должно быть все верно.

Shulman
() автор топика
Ответ на: комментарий от crutch_master
root@PostgresTest:/home/maintainer# su postgres
postgres@PostgresTest:/home/maintainer$ psql -p 5434
psql (11.1)
Введите "help", чтобы получить справку.

postgres=# SHOW config_file;
                config_file
-------------------------------------------
 /var/lib/pgpro/1c-11/data/postgresql.conf
(1 строка)

Откуда он его берет?

Shulman
() автор топика
Последнее исправление: Shulman (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Я разобрался, теперь мой конфиг читается. Я просто не раскоментировал параметр и он брался по значению по умолчанию.

Далее.

Не понятно что с дефолтным скриптом запуска.

Shulman
() автор топика
Ответ на: комментарий от crutch_master
root@PostgresTest:/home/maintainer# cat /etc/init.d/postgrespro-1c-11
#!/bin/sh
# Start/stop the Postgres Pro 1c database server.
#
### BEGIN INIT INFO
# Provides:             postgrespro-1c-11
# Required-Start:       $local_fs $remote_fs $network $time
# Required-Stop:        $local_fs $remote_fs $network $time
# Should-Start:         $syslog
# Should-Stop:          $syslog
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Postgres Pro database server
### END INIT INFO

. /lib/lsb/init-functions

PGMAJORVERSION=11
PGPREVMAJORVERSION=10

NAME=postgrespro-1c-11

# For SELinux we need to use 'runuser' not 'su'
if [ -x /sbin/runuser ]
then
    SU=runuser
else
    SU=su
fi

# Define variable for locale parameter:
LOCALEPARAMETER=$2

# Set defaults for configuration variables
BINDIR=/opt/pgpro/1c-11/bin
PGDATA=/Databases_11
PGLOG=/var/log/postgresql/postgresql-11.1-Database_11.log
lockfile=/var/run/${NAME}.lock
pidfile="/var/run/${NAME}.pid"

#export PGDATA

script_result=0

start(){
    $SU -l postgres -c "${BINDIR}/check-db-dir $PGDATA"

    log_daemon_msg "Starting ${NAME} service" "postgrespro-1c-11"
    $SU -l postgres -c "${BINDIR}/postmaster -D '$PGDATA' ${PGOPTS} &" >> "$PGLOG" 2>&1 < /dev/null
    sleep 2
    pid=`head -n 1 "$PGDATA/postmaster.pid" 2>/dev/null`
    if [ "x$pid" != x ]
    then
        kill -0 $pid
        log_end_msg $?
        touch "$lockfile"
        echo $pid > "$pidfile"
        echo
    else
        log_end_msg 1
        script_result=1
    fi
}

stop(){
    log_daemon_msg "Stopping ${NAME} service" "postgrespro-1c-11"
    if [ -e "$lockfile" ]
    then

        $SU -l postgres -c "${BINDIR}/pg_ctl stop -D '$PGDATA' -s -m fast" > /dev/null 2>&1 < /dev/null
        ret=$?
        if [ $ret -eq 0 ]
        then
            log_end_msg $ret
            rm -f "$pidfile"
            rm -f "$lockfile"
        else
            log_end_msg $ret
            script_result=1
        fi
    else
        # not running; per LSB standards this is "ok"
        log_end_msg 0
    fi
    echo
}

restart(){
    stop
    start
}

condrestart(){
    [ -e "$lockfile" ] && restart || :
}

reload(){
    $SU -l postgres -c "${BINDIR}/pg_ctl reload -D '$PGDATA' -s" > /dev/null 2>&1 < /dev/null
}

promote(){
    $SU -l postgres -c "${BINDIR}/pg_ctl promote -D '$PGDATA' -s" > /dev/null 2>&1 < /dev/null
}

# See how we were called.
case "$1" in
  start)
      start
      ;;
  stop)
      stop
      ;;
  status)
      $SU -l postgres -c "${BINDIR}/pg_ctl status -D '$PGDATA'"
      script_result=$?
      ;;
  restart)
      restart
      ;;
  promote)
      promote
      ;;
  condrestart|try-restart)
      condrestart
      ;;
  reload)
      reload
      ;;
  force-reload)
      restart
      ;;
  *)
      echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|promote}"
      exit 2
esac

exit $script_result

Shulman
() автор топика
Ответ на: комментарий от crutch_master

Что делать? ))))

Почему в 9.6 все так замечательно автоматизировано, а в 10 и 11 все через ж!

Shulman
() автор топика
Ответ на: комментарий от crutch_master

Осиль докер тогда.

Бессмысленный совет. На одном компьютере может работать несколько экземпляров PostgreSQL. Достаточно, чтобы у них были разные порты и разные папки. Их можно задавать при установке PostgreSQL. Порт потом можно менять. Правильно было бы посоветовать освоить смену порта.

Partisan ★★★★
()
Ответ на: комментарий от crutch_master

Да, я разобрался... вот блин почему все в спешке всегда делается... ладно хоть не продакшн

Shulman
() автор топика
Ответ на: комментарий от Partisan

Правильно было бы посоветовать освоить смену порта.

Разобрался... сейчас надо решить чтобы служба стартовала при старте системы. Пока что непонятное происходит

Shulman
() автор топика
Ответ на: комментарий от crutch_master

Советовать докер в случае, когда нужно просто запустить программу с немного иными ключами/конфигом, — плохо.

theNamelessOne ★★★★★
()

я победил. все получилось. все таки чтение документации и изложение ее на ветке форума очень помогают. всем спасибо.

отдельное спасибо разработчикам, которые так поломали отличную идею автоматизации создание кластеров. или может я все же чего то не понял

Shulman
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.