Summary: | 8.3: Невозможность запуска и инициализации базы | ||
---|---|---|---|
Product: | Postgres@Etersoft | Reporter: | Mikhail Krylatykh <delayer> |
Component: | пакеты | Assignee: | Шильников Андрей <shan> |
Status: | CLOSED INVALID | QA Contact: | |
Severity: | trivial | ||
Priority: | P4 | CC: | boris, lav, shan, yurifil |
Version: | не указана | Keywords: | ИНТЕРРА |
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Debian GNU/Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 1767 | ||
Attachments: |
исправленный init-скрипт
ошибка |
Description
Mikhail Krylatykh
2008-09-25 16:37:06 MSD
cat /var/lib/pgsql/pgstartup.log (In reply to comment #1) > cat /var/lib/pgsql/pgstartup.log > initdb: нет доступа к директории "/var/lib/pgsql/data": Permission denied Файлы, сопутствующие этой системе баз данных, будут принадлежать пользователю "postgres". Этот пользователь также должен быть владельцем процесса сервера. Кластер баз данных будет инициализирован с локалью ru_RU.UTF-8. Кодировка базы по умолчанию установлена в UTF8. The default text search configuration will be set to "russian". три раза pg1c# ls -l /var/lib/pgsql/ итого 12 drwx------ 2 root root 4096 2008-09-22 17:09 backups drwx------ 3 postgres postgres 4096 2008-09-25 16:34 data -rw-r--r-- 1 root root 1890 2008-09-25 16:34 pgstartup.log > pg1c# ls -l /var/lib/pgsql/
> итого 12
> drwx------ 2 root root 4096 2008-09-22 17:09 backups
> drwx------ 3 postgres postgres 4096 2008-09-25 16:34 data
> -rw-r--r-- 1 root root 1890 2008-09-25 16:34 pgstartup.log
>
судя по этому, права верные. сделайте
rm -rf /var/lib/pgsql/data/*
и снова initdb
делаль уже... pg1c# rm -rf /var/lib/pgsql/data/* pg1c# /etc/init.d/postgresql initdb Initializing database: [FAILED] cat /var/lib/pgsql/pgstartup.log выдает аналогичный текст стоп. а почему postgres 3.3? это экспериментальная сборка (недопиленная еще) и с сельтой она не работает пока Андрей, в Альте воспроизводится? какая лежала, такую и скачал ;) Сельту мне не нужно, этот постгрес будет работать с 1C8.1:Управление торговлей. Коли эта еще в процессе подпила, посоветуйте линк на стабл версию лежит их там 4 штуки-) берите из 8.2.4 или 8.2.9 но на самом деле это от 1с зависит... сервер 1с 8.3.3 еще не поддерживает, вроде для выявления проблемы на Debian c 8.3 надо вывод sh -x /etc/init.d/postgresql initdb pg1c# sh -x /etc/init.d/postgresql initdb + PGVERSION=8.3.3 ++ echo 8.3.3 ++ sed 's/^\([0-9]*\.[0-9]*\).*$/\1/' + PGMAJORVERSION=8.3 + PGENGINE=/usr/bin + PGPORT=5432 + PGDATA=/var/lib/pgsql/data + '[' -x /sbin/runuser ']' + SU=su + '[' -f /var/lib/pgsql/data/PG_VERSION ']' + PGDATA=/var/lib/pgsql/data + PGLOG=/var/lib/pgsql/pgstartup.log + '[' -f /etc/sysconfig/pgsql/ ']' + export PGDATA + export PGPORT + '[' -f /usr/bin/postmaster ']' + script_result=0 + SERVNAME=postgresql + OUTFORMAT=/etc/init.d/outformat + '[' -x /etc/init.d/outformat ']' + OUTFORMAT=/etc/init.d/postgresql.outformat + which tput + test -x /etc/init.d/postgresql.outformat + . /etc/init.d/postgresql.outformat ++ '[' -n xterm ']' ++ export TERM ++ : '{RES_OFFSET:=8}' ++ '[' -n '' ']' ++ RES_OFFSET=8 ++ : 0 1 2 3 4 5 6 7 ++ typeset -f ++ grep declare + TYPESET= ++ basename /etc/init.d/postgresql + NAME=postgresql + '[' p = S -o p = K ']' + case "$1" in + initdb + '[' -f /var/lib/pgsql/data/PG_VERSION ']' + check_shmmax + PGCONFNAME=postgresql.conf + '[' -e /var/lib/pgsql/data/postgresql.conf ']' + PGCONF=/usr/share/pgsql/postgresql.conf.sample ++ cat /usr/share/pgsql/postgresql.conf.sample ++ grep 'shared_buffers = ' ++ head -n1 ++ sed 's/^.*=\ //;s/MB.*$//' + PG_SHBUF=32 ++ sysctl -n kernel.shmmax + SHMMAX=134217728 ++ expr 32 '*' 1024 '*' 1024 '*' 4 + SHMMAX_MIN=134217728 + '[' 134217728 -lt 134217728 ']' + echo -n 'Initializing database: ' Initializing database: + '[' '!' -e /var/lib/pgsql/data -a '!' -h /var/lib/pgsql/data ']' + chown postgres:postgres /var/lib/pgsql/data + chmod go-rwx /var/lib/pgsql/data + su -l postgres -s /bin/sh -c 'LANG=ru_RU.UTF-8 /usr/bin/initdb --pgdata='\''/var/lib/pgsql/data'\'' --auth='\''ident sameuser'\''' + mkdir /var/lib/pgsql/data/pg_log mkdir: невозможно создать каталог `/var/lib/pgsql/data/pg_log': File exists + chown postgres:postgres /var/lib/pgsql/data/pg_log + chmod go-rwx /var/lib/pgsql/data/pg_log + '[' -f /var/lib/pgsql/data/PG_VERSION ']' + '[' '!' -f /var/lib/pgsql/data/PG_VERSION ']' + failure + MOVE_TO_COL + '[' -n '' ']' + COLUMNS=80 + local pos=72 + '[' 72 -le 0 ']' + tput -- hpa 72 + echo -n '[' [+ SETCOLOR_FAILURE + echo bold + echo setaf 1 + tput -S + echo -n FAILED FAILED+ SETCOLOR_NORMAL + echo op + echo sgr0 + tput -S + echo ']' ] + echo + exit 0 http://online.1c.ru/catalog/files/release/3066759/?phrase_id=55838 Технологическая платформа 1С:Предприятия 8.1 Версия 8.1.12.98. Архитектура x86 для Debian от 26.08.2008 вот, собственно. su -l postgres -s /bin/sh -c 'LANG=ru_RU.UTF-8 /usr/bin/initdb --pgdata=/var/lib/pgsql/data --auth=ident sameuser' а если руками запустить? (In reply to comment #11) > http://online.1c.ru/catalog/files/release/3066759/?phrase_id=55838 > > Технологическая платформа 1С:Предприятия > 8.1 Версия 8.1.12.98. Архитектура x86 для Debian от > 26.08.2008 > вот, собственно. > http://www.v8.1c.ru/overview/postgres_patches_notes.htm вот здесь описано кто с какими рерсиями может работать. в нашем с Вами случае это версии сборок Etersoft 8.2.4 или 8.2.9 pg1c# su -l postgres -s /bin/sh -c 'LANG=ru_RU.UTF-8 /usr/bin/initdb --pgdata=/var/lib/pgsql/data --auth=ident postgres' Файлы, сопутствующие этой системе баз данных, будут принадлежать пользователю "postgres". Этот пользователь также должен быть владельцем процесса сервера. Кластер баз данных будет инициализирован с локалью ru_RU.UTF-8. Кодировка базы по умолчанию установлена в UTF8. The default text search configuration will be set to "russian". создание директории postgres ... ок creating subdirectories ... ок выбирается значение по-умолчанию для max_connections ... 100 selecting default shared_buffers/max_fsm_pages ... 32MB/204800 создание конфигурационных файлов ... ок создание базы template1 в postgres/base/1 ... ок initializing pg_authid ... ок initializing dependencies ... ок создание системных представлений ... ок loading system objects' descriptions ... ок создание конверсий ... ок creating dictionaries ... ок установка привилегий для встроенных объектов ... ок создание информационной схемы ... ок сборка мусора в базе template1 ... ок копирование template1 в template0 ... ок copying template1 to postgres ... ок Success. You can now start the database server using: /usr/bin/postgres -D postgres or /usr/bin/pg_ctl -D postgres -l logfile start yagoda:/home/interra/!/pg1c# /etc/init.d/postgresql start Starting postgresql service: pg_ctl: could not open PID file "/var/lib/pgsql/data/postmaster.pid": Permission denied Initializing database: mkdir: невозможно создать каталог `/var/lib/pgsql/data/pg_log': File exists [FAILED] /var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first. [FAILED] pg1c# su - postgres postgres@pg1c:~$ /usr/bin/pg_ctl -D postgres -l logfile start server starting ~$ ps aux | grep postgres postgres 16165 0.0 0.0 3712 1068 pts/2 S 18:43 0:00 su - postgres postgres 16166 0.2 0.0 5436 2980 pts/2 S 18:43 0:00 -su postgres 16189 0.2 0.1 46184 3852 pts/2 S 18:43 0:00 /usr/bin/postgres -D postgres postgres 16191 0.0 0.0 46184 984 ? Ss 18:43 0:00 postgres: writer process postgres 16192 0.0 0.0 46184 908 ? Ss 18:43 0:00 postgres: wal writer process postgres 16193 0.0 0.0 46184 1172 ? Ss 18:43 0:00 postgres: autovacuum launcher process postgres 16194 0.0 0.0 8440 980 ? Ss 18:43 0:00 postgres: stats collector process postgres 16233 0.0 0.0 3432 996 pts/2 R+ 18:44 0:00 ps aux postgres 16234 0.0 0.0 2884 780 pts/2 S+ 18:44 0:00 grep postgres однако pg1c# /etc/init.d/postgresql stop Stopping postgresql service: [PASSED] То есть после ручной инициалицации, предложенной вами, вручную же стартованный сервак запустился, и работате...а скрипт идет в лес. Аналогично, если пытаться запустить стопнутый сервер через инит-скрипт. тот же файлед. Created attachment 756 [details]
исправленный init-скрипт
попробуйте этот скрипт для инициализации
без изменений (In reply to comment #8) > лежит их там 4 штуки-) > берите из 8.2.4 или 8.2.9 8.2.9 собрана только для deb5.0 в папку с 8,2,4 зайти не могу, получая странное сообщение о том что no route to host, странное потому, что во все другие хожу без вопросов. поставил 8.2, при инициализации базы такие же ошибки, как и описанные выше для 8,3,3. Анализ показал, что проблема заключалась (для случая 8,2) в том, что на папку /var/lib/pgsql выставляются при установке постгреса права root.root 0700, а надо бы 0755. Для случая с 8,3,3 данное решение не проверял. соберите 8,2,9 для deb4.0 что ли =) (In reply to comment #19) > соберите 8,2,9 для deb4.0 что ли =) > Юра, собери, пжлста. > 8.2.9 собрана только для deb5.0 > в папку с 8,2,4 зайти не могу, получая > странное сообщение о том что no route to host, > странное потому, что во все другие хожу без > вопросов. Это странно. Даже более того, невозможно-) http://updates.etersoft.ru/pub/Etersoft/PostgreSQL/8.2.4/Debian/4.0/ > поставил 8.2, при инициализации базы такие > же ошибки, как и описанные выше для 8,3,3. > Анализ показал, что проблема заключалась > (для случая 8,2) в том, что на папку /var/lib/pgsql > выставляются при установке постгреса > права root.root 0700, а надо бы 0755. Права в пакете правильные. На то есть полиси по запаковке. До инициализации базы они изменяются на правильные для работы. Смысл в том, что до установки пакета пользователя postgres может и не быть, и права выставляются заведомо после установки (во время инициализации) > Для случая с 8,3,3 > данное решение не проверял. > аха, теперь пустило...подожду все таки 8,2,9 для полного счастья. Про полиси и пользователя понятно конечно.. но что то не так, раз при initdb скрипт обламывается с ошибкой доступа к сабжевой директории... > Про полиси и пользователя понятно конечно..
> но что то не так, раз при initdb скрипт
> обламывается с ошибкой доступа к сабжевой
> директории...
>
ну я ничего не имею ввиду, но обламывается он только у Вас-) сельте уже почти год и никто не жаловался. а скрипт в этом месте претерпел мало изменений.
упс =) (In reply to comment #21) > Про полиси и пользователя понятно конечно.. > но что то не так, раз при initdb скрипт > обламывается с ошибкой доступа к сабжевой > директории... Такая ошибка была убнаружена при тестировании давно, тогда же и решена. Андрей. проверь-таки еще раз на дебиане Пострге запустился нормально. Но при создании базы в Selta ошибка (см.вложение). Created attachment 772 [details]
ошибка
с консоли СУБД выполни show SERVER_ENCODING; show CLIENT_ENCODING; все работает и запускается. |