powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / сменить кластер на новосозданный
12 сообщений из 12, страница 1 из 1
сменить кластер на новосозданный
    #35232308
неадмин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Проблема небольшая.
Есть кластер, инициализированный в ходе установки сервера.
Создаю новый:
initdb /home/pg ...
создался.

Как теперь заставить постгрес работать с этим кластером?

Если есть в доке, ткните (искал - не нашел). В форуме - тоже.
Ну, а если нетрудно, объясните здесь.
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35232349
неадмин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да. переменной окружения $PGDATA - нет.
делал export PGDAT=/home/pg и рестартовал, но использовался по-прежнему старый кластер.

версия postgres 8.2
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35232524
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ключик -D
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35232551
неадмин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробовал - не помогает.

но, кажется, догнал. видимо postrges тупо не хватает прав.
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35232567
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так читайте логи
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35232589
ChameLe0n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Глянул ща инитскрипт который я обычно беру из архива с сорсами PG... Там вверху прямо так и написано -

Код: plaintext
PGDATA="/srv/pgsql/data"
Собственно тормозите PG. Меняете .. Запускаете..
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35233305
неадмин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то все как-то коряво. Чего-то я недопонимаю.

1) логинюсь postgres'ом:
su postgres

2) создаю кластер:
initdb /var/lib/postgresql/8.2/pg

3) стартую:
pg_ctl -D pg -l logfile start

ура. работает. но.

4) стоплю:
pg_ctl -D pg -l logfile stop

"server stoped"

5) стартую из-под root'a:
/etc/init.d/postgresql-8.2 start

стартует не pg кластер (как хотелось бы), а тот, старый (main или как его там).
ключ -D /var/lib/postgresql/8.2/pg ничего не меняет. Т.е. по умолчанию /etc/init.d/postgresql-8.2 start запускает "main". Как сделать, чтоб эта команда запускала "pg"?
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35233622
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неадминстартует не pg кластер (как хотелось бы), а тот, старый (main или как его там).
ключ -D /var/lib/postgresql/8.2/pg ничего не меняет. Т.е. по умолчанию /etc/init.d/postgresql-8.2 start запускает "main". Как сделать, чтоб эта команда запускала "pg"?судя по "main" - у Вас debian ? так там есть замечательнейшие скрипты по управлению группами серверов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
seb@seb:~/tmp$ sudo pg_createcluster -u seb -d /home/seb/tmp/p -s /home/seb/tmp/s -l /home/seb/tmp/l/pg_logfile.log --start-conf auto 8.3 notadm
Creating new cluster (configuration: /etc/postgresql/ 8 . 3 /notadm, data: /home/seb/tmp/p)...
Moving configuration file /home/seb/tmp/p/postgresql.conf to /etc/postgresql/ 8 . 3 /notadm...
Moving configuration file /home/seb/tmp/p/pg_hba.conf to /etc/postgresql/ 8 . 3 /notadm...
Moving configuration file /home/seb/tmp/p/pg_ident.conf to /etc/postgresql/ 8 . 3 /notadm...
Configuring postgresql.conf to use port  5435 ...

seb@seb:~/tmp$ sudo pg_ctlcluster  8 . 3  notadm start

seb@seb:~/tmp$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
 8 . 1      main       5434  down   postgres /var/lib/postgresql/ 8 . 1 /main       /var/log/postgresql/postgresql- 8 . 1 -main.log
 8 . 2      main       5433  down   postgres /var/lib/postgresql/ 8 . 2 /main       /var/log/postgresql/postgresql- 8 . 2 -main.log
 8 . 3      main       5432  online postgres /var/lib/postgresql/ 8 . 3 /main       /var/log/postgresql/postgresql- 8 . 3 -main.log
 8 . 3      notadm     5435  online seb      /home/seb/tmp/p                    /home/seb/tmp/l/pg_logfile.log

seb@seb:~/tmp$ psql --cluster 8.3/notadm
psql: FATAL:  база данных "seb" не существует

