Меню Рубрики

Postgresql перенос базы на другой диск linux

Перемещение базы данных postgresql в Ubuntu

При установка на Ubuntu zabbix-server база данных по умолчанию пишется в папку /var/lib/postgresql . Со временем база растёт и поднимается вопрос переноса её на другой раздел диска. Перенесём базу данных в /opt/postgresql .

Требования

  • ОС Ubuntu 18.04 LTS. Или Ubuntu 16.04.
  • Работаем из-под root.
  • Сервер PostgreSQL
  • Сервер zabbix. Не обязательно.

Подготовка

Проверим где находится текущая БД postgresql.

psql (9.5.14)
Type «help» for help.

БД находится в папке /var/lib/postgresql/9.5/main .

Для переноса БД нам понадобится rsync:

Убедимся что существует директория /opt .

Остановка сервисов

service zabbix-server stop
systemctl stop postgresql

Проверка статуса postgresql.

Ищем строку «Stopped PostgreSQL RDBMS.»

Перенос файлов базы данных

После переноса переименуем старую папку, на всякий случай:

mv /var/lib/postgresql/9.5/main /var/lib/postgresql/9.5/main.bak

Настройка конфигурации postgresql

Правим файл postgresql.conf:

Изменяем значение data_directory:

Запуск сервисов

Проверяем где находится текущая БД postgresql.

psql (9.5.14)
Type «help» for help.

БД находится в папке /opt/postgresql/9.5/main .

Удаление ненужных файлов

Если вам понравилась статья, то ставьте 👍🏻 каналу. Пишите комментарии, задавайте вопросы, подписывайтесь.

Источник

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

Перенос журналов транзакций может быть осуществлён очень просто. Допустим, что мы подключили второй жесткий диск, отформатировали его в файловую систему 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'»

Источник

Перемещение базы данных postgresql в Ubuntu 18.04 LTS

При установке на Ubuntu zabbix-server база данных по умолчанию пишется в папку /var/lib/postgresql. Со временем база растёт и поднимается вопрос переноса её на другой раздел диска. Перенесём базу данных в /opt/postgresql.

Требования

  • ОС Ubuntu 18.04 LTS. Или Ubuntu 16.04.
  • Работаем из-под root.
  • Сервер PostgreSQL
  • Сервер zabbix. Не обязательно.

Подготовка

Проверим где находится текущая БД postgresql.

БД находится в папке /var/lib/postgresql/9.5/main.

Для переноса БД нам понадобится rsync:

Убедимся что существует директория /opt.

Остановка сервисов

Проверка статуса postgresql.

Ищем строку «Stopped PostgreSQL RDBMS.»

Перенос файлов базы данных

После переноса переименуем старую папку, на всякий случай:

Настройка конфигурации postgresql

Правим файл postgresql.conf:

Изменяем значение data_directory:

Запуск сервисов

Проверяем где находится текущая БД postgresql.

БД находится в папке /opt/postgresql/9.5/main.

Источник

Guesto.ru

Guesto notes

PostgreSQL. Размещение БД на другом диске

После установки PostgreSQL создаваемые ИБ будут размещаться в каталоге по умолчанию. Как правило необходимо предусмотреть размещение БД на другом диске.

Например целесообразно разместить рабочие ИБ, индексы или отдельные таблицы на более быстром SSD, а тестовые ИБ или редко используемые таблицы на менее быстрых дисках.

Задача

Имеется сервер с ОС Debian 9, на сервере установлен PostgreSQL 9.6. К серверу есть доступ через SSH и pgAdmin.

Организовать возможность расположения БД на другом диске, в каталоге /mnt/POINT_01/pg_base/, и перенести ИБ alt_production в этот каталог.

Решение

Для определения расположения файлов на дисках в PostgreSQL есть понятие Табличное пространство(TABLSEPACE). Разные табличные пространства можно размещать как на разных, так и на одном диске, хотя в последнем смысла не так много.

По умолчанию создается табличное пространство pg_default, у меня для версии 9.6 размещен в каталоге /var/lib/postgresql/9.6/main/base/.

Создание табличного пространства

Для создания табличного пространства необходимо заранее создать каталог в котором оно будет храниться, пользоватеть от которого запущена служба сервера PostgreSQL должен быть владельцем, катлог должен быть пустым.

По условию задачи табличное пространство необходимо разместить в каталоге /mnt/POINT_01/pg_base/, создаем его и пользователя postgres сделаем владельцем

Для дальнейших действий необходимо подключиться к сервру через pgAdmin или воспользоаться оболочкой psql. В pgAdmin можно выполнять команды графически так и запросами, в psql только запросами. Буду описывать графический вариант, а затем запрос, кторая выполнит теже действия.

Теперь создадим новое табличное пространство, назовем его point_01, в pgAdmin разворачиваем ветку Табличные пространства.

В ветке по нажатию ПКМ откроется меню, выбираем пункт Новый tablespace, в появившейся форме указываем название и местонахождение, и нажимаем кнопку OK. В ветке появится созданное тобличное пространство.

Перенос БД в другое табличное пространтсво

В ветке БД кликаем ПКМ по нужной ИБ, переходим в свойства на закладу Определение и выбираем необходимое табличное простарнство, и нажимаем кнопку OK.

После некоторого ожидания диалог закроется, база перенесена в другое табличное пространство.

Если c БД были установлены соединения, то выведется сообщение об шибке, например:

Для завершения всех соединений с БД необходимо выполнить запрос описанный ниже и повторить перенос:

Источник

Перемещение каталога данных 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. В данном руководстве использовалось блочное хранилище, однако эти инструкции подходят для настройки любого устройства независимо от технологии, на которой оно основано.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Невидимка вк для mac os
  • Неверная запись экстента mac os
  • Не читает флешку mac os
  • Не устанавливается mac os sierra ошибка
  • Не устанавливается mac os sierra macbook air