Собственно есть сервер на Debian и СУБД Postgres.
Как сделать так, чтобы база 1С создавалась в нужной мне директории, а не в каталоге по-умолчанию
/var/lib/pgsql/data/base?
Перенос журналов транзакций может быть осуществлён очень просто. Допустим, что мы подключили второй жесткий диск, отформатировали его в файловую систему 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'"
(3) megamega, дык ведь вся идея именно в том, чтобы развести по разным дискам (физическим!) или рэйд-массивам:
- систему;
- директорию с БД;
- журнальные записи.
Если коротко, это дает ОЧЕНЬ ощутимые преимущества в скорости работы.
есть вариант монтировать раздел в /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).
Создаешь в постгри таблспэйс (родная сущность постгри) и при создании баз, которые должны там находиться, просто указываешь им его.
ЗЫ. Из минусов - через кластер 1С базы создаются в дефолтном таблспейсе. Т.е. надо сначала создать базу в постгри (причем желательно при создании в качестве шаблона указать ранее созданную пустую базу 1С - иначе при подключении через кластер 1С может ругнуться в том смысле, что это мол не база 1С).
И в кластер подключаешь уже как существующую базу. И никаких проблем.
Я делал следующим образом (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 (в моем случае)
Парни, подскажите как разнести в постгресе11 файл логов и файл базы по разным точкам монтирования?
и второй маленький вопрос (для тупых) - как создавать новые базы, с необходимыми параметрами хранения файлов? файл конфигурации постгреса не предлагать - не работает )_)
Если нужно все данные перенести в другое место, то (делал на Linux Mint, PostgreSQL 10.5 от 1С, в примере - перенос в домашний каталог /home/<user> ):
1. service postgresql stop
2. переносим в другое место каталог /var/lib/postgresql/10/main' (например в новый каталог '/home/<user>/pgdata', который создаём под <user>)
(перенос любым файловым менеджером, запущенным через 'sudo', или для хардюзеров - руками, командой mv)
Всё, можно пользоваться.
Все данные postgresql теперь в домашнем каталоге. А если права на подкаталоги /home/<user>/pgdata не меняли, то под <user> и не удалите случайно базы postgresql.
(18) Сам задал - сам отвечаю. Установил web приложение pgAdmin на виндовую машину, через это приложение законнектился к серверу, создал новый таблспейс с требуемой локацией и через этот же pgAdmin перенёс туда базу. Всё-таки GUI маст юз, там где это возможно - сильно облегчает жизнь.