Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / сменить кластер на новосозданный / 12 сообщений из 12, страница 1 из 1
03.04.2008, 11:49
    #35232308
неадмин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сменить кластер на новосозданный
Добрый день!

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

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

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

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

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

Код: plaintext
PGDATA="/srv/pgsql/data"
Собственно тормозите PG. Меняете .. Запускаете..
...
Рейтинг: 0 / 0
03.04.2008, 15:18
    #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
03.04.2008, 16:54
    #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
03.04.2008, 17:36
    #35233810
неадмин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сменить кластер на новосозданный
Спасибо. Не пользуюсь - потому что, трудно. с винды переходить на линукс - трудно).

А вообще, групппы серверов не нужны. Достаточно одного. Мне бы заставить его при загрузке ОС, "загружать" именно "новый" кластер.
...
Рейтинг: 0 / 0
03.04.2008, 19:25
    #35234165
landy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сменить кластер на новосозданный
Ну и посмотрите скрипт /etc/init.d/postgresql-8.2
В нем наверняка старый кластер прописан
Тем более что root не видит вашего определения PGDATA, у каждого пользователя в общем-то свое окружение
...
Рейтинг: 0 / 0
03.04.2008, 23:58
    #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
04.04.2008, 11:08
    #35235082
неадмин
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сменить кластер на новосозданный
Спасибо, Ёш ! Теперь все отлично.

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


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