Перемещение баз Postgresql + 1C
1С в режиме клиент-сервер часто используют с postgresql, а иногда по умолчанию его устанавливают на диск C:, куда в дальнейшем и разворачивают базы. Однако место на диске может закончится и необходимо перенести базы на более широкий диск, а для этого необходимо было переконфигурировать postgresql и сменить директорию его баз.
Останавливаем сервер 1С
Останавливаем Postgresql
Копируем папку C:\Program Files\PostgreSQL\8.1.5-14.1C\ data в D:\psqldata\data
После копирования необходимо настроить права к папке data. Права пользователя под которым работает postgres должны быть как на картинке:

Заходим в реестр и ищем путь
Где pgsql-8.1.5-14.1C — имя вашей версии postgresql
Находим ImagePath
Меняем
«C:\Program Files\PostgreSQL\8.1.5-14.1C\bin\pg_ctl.exe» runservice -N «pgsql-8.1.5-14.1C» -D «C:\Program Files\PostgreSQL\8.1.5-14.1C\data\»
на
«C:\Program Files\PostgreSQL\8.1.5-14.1C\bin\pg_ctl.exe» runservice -N «pgsql-8.1.5-14.1C» -D «D:\psqldata\data\»
О дополнительных способах работы с базами 1с и программированию можно узнать на форуме по 1С http://www.cyberforum.ru/1c/
2) Дальше может понадобиться файлик 1CV8Reg.lst отвечающий за подключение баз.
По пути C:\Program Files\1cv82\srvinfo\reg_1541
можно его найти и заглянув в который Вы увидите подключенные информационные базы на сервере (через оснастку «администрирование серверов 1С»). Их можно удалить, изменить названия с описаниями
Перемещение каталога данных PostgreSQL в Ubuntu 16.04
Объём базы данных увеличивается, и со временем она исчерпывает пространство файловой системы. Кроме того, если ввод и вывод находится на одном разделе с остальной частью операционной системы, возможные конфликты доступа к устройствам ввода/вывода. RAID, сетевые блочные хранилища и другие устройства предоставляют избыточность данных и другие полезные функции. Если вы хотите добавить больше места и оптимизировать производительность, а также воспользоваться другими функциями хранения, это руководство поможет вам переместить каталог данных PostgreSQL.
Требования
- Сервер Ubuntu 16.04 (инструкции по настройке сервера можно найти здесь).
- Пользователь с доступом к sudo.
- Сервер PostgreSQL (чтобы установить PostgreSQL, следуйте этому руководству).
В данном мануале показано, как переместить данные в блочное хранилище, смонтированное в mnt/volume-nyc1-01. Это поможет вам переместить каталог данных в новое место независимо от того, какое хранилище вы используете.
1: Перемещение каталога данных PostgreSQL
Чтобы подготовиться к перемещению каталога данных PostgreSQL, нужно уточнить его текущее местонахождение. Для этого откройте интерактивную сессию PostgreSQL; флаг -u postgres откроет сессию пользователя postgres.
sudo -u postgres psql
Запросите каталог данных:
SHOW data_directory;
data_directory
——————————
/var/lib/postgresql/9.5/main
(1 row)
Данный вывод подтверждает, что PostgreSQL использует каталог данных по умолчанию, /var/lib/postgresql/9.5/main. Чтобы закрыть сессию, введите \q.
Чтобы обеспечить целостность данных, отключите PostgreSQL, прежде чем вносить изменения в каталог данных:
sudo systemctl stop postgresql
Утилита systemctl не отображает результаты некоторых команд управления сервисами. Чтобы убедиться в том, что сервер баз данных был отключен, запросите его состояние:
sudo systemctl status postgresql
Последняя строка вывода должна сообщать:
. . .
Jul 22 16:22:44 ubuntu-512mb-nyc1-01 systemd[1]: Stopped PostgreSQL RDBMS.
Теперь, когда сервер остановлен, скопируйте текущий каталог данных в новое место с помощью rsync. Флаг –a сохраняет привилегии и другие свойства каталога. Флаг –v предоставляет подробный вывод.
Примечание: Убедитесь, что в названии каталога нет конечной косой черты (которую система может добавить, если вы используете автодополнение). Если такой слеш есть, rsync будет сбрасывать содержимое каталога в точку монтирования, а не в каталог.
Запустите rsync из каталога postgresql, чтобы имитировать первоначальную структуру каталогов в новом каталоге данных. Создавая такой каталог в точке монтирования и сохраняя все права на него за пользователем PostgreSQL, вы можете избежать конфликта привилегий в дальнейшей работе.
Каталог, указывающий версию (9.5), не является строго необходимым, но он не помешает, если вы хотите следовать соглашениям проекта и особенно если у вас есть необходимость в будущем использовать несколько версий PostgreSQL.
sudo rsync -av /var/lib/postgresql /mnt/volume-nyc1-01
После выполнения rsync переименуйте текущую папку, добавив расширение .bak. Оставьте расширение до тех пор, пока не убедитесь, что данные перемещены успешно. Это поможет не спутать файлы.
sudo mv /var/lib/postgresql/9.5/main /var/lib/postgresql/9.5/main.bak
2: Настройка нового каталога данных
PostgreSQL предлагает несколько способов отмены значений конфигурации. По умолчанию data_directory находится в /var/lib/postgresql/9.5/main согласно файлу /etc/postgresql/9.5/main/postgresql.conf. Откройте этот файл:
sudo nano /etc/postgresql/9.5/main/postgresql.conf
Найдите строку data_directory и укажите путь к новому каталогу данных.
3: Перезапуск PostgreSQL
Теперь нужно запустить сервер PostgreSQL.
sudo systemctl start postgresql
sudo systemctl status postgresql
Чтобы убедиться в том, что теперь PostgreSQL использует новый каталог данных, откройте интерактивную сессию:
sudo -u postgres psql
Запросите каталог данных:
postgres=# SHOW data_directory;
data_directory
——————————————
/mnt/volume-nyc1-01/postgresql/9.5/main
(1 row)
Теперь нужно убедиться в том, что база данных полностью функциональна. После проверки целостности данных вы можете удалить резервную копию каталога данных:
sudo rm -Rf /var/lib/postgresql.bak
Перезапустите PostgreSQL ещё раз, чтобы обновить все настройки:
sudo systemctl restart postgresql
sudo systemctl status postgresql
Заключение
Теперь вы знаете, как переместить каталог данных PostgreSQL. В данном руководстве использовалось блочное хранилище, однако эти инструкции подходят для настройки любого устройства независимо от технологии, на которой оно основано.
Как правильно изменить месторасположение базы postgresql-9.2.18.rl7?
С большим даунтаймом, зато целиком на новый диск:
Потушить базу, скопировать PGDATA (data_directory в конфиге) в новое место, заменить data_directory в конфиге на новое место, запустить базу.
Можно, кстати, не менять data_directory, а сделать симлинк. Postgresql не против по симлинкам сходить за своими данными.
С небольшим даунтаймом, зато с чуть большим числом телодвижений:
через pg_basebackup сделать копию в новом месте, запустить там второй инстанс постреса с репликой. Когда реплика догонит мастер, потушить мастер (сделав checkpoint), потушить реплику (тоже с чекпоинтом), заменить data_directory в конфиге на новое место, запустить базу.
Без даунтайма:
инициализировать второй диск как tablespace, перенести на этот tablespace что мешается на основном (pg_repack попробуйте, емнип умеет без пишущего лока даже переносить). Использоваться будут оба диска, что кстати хорошо с точки зрения io.