DRX INFRA Написать

Бэкап базы Directum RX:
команды под вашу систему

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

1 · Что копируем

Способ
Где работает база

2 · Куда и когда

Чем запускать

3 · Что получилось

    Меняете поле, команды ниже пересчитываются сразу. Адрес страницы запоминает введённое.

    Команды

    Бэкап прямо сейчас

    Включите JavaScript, чтобы увидеть команды.

    Проверка восстановлением

    
          

    Скрипт для расписания

    
          

    Расписание

    
          

    Бэкап на том же диске, что и база, спасает только от ошибки человека. От отказа диска или сервера он не защищает. Выносите каталог на другой сервер или в хранилище и раз в квартал восстанавливайтесь из бэкапа на отдельном стенде с замером времени.

    Какой способ выбрать

    Способы различаются тем, что именно сохраняется, сколько это занимает и до какого момента можно вернуться.

    pg_dumpДамп: медленно, зато переносимо

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

    Цена этого: скорость. Данные читаются построчно, а при восстановлении заново строятся все индексы. У нас база на 15 ГБ выгружается в четыре потока около четырёх минут, восстановление занимает в несколько раз больше. Для баз в сотни гигабайт дамп остаётся средством переноса, а не ежедневного бэкапа. Вернуться можно только на момент запуска дампа.

    pg_basebackupФайлы целиком: быстро, но всё сразу

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

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

    pg_probackupИнкрементальные бэкапы и восстановление на момент времени

    Утилита от Postgres Professional, работает и с ванильным PostgreSQL. Раз в неделю делает полный бэкап, в остальные дни сохраняет только изменившиеся блоки. Сама следит за сроком хранения, проверяет целостность и умеет восстанавливать на произвольный момент времени, если настроен архив журнала.

    Это выбор для баз от сотни гигабайт и для систем, где потерять день работы нельзя. Плата: её нужно установить и один раз настроить каталог бэкапов.

    Роли и пароли хранятся отдельно

    Дамп одной базы не содержит ролей и их паролей: они общие для сервера. Без них восстановленная база окажется без владельцев и прав. Поэтому в командах рядом с дампом базы всегда идёт выгрузка pg_dumpall --globals-only.

    Тела документов

    В базе Directum RX лежат карточки, задачи и права. Сами файлы документов обычно хранятся отдельно: в файловом хранилище или в S3. Бэкап базы без бэкапа хранилища даёт карточки без содержимого. Копировать их нужно согласованно: сначала базу, затем хранилище.

    Почему таймер systemd, а не cron

    Оба варианта рабочие. Таймер удобнее в трёх вещах. Пропущенный из-за выключенного сервера запуск выполнится после включения. Вывод скрипта попадает в журнал, и его видно командой journalctl. В описании службы задаётся пониженный приоритет процессора и диска, чтобы бэкап не мешал ночным заданиям системы.

    Как проверить бэкап учебным восстановлением и что записать в протокол. Разбор в блоге

    Настройки самой базы под ваш сервер. Калькулятор настроек PostgreSQL