Info
Content

Overview

WAL-G это инструмент для архивации и восстановления PostgreSQL, MySQL/MariaDB, and MS SQL Server (beta for MongoDB and Redis)

Installation

Готовые бинари можно найти тут - https://github.com/wal-g/wal-g/releases

Будем разбирать на примере последнего на текущий момент wal-g для postgres под ubuntu
https://github.com/wal-g/wal-g/releases/download/v2.0.1/wal-g-pg-ubuntu-20.04-amd64

Как можно заметить, имя релиза строится по следующему шаблону wal-g-DBNAME-OSNAME

Screenshot_2021_02_02-12_49_03-2023-06-20-at-17wal-g-releases.png

Если тебе нужен wal-g под другую систему то смотри тут как собрать - https://wal-g.readthedocs.io/#development

Есть autocompletion: wal-g help completion


Итак, качаем бинарь, кладем в /usr/local/bin/wal-g и даем ему права на исполнение

wget https://github.com/wal-g/wal-g/releases/download/v2.0.1/wal-g-pg-ubuntu-20.04-amd64
chmod ug+x wal-g-pg-ubuntu-20.04-amd64
mv wal-g-pg-ubuntu-20.04-amd64 /usr/local/bin/wal-g

Можем считать что установили

Configuration

Есть два способа сконфигурировать wal-g:

  1. Переменные окружения
  2. Конфигурационный файл

Через флаг --config /path можно указать путь до конфига

We support every format that the viper package supports: JSON, YAML, envfile and others.

Every configuration variable mentioned in the following documentation can be specified either as an environment variable or a field in the config file.

Storage

Указывает куда wal-g должен складывать бэкапы. См. https://wal-g.readthedocs.io/STORAGES/

Compression

WALG_COMPRESSION_METHOD - указывает какой метод компрессии использовать для бэкапов. Доступные варианты: lz4, lzma, zstd, brotli

По умолчанию lz4. Потому что это самый быстрый метод, но он имеет плохую степень сжатия. LZMA медленнее, но он сжимает в 6 раз сильнее чем LZ4. Brotli и ZSTD это хороший компромис между сжатием и скоростью, они сжимают в три раза сильнее чем LZ4

Encryption

  • YC_CSE_KMS_KEY_ID, YC_SERVICE_ACCOUNT_KEY_FILE - для настройки шифрования через Yandex Cloud KMS
  • WALG_LIBSODIUM_KEY, WALG_LIBSODIUM_KEY_PATH, WALG_LIBSODIUM_KEY_TRANSFORM - для настройки шифрования через libsodium
  • WALG_GPG_KEY_ID, WALG_PGP_KEY, WALG_PGP_KEY_PATH, WALG_PGP_KEY_PASSPHRASE - для настройки шифрования через GPG

Monitoring

WALG_STATSD_ADDRESS - позволяет включить паблишинг метрик в statsd или statsd_exporter. Метрики будут засылаться по UDP. Порт по умолчанию - 9125

Profiling

Профилирование позволяет находить узкие места в работе wal-g

  • PROFILE_SAMPLING_RATIO - число от 0 до 1 указывающее вероятность того что будет включен профилировщик. Если установлено значение 1, он всегда будет работать. Это позволяет осуществлять вероятностную выборку вызовов. Поскольку процессы WAL-G могут создаваться несколько раз в секунду (например, wal-g wal-push), мы не хотим профилировать их все
  • PROFILE_MODE - какой профиль собираем, может быть одним из: cpu, mem, mutex, block, threadcreation, trace, goroutine. По умолчанию - cpu
  • PROFILE_PATH - директория в которую надо сложить профили. По умолчанию - $TMPDIR

Rate limiting

WALG_NETWORK_RATE_LIMIT - задает ограничение трафика для операций backup-push/backup-fetch. Задается в байтах в секунду

Database-specific options

Есть множество db-specific опций, смотри их в https://wal-g.readthedocs.io/#databases

Usage

Следующие команды поддерживаются для всех типов баз данных

  • backup-list - выводит список доступных бэкапов

    • --pretty - выводит в виде таблицы
    • --json - выводит в json, если добавить флаг --pretty то будет красивый json
    • --detail - обогащает дополнительной инфой, можно добавить флаги --pretty и/или --json
  • delete - удаляет бэкапы и WAL'ы перед ними. По умолчанию ничего не сделает, если действительно хочешь удалить то нужно добавить в конец флаг --confirm. Бэкапы помеченные как 'permanent' не будут удалены
    delete может работать в четырех режимах: retain, before, everything и target
    Они позволяют удалять либо все кроме определенного кол-ва наисвежайших, либо все до определенного бэкапа, либо все, либо конкретный бэкап
    Подробности смотри в https://wal-g.readthedocs.io/#delete

Storage tools

Группа команд wal-g st позволяет осуществлять прямое взаимодействие с сконфигурированными стораджами
Подробности в https://wal-g.readthedocs.io/StorageTools

Databases

PostgreSQL

Информация об установке, конфигурации и использовании

MySQL/MariaDB

Информация об установке, конфигурации и использовании

SQLServer

Информация об установке, конфигурации и использовании

Mongo [Beta]

Информация об установке, конфигурации и использовании

FoundationDB [Work in progress]

Информация об установке, конфигурации и использовании

Redis [Beta]

Информация об установке, конфигурации и использовании

Greenplum [Work in progress]

Информация об установке, конфигурации и использовании

Development

О том как собрать из исходников https://wal-g.readthedocs.io/#development

No Comments
Back to top