- Перемещение базы данных postgresql в Ubuntu
- Требования
- Подготовка
- Остановка сервисов
- Перенос файлов базы данных
- Настройка конфигурации postgresql
- Запуск сервисов
- Удаление ненужных файлов
- Postgresql перенос базы на другой диск linux
- Требования
- Подготовка
- Остановка сервисов
- Перенос файлов базы данных
- Настройка конфигурации postgresql
- Запуск сервисов
- Удаление ненужных файлов
- как задать местоположение базы postgres на linux
- Перемещение базы данных postgresql в Ubuntu 18.04 LTS
- Требования
- Подготовка
- Остановка сервисов
- Перенос файлов базы данных
- Настройка конфигурации postgresql
- Запуск сервисов
- Guesto.ru
- Guesto notes
- PostgreSQL. Размещение БД на другом диске
- Задача
- Решение
- Создание табличного пространства
- Перенос БД в другое табличное пространтсво
- Перемещение каталога данных PostgreSQL в Ubuntu 16.04
- Требования
- 1: Перемещение каталога данных PostgreSQL
- 2: Настройка нового каталога данных
- 3: Перезапуск PostgreSQL
- Заключение
- Добавить комментарий Отменить ответ
Перемещение базы данных 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:
Изменяем значение 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.
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. В данном руководстве использовалось блочное хранилище, однако эти инструкции подходят для настройки любого устройства независимо от технологии, на которой оно основано.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.