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

  • Дурдом

    Сегодня на работе утром небыло инета… Хотел написать в ЖЖ, но инет отсутствовал, а когда появился, оказалось, что на моей тачке все-равно нет инета, а так как админ до вечера не появился, то я так и не запостил новости с работы, а счас они уже устарели 🙂 Share this post: Share on X (Twitter) Share…

  • Каменец-Подольский

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

  • Последние события

    Что-то все собираюсь написать в ЖоЖо и все время руки не доходят, поэтому просто вкратце отмечу последние события. В субботу с отцом наконец залезли на крышу, чтобы смонтировать там тарелку. После установки ее на балконе и предыдущей, не очень удачной попытки, установки на крыше все прошло как по маслу. Залезли, поставили на кронштейн сборную систему…

  • Google Traffic

    Гугль теперь и у нас показывает пробки, это почти прекрасно! Почти, потому что тянут информацию они с видео-пробок, а у тех с покрытием пока что не очень, но всё равно, здорово, что появляется хорошая альтернатива яндексу – конкуренция! Глядишь, когда-то у нас и TMC заработает – служба, которой умеют пользоваться многие обычные GPS приборы, рассылает…

  • Assist

    Visual Assist хорош всем, кроме одной мелочи – он тормозной, как виндовс 98 на 486 машине. Сегодня меня достало то, что после каждого сохранения можно идти пить чай, потому что происходит это ну очень долго. Секрет оказался простым – авто-бекап файлов, который делает ассист. Однажды я уже сталкивался с его работой, после краша студии он…