PostgreSQL backup to Azure

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

В нашем случае действие происходит на базе Ubuntu 14, PostgreSQL 9.5 установлен локально.
Первым шагом нам необходимо установить сам pghoard и supervisor, т.к. systemd нет, а запускать демона с системой нужно.

Текущая версия pghoard 1.4 в pypi нам не подходит (в ней нету поддержки новых модулей azure-storage), поэтому инсталлировать её нужно из репозитория, а поскольку pghoard работает только с третьим питоном, то делаем это с помощью pip3
UPDATE:
предварительно нужно установить модули:

azure
azure-storage==0.33

и проапгрейдить requests до версии 2.10+
END UPDATE

pip3 install git+https://github.com/ohmu/pghoard
apt-get install supervisor

Для автозапуска демона создаём конфигурационный файл pghoard.conf с минимально необходимым контентом и кладём его в /etc/supervisor/conf.d/

[program:pghoard]
user = postgres  # Запускать нужно от имени postgres, иначе не удастся подключиться к СУБД
group = postgres
directory = /var/lib/pghoard
command = /usr/local/bin/pghoard /var/lib/pghoard/pghoard.json
autostart=true
autorestart=true
environment=HOME="/var/lib/postgresql"  # Должен быть HOME пользователя postgres (туда записывается пароль и потом оттуда считывается)

Создаём пользователя в postgresql для выполнения репликации:
psql -c "CREATE USER pghoard PASSWORD 'hoardpassword' REPLICATION"

И вносим в /etc/postgresql/9.5/main/pg_hba.conf запись, разрешающую выполнять репликацию:
host replication pghoard 127.0.0.1/32 md5

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

max_wal_senders = 2
wal_level = archive  # 'hot_standby' or 'logical' are also ok

Перезапускаем postgresql и настраиваем pghoard на работу с Azure:

{
        "backup_location": "/var/lib/pghoard",
        "backup_sites": {
                "mysite": {
                        "nodes": [
                        {
                                "host": "127.0.0.1",
                                "password": "hoardpassword",
                                "port": 5432,
                                "user": "pghoard"
                        }
                        ],
                        "object_storage": {
                                "storage_type": "azure",
                                "account_name": "<storage-account>",
                                "account_key": "<storage-account-key>",
                                "bucket_name": "<bucket-name>"
                        }
                }
        }
}

После этого выполняем service supervisor restart и наблюдаем, как бекапы заливаются в azure blob storage.

Similar Posts

  • Ночной Киев

    Сегодня со Слоном катались по ночному городу. Что я могу сказать – прикольно – машин мало, едешь себе и едешь. Проехали по окружной – стока девок я ишо не видел, что самое интересное, там же было больше всего гаишников 🙂 Слон попросил порулить, сказал, что уже умеет ездить. Сказать что это было не совсем так…

  • Сумбур

    Что-то давно не писал я, мысли вроде бы появляются, но потом хлоп – и нету 🙂 Съездил на праздники к бабушке в Ульяновку, что в 250 км от Киева. Прикольно там, спокойно, компов практически нету. С другой стороны, делать там, по большому счету, нечего. Вот народ и спивается потихоньку, или женится. Для меня было несколько…

  • Add-in stable alpha

    Ура! Я наконец-то сделал более-менее стабильный адд-ин, который может работать не только на моей машине 🙂 На данный момент реализовано: 1. Компиляция 1.1. Компилируется каждый файл по отдельности. Файлы берутся из проекта в студии. 1.2. Ошибки/предупреждения парсятся и выводятся в формате, который понимает студия, благодаря чему можно кликнуть на ошибку и перейти на строчку в…

  • Октоберфест, Киев

    Вчера ходили на вариацию Октоберфеста, которую проводят в Киеве. Идя туда было ощущение, что приду, посмотрим чего там такого и пойдем куда-нить в другое место. Внутри оказалось на удивление интересно, играла заводная ирландская музыка, бегали “немецкие” мальчики и девочки и царила довольно праздничная атмосфера. Самым большим позитивом были столы – под обоими тентами почти все…

  • Снова автомобиль

    Похоже, что траблы с совиет каром – это норма жизни, только разобрался с геном, как на меня обрушилась новая проблема. Уезжал вчера с военки, все хорошо, кроме одной мелочи – отказал один цилиндр, хорошо, что я еще не выехал на большую дорогу, плохо что при этом шел дождь. Каким-то чудом мне удалось пофиксить этот баг,…

  • Авто

    Начинаешь немного иначе смотреть на дорогу и стиль вождения после того как ты еле успеваешь затормозить перед едущей впереди машиной и думаешь “вуух… пронесло…” и внезапно видишь в зеркале заднего вида машину, которая не успела затормозить и врезается в стоящий за тобой биммер… Этот стук нельзя спутать ни с чем… В общем надо ездить аккуратно…