Важно: Данный раздел актуален для Платформы данных в Публичном облаке и On-Premise.
WAL-G - это инструмент резервного копирования и восстановления данных для кластеров RT.WareHouse. В отличии от gpbackup, wal-g использует бинарное копирование данных, что значительно увеличивает скорость создания и разворота резервных копий. Кроме того wal-g использует сжатие LZ4, LZMA, ZSTD или Brotli, благодаря чему значительно экономится дисковое пространство, занятое под резервные копии.
WAL-G предлагает:
Минимально необходимые версии ПО для работы с wal-g:
Для начала работы WAL-G необходимо пройти авторизацию в RT.ClusterManager (Рисунок 1).
Рисунок 1. Стартовая страница RT.ClusterManager
После авторизации, нажатием, выбрать нужный кластер из раздела “Кластеры” (Рисунок 2).
Рисунок 2. Выбор кластера
В окне подраздела “Общие” перейти в компоненту “gp” (Рисунок 3).
Рисунок 3. Выбор компоненты “gp”
Внутри компоненты “gp” выбрать подраздел “Конфигурация” (Рисунок 4).
Рисунок 4. Подраздел “Конфигурация” и выбор walg_backup
Форма поиска и поле default являются общими для всех вкладок подраздела конфигурация.
В нижней части подраздела “Конфигурация” расположены кнопки взаимодействия:
Для перехода к WAL-G, выбрать вкладку “walg_backup” из подраздела “Конфигурация”.
Вкладка “walg_backup” предназначена для настройки параметров конфигурации wal-g (см. Рисунок 4).
При выборе вкладки walg_backup параметры полей установлены по-умолчанию.
Далее представлены параметры конфигурации и их возможные значения:
walg_enable
Включает или отключает поддержку wal-g бэкапов. Для применения изменения - нужно запустить "Переконфигурировать". Это действие требует перезагрузки кластера GP.
Доступные значения:
Значение по-умолчанию: True
wal_log_level
Предназначен для выбора уровня логирования.
Доступные значения:
Значение по-умолчанию: NORMAL
walg_compression_method
Предназначен для выбора алгоритма сжатия.
Доступные значения:
Значение по-умолчанию: brotli
walg_backup_storage
Предназначен для выбора расположения хранилища бэкапов (локально, к примеру nfs, или S3).
Доступные значения:
Значение по-умолчанию: local
Бэкапы со всех сегментов и мастера должны сохраняться в единое сетевое хранилище (local или S3).
Инструкция по настройке сетевого каталога NFS для хранения бэкапов
walg_file_prefix
Предназначен для указания пути до директории хранения резервных копий wal-g на локальном диске. Если данной директории нет, она будет создана.
Значение по-умолчанию: /home/gpadmin/walg_backup
walg_aws_endpoint
Предназначен для указания адреса хранилища S3.
Значение по-умолчанию: пусто
walg_aws_access_key
Предназначен для указания S3 access key.
Значение по-умолчанию: пусто
walg_aws_access_key
Предназначен для указания S3 access key.
Значение по-умолчанию: пусто
walg_aws_secret_access_key
Предназначен для указания S3 secret access key.
Значение по-умолчанию: пусто
walg_s3_prefix
Предназначен для имени бакета S3 (S3 bucket).
Бакет должен быть предварительно создан в вашем S3 хранилище!
Значение по-умолчанию: пусто
walg_upload_concurrency
Предназначен для настройки количества параллельных потоков, используемых во время выгрузки резервной копии в хранилище S3.
Значение по-умолчанию: 4
walg_download_concurrency
Предназначен для настройки количества параллельных потоков, используемых во время загрузки резервной копии из хранилища S3.
Значение по-умолчанию: 2
walg_network_rate_limit
Предназначен для настройки ограничения скорости загрузки по сети во время резервного копирования, введите количество байт в секунду.
Значение по-умолчанию: 2097152
walg_disk_rate_limit
Предназначен для настройки ограничения скорости чтения с диска во время резервного копирования, введите количество байт в секунду.
Значение по-умолчанию: 62914560
walg_upload_disk_concurrency
Предназначен для настройки количества потоков параллельного чтения диска во время резервного копирования-выгрузки.
Значение по-умолчанию: 1
walg_tar_size_threshold
Предназначен для настройки размера одного резервного пакета (в байтах). Меньший размер приводит к гранулярности и более оптимальному, более быстрому восстановлению (нужно учесть, что это также увеличивает количество запросов на хранилище, что может привести к повышению нагрузки на него).
Значение по-умолчанию: 524288000
walg_log_rotate_days
Указывает количество дней хранения логов wal-g (в папке /var/log/walg/).
Значение по-умолчанию: 30
walg_gomaxprocs
Указывает количество активных потоков, которые может использовать Go-приложение.
Значение по-умолчанию: 6
walg_delta_max_steps
Предназначен для настройки максимального количества инкрементальных бэкапов между полными.
Значение по-умолчанию: 10
walg_retention
Предназначен для настройки количества последних полных резервных копий, которые должны оставаться в хранилище при удалении старых.
Значение по-умолчанию: 3
walg_archive_wal
Включает или отключает архивирование wal-файлов в хранилище бэкапов wal-g. Без включения этого параметра, бэкапы в хранилище могут быть невалидными и не развернутся.
Доступные значения:
Значение по-умолчанию: True
walg_restore_empty_data
Предназначен для включения или отключения очистки директории с данными перед запуском восстановления из бэкапа.
walg_restore_empty_data - перед разворотом из бэкапа удаляются все данные из data-директории на всех сегментах. Будьте внимательны при запуске восстановления из бэкапа: убедитесь, что данный бэкап существует и валидна цепочка wal-файлов в хранилище (это можно сделать с помощью запуска действия “Run wal-g wal verify”! Без этого параметра обычные бэкапы не развернутся (в ошибках, при развороте, будет писать, что data-директория не пустая и ее следует почистить на всех сегментах).
Доступные значения:
Значение по-умолчанию: True
walg_recover_after_restore
Если включено в True, то после процесса восстановления из бэкапа автоматически запускается процесс восстановления зеркал - gprecoverseg .
Доступные значения:
Значение по-умолчанию: True
walg_wal_verify_after_backup
Если включено в True, то после создания полного или дэльта бэкапа автоматически запускается проверка целостности цепочки wal-файлов в хранилище бэкапов для каждого сегмента.
Доступные значения:
Значение по-умолчанию: False
Run wal-g full backup
Запускает создание полного бэкапа кластера gp.
Run wal-g delta backup
Запускает создание инкрементального бэкапа кластера gp.
Show wal-g backup list
Отображение списка бэкапов (смотри логи задачи).
Run wal-g restore from backup
Запускает восстановление кластера gp из ранее созданного бэкапа (необходимо будет указать имя бэкапа, которое можно посмотреть выполнив действие “Show wal-g backup list
”, либо указать “LATEST
” (обязательно в верхнем регистре), тогда восстановление будет запущено из последнего доступного бэкапа).
Create wal-g restore-point
Запускает создание точки восстановления для кластера gp.
Для корректного создания точки восстановления (а главное последующего восстановления из нее) в хранилище бэкапов должен присутствовать хотя бы один full бэкап!
Show wal-g restore-point list
Отображение списка точек восстановления (смотри логи задачи).
Run wal-g restore from restore-point
Запускает восстановление кластера gp из ранее созданной точки восстановления (необходимо будет указать имя точки восстановления, которое можно посмотреть выполнив действие “Show wal-g restore-point list
”).
Run wal-g wal verify
Запускает проверку целостности цепочки wal-файлов в хранилище бэкапов для каждого сегмента.
Проверки нужны, для подтверждения того, что:
Происходит проверка, что все сегменты WAL в диапазоне [стартовый wal самого старого бэкапа, текущий wal кластера]
доступны в хранилище. Если резервных копий в хранилище нет, то будет просканирован диапазон [1, текущий wal кластера]
(Рисунок 5).
Рисунок 5. Проверка доступности WAL сегментов
Для запуска проверки необходимо:
1. Выбрать нужный кластер.
2. В окне подраздела “Общие” перейти в компоненту “gp”.
3. У компоненты “gp", в подразделе “Общие”, нажать на кнопку с иконкой “трех точек” для отображения списка действий, затем выбрать "Run wal-g wal verify".
4. Будет запущен процесс проверки хранилища.
5. Окончание выполнения процесса проверки можно посмотреть:
6. После окончания выполнения процесса, результат можно посмотреть в логах события (см. Рисунок 6).
Результатом проверки является:
OK
- если нет отсутствующих сегментов.WARNING
- если есть некоторые отсутствующие сегменты, но они не MISSING_LOST
.FAILURE
- если есть некоторые MISSING_LOST
сегменты.В результатах проверки отображены следующие статусы сегментов WAL:
FOUND
- сегменты присутствуют в хранилище WAL.MISSING_DELAYED
- сегменты отсутствуют в хранилище WAL, но, вероятно, archive_command
еще не пытался их архивировать.MISSING_UPLOADING
- сегменты, которые отсутствуют в хранилище WAL, но, похоже, находятся в процессе загрузки в хранилище.MISSING_LOST
- сегменты отсутствуют в хранилище WAL и уже не будут загружены.Возможные причины отсутствия wal-файлов сегментов:
ProbablyUploading
- размер диапазона сегментов берется из настройкиWALG_UPLOAD_CONCURRENCY
.
ProbablyDelayed
- размер диапазона сегментов берется из настройкиWALG_INTEGRITY_MAX_DELAYED_WALS
.
Для проверки валидности резервной копии и просмотра диапазонов сегментов необходимо рассмотреть сформированный файл логов (Рисунок 6).
Рисунок 6. Логи, просмотр диапазонов
В случае, если в хранилище бэкапов обнаружены диапазоны с отсутствующими сегментами wal (MISSING_LOST
), необходимо:
С очень большой вероятностью восстановление из этих резервных копий будет невозможным.
Файлы с метаинформацией о бэкапах (полных и дэльта) и ресторе - поинтах хранятся в резервном хранилище бэкапов, в каталоге/path_to_backup_storage/basebackups_005/
(Рисунок 7).
Информация в этих файлах хранится в формате json.
Рисунок 7. Содержание файлов с метаинформацией о бэкапах
Необходимо найти файл с метаинформацией о бэкапе, в котором указанный диапазон отсутствующих бэкапов (для такого же content_id) будет совпадать, либо входить в диапазон из значений ["backup_name","restore_point_lsn"]
.
Где:
Чтобы lsn преобразовать в имя wal-файла, достаточно выполнить:
select pg_xlogfile_name('<restore_point_lsn>');
в консоли psql.
В данном разделе приведены наиболее часто встречающиеся случаи (кейсы) ошибок и некорректной работы, а также рекомендации по дальнейшим действиям.
Кейс №1.
Ошибка:
Создание бэкапа завершается ошибкой: ERROR: 2024/09/18 18:01:47.804812 failed to download the segment backup 5c7d0f5c-9a84-4ee0-ab90-b3986d99b592 metadata (tried 5 times): failed to select matching backup for id 5c7d0f5c-9a84-4ee0-ab90-b3986d99b592 from subfolder segments_005/seg1: No backups found
Возможная причина 1:
Неверно настроена шара (сетевой каталог) на машинах кластера gp или неверно указан путь до нее в конфигурации СМ (walg_backup_storage=local).
Решение:
Проверить корректность настройки сетевого каталога и верно ли указан путь до него (или подкаталога в нем) в параметре walg_file_prefix
.
Смонтирована ли сетевая шара можно проверить командой:
df -h | grep /path_to_share/
В выводе должна быть информация куда смонтирована шара (Рисунок 8):
Рисунок 8. Расположение шары
Возможная причина 2:
Не снялся бэкап на одном из сегментов кластера gp.
Решение:
Проверить ошибки в логе /var/log/walg/wal-g-log-seg{id_сегмента}.log