как задать местоположение базы postgres на linux

1. websamson 307 02.03.11 13:57 Сейчас в теме
Собственно есть сервер на Debian и СУБД Postgres.
Как сделать так, чтобы база 1С создавалась в нужной мне директории, а не в каталоге по-умолчанию
/var/lib/pgsql/data/base?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. websamson 307 03.03.11 05:55 Сейчас в теме
Ну вот, что-то получилось...
Перенос журналов транзакций может быть осуществлён очень просто. Допустим, что мы подключили второй жесткий диск, отформатировали его в файловую систему ext3 и подключили в каталог /mnt/hdd2. Теперь вам необходимо выполнить всего несколько команд, и журналы транзакций будут перемещены:

# service postgresql stop
# mv /var/lib/pgsql/data/pg_xlog /mnt/hdd2
# ln -s /mnt/hdd2/pg_xlog /var/lib/pgsql/data/pg_xlog
# service postgresql start


Перенос баз данных необходимо осуществлять в крайнем случае. Например, когда нагрузка стала критической, и нет возможности провести модернизацию аппаратных ресурсов. Принцип такой же, как и в случае с журналами транзакций. Необходимо только знать, где хранятся файлы базы данных. Все базы данных размещены в каталоге /var/lib/pgsql/data/base, но каталог каждой базы называется не именем, а её идентификатором. Чтобы узнать идентификатор переносимой базы, переключитесь в учётную запись пользователя postgres и воспользуйтесь следующей командой:

$ psql -A -q -t -c "select oid from pg_database where datname='DBNAME'"


Вместо DBNAME подставьте имя искомой БД.
Показать

http://www.ibm.com/developerworks/ru/library/l-1c/
3. megamega 23.11.11 11:54 Сейчас в теме
ну можно еще на месте оставить и симлинки настроить
4. audion 30.11.11 20:58 Сейчас в теме
(3) megamega, дык ведь вся идея именно в том, чтобы развести по разным дискам (физическим!) или рэйд-массивам:
- систему;
- директорию с БД;
- журнальные записи.
Если коротко, это дает ОЧЕНЬ ощутимые преимущества в скорости работы.
5. AlexO 135 01.12.11 01:09 Сейчас в теме
тут что - обсуждается, как перемещать файлы в линухе??
м-да.. а как умно названо....
6. admsmsz 13.12.11 23:07 Сейчас в теме
переинициализировать базу данных
код для fedora
[root@localhost ~]# su postgres
bash-4.1$ /usr/pgsql/bin/initdb -D /var/lib/pgsql/data --locale=ru_RU.UTF-8


вместо /var/lib/pgsql/data подставить своё, то что хочется
7. olegos 14.12.11 07:15 Сейчас в теме
есть вариант монтировать раздел в /var/lib/pgsql/data
1. остановить postgres
2. смонтировать раздел для баз куда нибудь в /mnt/tmp
3. скопировать туда все базы из /var/lib/pgsql/data
4. размонтировать /mnt/tmp
5. смонтировать раздел для баз в /var/lib/pgsql/data
6. запустить постгрес
7. прописать этот раздел в fstab, чтобы при загрузке монтировалось автоматом
8. AndyR 16.12.11 16:24 Сейчас в теме
можно в самом постгресе с tablespace поиграться. При создании новой БД указать нужный тэйблспейс.
10. herfis 513 12.06.17 09:32 Сейчас в теме
Правильный ответ в (8).
Создаешь в постгри таблспэйс (родная сущность постгри) и при создании баз, которые должны там находиться, просто указываешь им его.
ЗЫ. Из минусов - через кластер 1С базы создаются в дефолтном таблспейсе. Т.е. надо сначала создать базу в постгри (причем желательно при создании в качестве шаблона указать ранее созданную пустую базу 1С - иначе при подключении через кластер 1С может ругнуться в том смысле, что это мол не база 1С).
И в кластер подключаешь уже как существующую базу. И никаких проблем.
9. user741586 11.06.17 22:39 Сейчас в теме
Я делал следующим образом (debian 8, postgres 9.4).
Переносил из /var/lib/postgres/9.4/main в /data/pg (отдельный раздел).
1. Остановил postgresql
2. Перенес содержимое /var/lib/postgres/9.4/main в /data/pg
3. Отредактировал конфиг /etc/postgresql/9.4/main/postgresql.conf значение параметра data_directory на /data/pg
4. В каталоге, где хранились базы есть файлик отредактировал содержимое на
/usr/lib/postgresql/9.4/bin/postgres "-D" "/data/pg" "-c" "config_file=/etc/postgresql/9.4/main/postgresql.conf" это инициализация места расположения баз и конфига
5. Выставить права на /data/pg
chown -R postgres:postgres /data/pg
chmod 0700 -R /data/postgres
6. Запуск постгреса service postgresql start
7. Если не запусится, то смотрим лог /var/log/postgresql/postgresql-9.4-main.log (в моем случае)
rinat_alp2; project_21; +2 Ответить
12. project_21 01.02.19 12:11 Сейчас в теме
(9) Благодарствую. метод рабочий.
17. rinat_alp2 75 11.09.19 15:37 Сейчас в теме
(9) Очень помогло, когда место закончилось на виртуалке, спасибо!
в п. 4 имя файлика postmaster.opts
11. user797081 19.07.17 09:16 Сейчас в теме
Перенести каталог с логами или данными куда нужно