seb@seb:~/tmp$ psql --cluster 8.3/notadm postgres
Welcome to psql  8 . 3 . 0 , the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=# \l
        Список баз данных
    Имя    | Владелец | Кодировка
-----------+----------+-----------
 postgres  | seb      | UTF8
 template0 | seb      | UTF8
 template1 | seb      | UTF8
( 3  rows)

postgres=# \q

seb@seb:~/tmp$ sudo pg_dropcluster --stop 8.3 notadm

seb@seb:~/tmp$ pg_lsclusters
Version Cluster   Port Status Owner    Data directory                     Log file
 8 . 1      main       5434  down   postgres /var/lib/postgresql/ 8 . 1 /main       /var/log/postgresql/postgresql- 8 . 1 -main.log
 8 . 2      main       5433  down   postgres /var/lib/postgresql/ 8 . 2 /main       /var/log/postgresql/postgresql- 8 . 2 -main.log
 8 . 3      main       5432  online postgres /var/lib/postgresql/ 8 . 3 /main       /var/log/postgresql/postgresql- 8 . 3 -main.log

почему Вы их не используете ? :)
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35233810
неадмин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Не пользуюсь - потому что, трудно. с винды переходить на линукс - трудно).

А вообще, групппы серверов не нужны. Достаточно одного. Мне бы заставить его при загрузке ОС, "загружать" именно "новый" кластер.
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35234165
landy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и посмотрите скрипт /etc/init.d/postgresql-8.2
В нем наверняка старый кластер прописан
Тем более что root не видит вашего определения PGDATA, у каждого пользователя в общем-то свое окружение
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35234477
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
landyНу и посмотрите скрипт /etc/init.d/postgresql-8.2
В нем наверняка старый кластер прописан
Тем более что root не видит вашего определения PGDATA, у каждого пользователя в общем-то свое окружениев Debian не так, в /etc/init.d/postgresql-8.2 ничего специфического нет - только ипорт библиотеки и вызов из неё общих функции start/stop/restart и т.д., вот кусочек:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
# Setting environment variables for the postmaster here does not work; please
# set them in /etc/postgresql/ 8 . 2 /<cluster>/environment instead.

[ -r /usr/share/postgresql-common/init.d-functions ] || exit  0 

. /usr/share/postgresql-common/init.d-functions

VERSION= 8 . 2 

case "$1" in
    start)
        start $VERSION
        ;;
    stop)
        stop "$VERSION"
        ;;
то есть никаких настроек в /etc/init.d/postgresql-8.2 нет и менять там ничего не нужно.

в Debian кластеры - это каталоги в /etc/postgresql/<версия>/<имя> где <версия> - это версия сервера, допустим 8.2 а имя - имя кластера (экземпляра сервера), по умолчанию создаётся один кластер с именем main. именно просматривая все подкаталоги в /etc/postgresql/8.2/ загрузочный скрипт /etc/init.d/postgresql-8.2 и определяет - что нужно запускать. а именно, автоматически запускаются те кластеры, у которых в файле /etc/postgresql/8.2/<имя>/start.conf стоит слово auto

неадмин , создайте новый кластер при помощи pg_createcluster, при создании указывайте параметр --start-conf auto (как у меня в предыдущем сообщении) - это означает "запускать этот экземпляр сервера автоматически при загрузке". старый кластер main можно запретить запускать вообще, заменив в /etc/postgresql/8.2/main/start.conf auto на disabled, или же запретить автоматический запуск, но разрешить запускать вручную через pg_ctlcluster (замена auto на manual). ещё его можно удалить с помощью pg_dropcluster (если удаляемый экземпляр сервера (кластер) запущен в момент удаления - нужно указать параметр --stop для pg_dropcluster, иначе он так и останется запущенным)
...
Рейтинг: 0 / 0
сменить кластер на новосозданный
    #35235082
неадмин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Ёш ! Теперь все отлично.

Кстати, обнаружилось, что status, start, stop и пр. (у /etc/init.d/postgresql-8.2) - как раз и выполняют описанные Вами pg_lsclusters и т.д.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / сменить кластер на новосозданный
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]