Купить Корзина
  • Домены и сайты
  • Облако и IT-инфраструктура
  • Вход

Получить консультацию

Ответим на вопросы, расскажем о конфигурациях, поможем с переносом, подберем оборудование, подготовим коммерческое предложение

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности и правилами пользования сайтом

Персональный менеджер ответит на ваши вопросы и проведет через все этапы заключения договора: — подберет оборудование — сформирует коммерческое предложение — поможет с миграцией сервера к нам

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности и правилами пользования сайтом

Или просто оставьте номер телефона, и мы перезвоним вам

  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. База знаний
    2. Рег.облако
    3. Облачные серверы
    4. Установка программного обеспечения
    5. Как обновить версию PostgreSQL

    Как обновить версию PostgreSQL

    В статье мы расскажем, как выполнить обновление PostgreSQL на операционных системах семейства Linux: Ubuntu и Debian.

    Когда нужно изменить версию PostgreSQL

    В интернете размещено большое количество программного обеспечения. Оно может быть бесплатным или коммерческим, а также относиться к любой категории: текстовые и графические редакторы, операционные системы, утилиты, среды программирования и др.

    Развитие ПО происходит на регулярной основе: разработчики добавляют новый функционал, устраняют баги (при их наличии) и уязвимости. Чаще всего эти улучшения добавляются в новых версиях программы, в том числе и в PostgreSQL.

    PostgreSQL — это популярная объектно-реляционная СУБД, с которой работает большое количество пользователей по всему миру. Ее поддержкой занимается сообщество PostgreSQL, которое добавляет новые возможности вместе с новой версией СУБД. Номер версии PostgreSQL обычно состоит из двух частей:

    • номер основной версии — как правило, в нее вносятся крупные изменения;
    • номер корректирующего релиза, в котором устранены старые ошибки и уязвимости.

    обновление версии постгрес

    Обновление на основе логической репликации

    Когда требуется переход на новую версию PostgreSQL? Чаще всего для этого есть две причины:

    • 1.
      Для работы с базами данных требуется функционал, которого нет в текущей версии.
    • 2.
      В старой версии обнаружены уязвимости, по которым злоумышленники могут перехватить данные из базы.

    Существует несколько способов изменить версию Постгрес. Ниже мы опишем, как происходит обновление PostgreSQL: эти инструкции подойдут для ОС Ubuntu и Debian.

    Обновление PostgreSQL в пределах основной версии

    • 1
      Подключитесь к серверу по SSH.
    • 2

      Выполните обновление:

      sudo apt upgrade
    • 3

      Добавьте репозиторий Постгрес:

      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

      Затем загрузите ключ подписи:

      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    • 4

      Обновите набор пакетов в операционной системе:

      sudo apt update
    • 5

      Установите PostgreSQL:

      sudo apt install postgresql-14.3

      Вместо 14.3 укажите нужную версию СУБД.

    • 6

      Проверьте список установленных компонентов:

      dpkg --get-selections | grep postgres

      Затем ознакомьтесь со списком кластеров:

      pg_lsclusters

      В выводе отобразится список кластеров со старой и новой версией.

    • 7

      Чтобы внести изменения в базу данных, необходимо остановить PostgreSQL. Это можно сделать с помощью команды:

      sudo service postgresql stop
    • 8

      Чтобы избежать конфликтов между прежним и недавно созданным кластером, необходимо переименовать новый кластер. Для этого выполните команду:

      sudo pg_renamecluster 14.3 main new_name

      Где:

      • main — прежнее имя нового кластера,
      • new_name — новое имя кластера.
    • 9

      Обновите старый кластер:

      sudo pg_upgradecluster 14.1 main

      Вместо main укажите имя кластера.

    • 10

      Запустите Постгрес:

      sudo service postgresql start
    • 11

      Проверьте список кластеров:

      pg_lsclusters

      Убедитесь, что новый кластер активен — он должен иметь статус online:

      14  main    5432 online postgres /var/lib/postgresql/14.3/main /var/log/postgresql/postgresql-14.3-main.log
    • 12

      Удалите старый кластер для старой и новой версии. Для этого поочередно выполните команды:

      sudo pg_dropcluster 14.1 main

      Вместо 14.1 укажите старую версию СУБД.

    Готово, вы обновили PostgreSQL в пределах основной версии.

    Обновление через pg_upgrade

    • 1
      Подключитесь к серверу по SSH.
    • 2

      Обновите пакеты. Для этого поочередно выполните команды:

      sudo apt update
      sudo apt upgrade
    • 3

      Остановите PostgreSQL:

      sudo service postgresql stop
    • 4

      Переименуйте каталог со старой версией:

      mv /usr/local/pgsql /usr/local/pgsql.old
    • 5
      Установите новую версию из исходного кода. Для этого используйте официальную документацию.
    • 6
      Проверьте совместимость флагов старой и новой версии.
    • 7

      Загрузите файлы запуска и начните установку:

      make prefix=/usr/local/pgsql.new install

      Вместо /usr/local/pgsql.new укажите путь к серверу баз данных с новой версией Постгрес.

    • 8
      Перенесите файлы полнотекстового поиска — словари, стоп-слова, списки синонимов и др. — в новую директорию.
    • 9
      Чтобы pg_upgrade могла подключиться к старому и новому хосту, добавьте аутентификацию peer в файл pg_hba.conf.
    • 10

      Остановите оба сервера баз данных. Для этого поочередно выполните команды:

      pg_ctl -D /opt/PostgreSQL/12 stop
      pg_ctl -D /opt/PostgreSQL/14 stop

      Где:

      • 12 — старая версия СУБД,
      • 14 — новая версия СУБД.
    • 11

      Ознакомьтесь со списком корректировок, которые нужно будет внести после апдейта PostgreSQL:

      pg_upgrade --check

      Затем выполните команду от имени нового сервера БД.

    • 12
      Восстановите прежнее состояние файла pg_hba.conf.
    • 13
      Запустите обновленный кластер. Если он работает корректно, удалите старый кластер.

    Готово, вы обновили PostgreSQL через pg_upgrade.

    Обновление через pg_dumpall

    • 1
      Подключитесь к серверу по SSH.
    • 2

      Обновите пакеты. Для этого поочередно выполните команды:

      sudo apt update
      sudo apt upgrade
    • 3

      Убедитесь, что в базе данных не производятся изменения. После этого загрузите дамп и запишите его в отдельный файл:

      pg_dumpall > file_name

      Вместо file_name укажите имя файла.

    • 4

      Приостановите сервер PostgreSQL:

      pg_ctl stop
    • 5

      Переименуйте каталог со старой версией Постгрес:

      mv /usr/local/pgsql /usr/local/pgsql.old

      Вместо /usr/local/pgsql укажите путь до каталога.

    • 6
      Установите новую версию из исходного кода. Для этого используйте официальную документацию.
    • 7

      Создайте новый кластер:

      /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
    • 8
      Перенесите содержимое конфигурационных файлов в pg_hba.conf и postgresql.conf соответственно.
    • 9

      Возобновите работу сервера PostgreSQL:

      /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
    • 10

      Восстановите данные из бэкапа:

      /usr/local/pgsql/bin/psql -d postgres -f file_name

      Вместо file_name укажите имя файла.

    • 11

      Перенесите информацию со старого сервера БД на новый. Для этого используйте команду:

      pg_dumpall -p 1234 | psql -d postgres -p 4321

      Где:

      • 1234 — порт, на котором запускается старый сервер БД;
      • 4321 — порт, на котором запускается новый сервер БД.

    Готово, вы обновили PostgreSQL через pg_dumpall.

    Помогла ли вам статья?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Бесплатный хостинг для сайта
    • Дешевый хостинг
    • Бесплатный VPS-сервер
    • Дешёвые VPS
    Рассылка Рег.ру

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Домены и сайты
    • Домены
    • Хостинг
    • Создание сайтов
    • SSL-сертификаты
    • VPS и VDS серверы
    • Whois
    • Магазин доменов
    Облако
    и IT-инфраструктура
    • Облачные серверы
    • Частное облако
    • Облачное хранилище
    • Kubernetes в облаке (K8S)
    • Облачные базы данных
    • Выделенные серверы
    Полезное
    • Стоимость услуг
    • Cпособы оплаты
    • База знаний
    • Документы
    • ЭДО
    • Партнерам
    • Сообщить о нарушении
    • РБК: новости России и мира сегодня
    • Новости компаний РФ
    • РБК Инвестиции: курсы валют
    Компания
    • О компании
    • Контакты
    • Офисы
    • Новости
    • Акции и скидки
    • Блог
    • Отзывы клиентов
    8 800 555-34-78 Бесплатный звонок по России
    +7 495 580-11-11 Телефон в Москве
    • vk
    • telegram
    • ok
    • moikrug
    • youtube
    • twitter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
    • © ООО «РЕГ.РУ»
    • Политика конфиденциальности
      Политика обработки персональных данных
      Правила применения рекомендательных технологий
      Правила пользования
      и другие правила и политики
    • Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера