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

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

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

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

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

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

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

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

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

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

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

    Резервное копирование и восстановление баз данных PostgreSQL

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

    Что такое PostgreSQL

    PostgreSQL — это объектно-реляционная система управления базами данных. Она относится к категории свободно распространяемых и имеет открытый исходный код.

    Какие преимущества имеет PostgreSQL относительно других СУБД:

    • возможность работать в реляционном и объектном подходе;
    • поддержка разных форматов данных: например XML, JSON или NoSQL;
    • нет ограничений на объем базы данных и количество записей в ней;
    • возможность писать функции на разных языках программирования;
    • поддержка составных запросов;
    • доступ к базе с нескольких устройств одновременно и другие.

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

    Как сделать дамп базы данных

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

    • pg_dump,
    • pg_dumpall,
    • pg_basebackup.

    Подробнее о каждой из них мы расскажем ниже.

    pg_dump

    С помощью утилиты pg_dump вы можете создать целостный бэкап одной базы данных PostgreSQL, причем в процессе копирования можно продолжать работу с БД. В готовом дампе будет храниться только база данных — глобальные объекты (роли или табличные пространства) нужно сохранять с помощью других программ.

    Чтобы создать бэкап (pg_dump):

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

      Запустите консоль PostgreSQL:

      psql
    • 3

      Выполните команду следующего формата:

      pg_dump [connection-option][parameter][db_name]> [catalog_for_backup_postgres_database]

      Где:

      • connection-option — параметры подключения к БД. Их можно выбрать из нескольких вариантов:

        • -d [db_name] или --dbname=[db_name] — имя базы данных;
        • -h [server_name] или --host=[server_ name] — имя сервера;
        • -p [port] или --port=[port] — порт для подключения;
        • -U [username] или --username=[username] — имя пользователя;
      • parameter — параметры создания резервной копии;
      • db_name — имя базы данных;
      • catalog_for_backup_postgres_database — путь к каталогу, в который нужно сохранить дамп.
    Доступные параметры создания резервной копии для pg_dump
    Параметр
    Значение
    -a или —data-only
    Сохранить содержимое базы данных
    -b или —blobs
    Добавить большие объекты
    -B или —no-blobs
    Не добавлять большие объекты
    -E [encoding name] или —encoding=[encoding name]
    Назначить кодировку дампа
    -f [catalog] или —file=[catalog]
    Указать путь к каталогу, в который нужно сохранить дамп
    -F [format] или —format=[format]
    Формат файла с дампом
    -j [flows] или —jobs=[flows]
    Выполнить в многопоточном режиме. Вместо flows нужно указать количество потоков
    -n [schema] или —schema=[schema]
    Сохранить схемы, которые соответствуют шаблону. Вместо [schema] необходимо указать название шаблона
    -N [schema] или —exclude-schema=[schema]
    Не сохранять схемы, которые соответствуют шаблону. Вместо [schema] необходимо указать название шаблона
    -o или —oids
    Сохранить идентификатор объекта
    -s или —schema-only
    Сохранить только схемы
    -t [table] или —table=[table]
    Сохранить таблицы, которые соответствуют шаблону. Вместо [table] необходимо указать название таблицы
    -T [table] или —exclude-table=[table]
    Не сохранять таблицы, которые соответствуют шаблону. Вместо [table] необходимо указать название таблицы
    -x или —no-privileges или —no-acl
    Не сохранять права доступа к БД
    -Z [0..9] или —compress=[0..9]
    Выбрать уровень сжатия, где 0 — не сжимать, а 9 — максимальное сжатие

    pg_dumpall

    pg_dumpall — это утилита, с помощью которой можно выгрузить все базы данных кластера в один файл. Этот файл будет иметь формат скрипта.

    Чтобы создать бэкап:

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

      Запустите консоль PostgreSQL:

      psql
    • 3

      Выполните команду следующего формата:

      pg_dumpall [connection-option][parameter][db_name]> [catalog_for_dump_postgres_database]

      Где:

      • connection-option — параметры подключения к БД. Их можно выбрать из нескольких вариантов:

        • -d [string_name] или --dbname=[string_name] — строка подключения;
        • -h [server_name] или --host=[server_ name] — имя сервера;
        • -p [port] или --port=[port] — порт для подключения;
        • -l [db_name] или --database=[db_name] — имя БД, через которую нужно загрузить глобальные объекты.
      • parameter — параметры создания резервной копии;
      • db_name — имя базы данных;
      • catalog_for_backup_postgres_database — путь к каталогу, в который нужно сохранить дамп.
    Доступные параметры создания резервной копии для pg_dumpall
    Параметр
    Значение
    -a или —data-only
    Сохранить содержимое базы данных
    -c или —clean
    Добавить команду DROP перед CREATE (если есть объекты с одинаковыми именами)
    -f [catalog] или —file=[catalog]
    Указать путь к каталогу, в который нужно сохранить дамп
    -g или —globals-only
    Сохранить только глобальные объекты
    -o или —oids
    Сохранить идентификатор объекта
    -O или —no-owner
    Не добавлять команды для установки владельцев в конечный скрипт
    -r или —roles-only
    Сохранить только роли пользователей
    -s или —schema-only
    Сохранить только схемы
    -t или —tablespaces-only
    Сохранить только пространства таблиц
    -x или —no-privileges или —no-acl
    Не сохранять права доступа к БД

    pg_basebackup

    pg_basebackup — это утилита PostgreSQL, которая позволяет выгрузить данные из всего кластера. Готовая резервная копия будет представлена в виде файла двоичного формата.

    Обратите внимание: чтобы начать резервное копирование с помощью pg_basebackup, пользователь БД должен иметь root-права или привилегию REPLICATION.

    Чтобы создать бэкап:

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

      Запустите консоль PostgreSQL:

      psql
    • 3

      Выполните команду следующего формата:

      pg_basebackup [connection-option][parameter][db_name]

      Где:

      • connection-option — параметры подключения к БД. Их можно выбрать из нескольких вариантов:

        • -d [string_name] или --dbname=[string_name] — строка подключения,
        • -h [server_name] или --host=[server_ name] — имя сервера,
        • -p [port] или --port=[port] — порт для подключения,
        • -U [username] или --username=[username] — имя пользователя.
      • parameter — параметры создания резервной копии;
      • db_name — имя базы данных.
    Доступные параметры создания резервной копии для pg_basebackup
    Параметр
    Значение
    -D [catalog] или —pgdata=[catalog]
    Путь к каталогу, в который нужно сохранить дамп базы данных
    -F [format] или —format=[format]
    Формат файла бэкапа. Может иметь следующие значения: p или plain — обычный файл, а также t или tar — архив в формате .tar
    -r [speed]или —max-rate=[speed]
    Максимальная скорость передачи данных в Кб/с
    -Z [0..9] или —compress=[0..9]
    Выбрать уровень сжатия, где 0 — не сжимать, а 9 — максимальное сжатие

    Как восстановить базу данных из дампа

    Восстановление базы данных из дампа возможно с помощью утилиты pg_restore. О том, как с ней работать, расскажем ниже.

    pg_restore

    pg_restore — мини-программа, которая позволяет развернуть базу данных из архива. Перед восстановлением команде можно добавить параметры процесса.

    Чтобы восстановить бэкап:

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

      Запустите консоль PostgreSQL:

      psql
    • 3

      Выполните команду следующего формата:

      pg_restore [connection-option] [parameter] [dump_name]

      Где:

      • connection-option — параметры подключения к БД. Их можно выбрать из нескольких вариантов:

        • -h [server_name] или --host=[server_ name] — имя сервера,
        • -p [port] или --port=[port] — порт для подключения,
        • -U [username] или --username=[username] — имя пользователя,
        • -w или --no-password — отключить запрос пароля,
        • -W или --password — включить запрос пароля,
        • --role=[username] — задать имя роли пользователя.
      • parameter — параметры создания резервной копии;
      • dump_name — имя дампа базы данных.
    Доступные параметры восстановления резервной копии для pg_restore
    Параметр
    Значение
    -a или —data-only
    Восстановить содержимое базы данных
    -c или —clean
    Удалить объекты с одинаковыми именами перед восстановлением
    -C или —create
    Создать БД, в которую нужно разместить дамп
    -d [db name] или —dbname=[db name]
    Подключиться к базе db name и разместить в ней бэкап
    -e или —exit-on-error
    Завершить восстановление, если возникнет ошибка
    -j [count] или —jobs=[count]
    Восстановить в многопоточном режиме. Вместо [count] укажите количество потоков
    -n [schema] или —schema=[schema]
    Восстановить объекты схемы [schema]
    -N [schema] или —exclude-schema=[schema]
    Не восстанавливать объекты схемы [schema]
    -O или —no-owner
    Не восстанавливать права на владение объектами
    -s или —schema-only
    Восстановить только схему
    -t [table name] или —table=[table name]
    Восстановить только таблицу [table name]
    -x или —no-privileges или —no-acl
    Не восстанавливать права доступа

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

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

     👍
    Специальные предложения
    • Бесплатный хостинг для сайта
    • Дешевый хостинг
    • Бесплатный 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 в настройках своего браузера