Linux postgresql перенос базы

Содержание
  1. Перемещение базы данных postgresql в Ubuntu
  2. Требования
  3. Подготовка
  4. Остановка сервисов
  5. Перенос файлов базы данных
  6. Настройка конфигурации postgresql
  7. Запуск сервисов
  8. Удаление ненужных файлов
  9. Postgresql перенос базы на другой диск linux
  10. Требования
  11. Подготовка
  12. Остановка сервисов
  13. Перенос файлов базы данных
  14. Настройка конфигурации postgresql
  15. Запуск сервисов
  16. Удаление ненужных файлов
  17. как задать местоположение базы postgres на linux
  18. Перемещение базы данных postgresql в Ubuntu 18.04 LTS
  19. Требования
  20. Подготовка
  21. Остановка сервисов
  22. Перенос файлов базы данных
  23. Настройка конфигурации postgresql
  24. Запуск сервисов
  25. Guesto.ru
  26. Guesto notes
  27. PostgreSQL. Размещение БД на другом диске
  28. Задача
  29. Решение
  30. Создание табличного пространства
  31. Перенос БД в другое табличное пространтсво
  32. Перемещение каталога данных PostgreSQL в Ubuntu 16.04
  33. Требования
  34. 1: Перемещение каталога данных PostgreSQL
  35. 2: Настройка нового каталога данных
  36. 3: Перезапуск PostgreSQL
  37. Заключение
  38. Добавить комментарий Отменить ответ

Перемещение базы данных 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.

postgres= # SHOW data_directory;
data_directory
——————————
/var/lib/postgresql/9.5/main
(1 row)

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

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

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

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

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

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

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

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

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

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

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

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

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

psql (9.5.14)
Type «help» for help.

postgres= # SHOW data_directory;
data_directory
——————————
/opt/postgresql/9.5/main
(1 row)

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

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

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

Источник

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

При установка на 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:

Читайте также:  Running mac application on linux

Изменяем значение 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.

Читайте также:  Astra linux не видит usb модем

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 использует новый каталог данных, откройте интерактивную сессию:

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

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

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

Источник

Оцените статью
Adblock
detector