mv /var/lib/pgsql/9.6/data/base /mnt/data

Создать симлинк

ln -s /mnt/data/base /var/lib/pgsql/9.6/data/base

Все работает
PG рекомендует разносить логи и данные по разным дискам, и не логическим а именно разным шпинделям, или отдельным лунам массивов.
14. user1033281 23.04.19 15:06 Сейчас в теме
(11)Спасибо ДРУГ!!!! ВСЕ получилось!!!!
13. user1199422 09.04.19 22:21 Сейчас в теме
Парни, подскажите как разнести в постгресе11 файл логов и файл базы по разным точкам монтирования?

и второй маленький вопрос (для тупых) - как создавать новые базы, с необходимыми параметрами хранения файлов? файл конфигурации постгреса не предлагать - не работает )_)
15. user797081 21.05.19 08:55 Сейчас в теме
(13)
А чем ответ 11 на подошел mv и ln ни кто пока не отменил :-)
16. hobi 616 21.07.19 18:26 Сейчас в теме
Если нужно все данные перенести в другое место, то (делал на Linux Mint, PostgreSQL 10.5 от 1С, в примере - перенос в домашний каталог /home/<user> ):

1. service postgresql stop

2. переносим в другое место каталог /var/lib/postgresql/10/main' (например в новый каталог '/home/<user>/pgdata', который создаём под <user>)
(перенос любым файловым менеджером, запущенным через 'sudo', или для хардюзеров - руками, командой mv)

3. в файле '/etc/postgresql/10/main/postgresql.conf' изменяем строку:
вместо:
data_directory = 'var/lib/postgresql/10/main'
указываем:
data_directory = '/home/<user>/pgdata'

записываем измененный файл

4. service postgresql start

Всё, можно пользоваться.
Все данные postgresql теперь в домашнем каталоге. А если права на подкаталоги /home/<user>/pgdata не меняли, то под <user> и не удалите случайно базы postgresql.
18. Andre1C 01.02.21 12:11 Сейчас в теме
В комментах перечислены 3 способа:

1. Перенос данных + симлинк в (2) и (11),
2. Задать таблспейс (не расписано как это сделать) в (8),
3. Монтирование разделов в (7).

Какой вариант наиболее верный для ситуации, когда под базы выделен отдельный raid?
19. Andre1C 07.02.21 16:26 Сейчас в теме
(18) Сам задал - сам отвечаю. Установил web приложение pgAdmin на виндовую машину, через это приложение законнектился к серверу, создал новый таблспейс с требуемой локацией и через этот же pgAdmin перенёс туда базу. Всё-таки GUI маст юз, там где это возможно - сильно облегчает жизнь.
21. solary 186 29.10.24 15:36 Сейчас в теме
(19) Спасибо! То что доктор прописал!
20. user797081 21.12.22 09:58 Сейчас в теме
(18)
1. Перенос данных + симлинк в (2) и (11) и 3. Монтирование разделов в (7). Это одно и тоже :-) Каталоги только разные.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот