Andryss / DistrDBLabWork3

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Distributed systems of data storage lab work 3

Задание

Отчет должен быть самостоятельным документом (без ссылок на внешние ресурсы), содержать всю последовательность команд и исходный код скриптов по каждому пункту задания. Для демонстрации результатов приводить команду вместе с выводом (самой наглядной частью вывода, при необходимости).

Этап 1. Резервное копирование

  • Настроить резервное копирование с основного узла на резервный следующим образом: Периодические холодные полные копии. Полная копия (rsync) по расписанию (cron) раз в сутки. СУБД на время копирования должна останавливаться. На резервном узле хранить 14 копий, после успешного создания пятнадцатой копии, самую старую автоматически уничтожать.
  • Подсчитать, каков будет объем резервных копий спустя месяц работы системы, исходя из следующих условий:
    • Средний объем новых данных в БД за сутки: 900МБ.
    • Средний объем измененных данных за сутки: 750МБ.
  • Проанализировать результаты.

Этап 2. Потеря основного узла

Этот сценарий подразумевает полную недоступность основного узла. Необходимо восстановить работу СУБД на РЕЗЕРВНОМ узле, продемонстрировать успешный запуск СУБД и доступность данных.

Этап 3. Повреждение файлов БД

Этот сценарий подразумевает потерю данных (например, в результате сбоя диска или файловой системы) при сохранении доступности основного узла. Необходимо выполнить полное восстановление данных из резервной копии и перезапустить СУБД на ОСНОВНОМ узле.

Ход работы:

  • Симулировать сбой:
    • удалить с диска директорию WAL со всем содержимым.
  • Проверить работу СУБД, доступность данных, перезапустить СУБД, проанализировать результаты.
  • Выполнить восстановление данных из резервной копии, учитывая следующее условие:
    • исходное расположение дополнительных табличных пространств недоступно - разместить в другой директории и скорректировать конфигурацию.
  • Запустить СУБД, проверить работу и доступность данных, проанализировать результаты.

Этап 4. Логическое повреждение данных

Этот сценарий подразумевает частичную потерю данных (в результате нежелательной или ошибочной операции) при сохранении доступности основного узла. Необходимо выполнить восстановление данных на ОСНОВНОМ узле следующим способом:

  • Восстановление с использованием архивных WAL файлов. (СУБД должна работать в режиме архивирования WAL, потребуется задать параметры восстановления).

Ход работы:

  • В каждую таблицу базы добавить 2-3 новые строки, зафиксировать результат.
  • Зафиксировать время и симулировать ошибку:
    • удалить любые две таблицы (DROP TABLE)
  • Продемонстрировать результат.
  • Выполнить восстановление данных указанным способом.
  • Продемонстрировать и проанализировать результат.

Структура

  • create_backup.sh - скрипт для создания снимка базы данных на запасном узле
  • recover_backup.sh - скрипт для восстановления снимка на текущей машине
  • recover_failed_disk.sh - скрипт для восстановления снимка на основной машине с учетом недоступных табличных пространств
  • only_recover.sh - скрипт для восстановления снимка на основной машине без дальнейшего поднятия сервера

Использование

./<script_name>.sh

About


Languages

Language:Shell 100.0%