Как во вновь установленный postgres подсунуть базы...

ziserg
Дата: 06.09.2004 17:15:51
Всем Добрый День.

Небольшое введение
---------------------------------
Жил-был сервер, на котором стоял Postgres 7.3.2 потом так сложились
обстоятельства, что винт умер, но каталог /usr/local/pgsql/ удалось полностью сохранить. На машине стоял RedHat 6.0.

Сейчас в эту же машину установлен другой винт на котором стоит система
ASP 9.2 и установлен тот же Postgres 7.3.2, который как и ранее был собран из сорцов. Стоит он по тем же путям.

Вопрос
-----------
Как во вновь установленный Postgres 7.3.2 подсунуть базы, которые мне удалось сохранить с прежней системы ?

P.S.
------
На прежней системе была локаль ru_SU, и как следствие когда делали initdb, то в конфе postgresql.conf установлена для всех LC_ локаль ru_SU. На ASP 9.2 такой локали нет. Я пробовал мутить, ставить локаль ru_RU, затем переливать каталог ../data/ за исключением одного файла global/pg_control - в котором и сидит эта локаль - не помогает, по команде
/usr/local/pgsql/bin/psql -U postgres -l
я не вижу свою базу.

Кто может что еще посоветовать ?
Спасибо.
strizh
Дата: 06.09.2004 20:01:51
Дык я не понял. А в чем проблема-то ? initdb и createdb делать не надо - у тебя база уже есть. Ну так посмотри на скрипт, запускающий сервер postgresql (лежит в /etc/rc.d/init.d) - какой каталог указан для базы. Исправь, перезапусти - и все. Шо локали будут не те - ну дык сортировка кривая будет. Так тебе же, как я понял, главное данные спасти ?
Sad Spirit
Дата: 06.09.2004 20:02:14
Ну так создай локаль...
ziserg
Дата: 08.09.2004 19:25:54
Sad Spirit
Ну так создай локаль...

Да, верно.

Проблема решилась. Только просто создать локаль не поможет, необходимо пересобрать postgres на этой локали (в моем случае это была старая локаль ru_SU). Если его не пересобрать, а вызывать initdb с нужной локалью, то работать не будет, он ругается на не верный lc_messages, даже если после этого, ему в конфе прописать нужные локали. Если просто скопировать каталог ../data/ то тоже работать не будет.

Поэтому алгоритм переноса такой:
1. Создать в системе нужную локаль
2. Пересобрать postgres на этой локали
3. Просто скопировать каталог ../data/ и поставить ему соответствующие права
4. Все работает.
ziserg
Дата: 09.09.2004 16:22:18
strizh
Дык я не понял. А в чем проблема-то ? initdb и createdb делать не надо - у тебя база уже есть. Ну так посмотри на скрипт, запускающий сервер postgresql (лежит в /etc/rc.d/init.d) - какой каталог указан для базы. Исправь, перезапусти - и все. Шо локали будут не те - ну дык сортировка кривая будет.

Если локали не те, то ты просто не запустить демон (postgres).

strizh
Так тебе же, как я понял, главное данные спасти ?

Данные спасать мне не надо, мне надо их подсунуть без вызова initdb.

Проблема решилась. Я отвечал ниже.