Резервное копирование и восстановление данных
СТАНДАРТНАЯ ОПЕРАЦИОННАЯ ПРОЦЕДУРА
Резервное копирование и восстановление данных в компьютеризированной системе «n-tst.ru»
Номер СОП: СОП-КС-06
Версия: 1.0
Дата эффективности: 01.11.2026
Планируемая дата пересмотра СОП: 01.11.2028
ФИО Должность Подпись Дата
Утвердил Генеральный директор
Разработал Специалист по клиническим исследованиям
История изменений документа
Версия Дата эффективности Изменения Необходимость тренинга
СОП-КС-06, версия 1.0 01.11.2026 Первоначальный документ. Да
- НАЗНАЧЕНИЕ ПРОЦЕДУРЫ
Настоящая процедура устанавливает порядок резервного копирования (Backup) и восстановления (Restore) данных компьютеризированной системы «n-tst.ru». Целью процедуры является обеспечение сохранности и доступности первичных данных клинического исследования (eCRF), а также минимизация рисков потери данных в случае сбоев оборудования, человеческого фактора или кибератак.
- ОБЛАСТЬ ПРИМЕНЕНИЯ
Процедура применима к серверной инфраструктуре, базе данных (PostgreSQL) и исходному коду программного обеспечения (Backend/Frontend), развернутым в Production-среде системы «n-tst.ru».
-
НОРМАТИВНО-ПРАВОВАЯ БАЗА
-
Решение Совета Евразийской экономической комиссии № 63 от 01.08.2025 г. (п. 5.5.3, 5.5.4).
-
21 CFR Part 11: Electronic Records; Electronic Signatures (США).
-
ISPE GAMP 5: A Risk-Based Approach to Compliant GxP Computerized Systems..
-
-
ОПРЕДЕЛЕНИЯ И СОКРАЩЕНИЯ
Термин Определение
Полный бэкап (Full Backup) Резервная копия всей базы данных и кода, содержащая все данные на момент создания. RPO (Recovery Point Objective) Целевая точка восстановления. Максимально допустимый период времени, за который данные могут быть потеряны (для данной системы --- 24 часа). RTO (Recovery Time Objective) Целевое время восстановления. Максимально допустимое время простоя системы с момента сбоя до полного восстановления (для данной системы --- 4 часа). Cron Планировщик задач в операционной системе Linux, обеспечивающий автоматический запуск скриптов. pg_dump Стандартная утилита PostgreSQL для создания логических дампов базы данных.
- ОБЯЗАННОСТИ
<!-- -->
-
QA (Гарантия качества): проводит периодический аудит (не реже 1 раза в квартал) наличия и целостности файлов резервных копий. Утверждает результаты тестовых восстановлений.
-
Разработчик: предоставляет актуальные скрипты резервного копирования при изменении структуры БД или кода.
<!-- -->
6.1. Состав резервной копии
В состав резервной копии входят:
-
Дамп базы данных (Формат pg_dump -F c): cодержит все данные клинического исследования (пациенты, визиты, аудит, подписи).
-
Архив исходного кода (Формат tar.gz): cодержит актуальные версии файлов Backend и Frontend (без папки node_modules).
6.2. Частота выполнения и хранение
-
Ежедневно (в 03:00 по МСК): Автоматический запуск скрипта backup_irk.sh.
-
Еженедельно: полная копия переносится на внешний (off-site) сервер для защиты от физической потери основного сервера.
-
Срок хранения: ежедневные бэкапы хранятся в течение 30 календарных дней. Бэкапы, сделанные перед процедурой «Управления изменениями» (Change Control), хранятся до конца клинического исследования.
6.3. Процедура автоматического резервного копирования
-
В 03:00 Cron автоматически запускает скрипт /root/scripts/backup_irk.sh.
-
Скрипт создает дамп базы данных: pg_dump -d irk_db -F c -f /root/backups/irk_db_YYYY-MM-DD.dump.
-
Скрипт архивирует код: tar -czf /root/backups/irk_code_YYYY-MM-DD.tar.gz /var/www/irk/backend /var/www/irk/frontend --exclude=\'node_modules\'.
-
Скрипт автоматически удаляет файлы старше 30 дней.
-
Администратор системы раз в неделю проверяет логи выполнения Cron и наличие файлов в директории /root/backups/.
6.4. Процедура восстановления данных (Restore)
Восстановление выполняется Администратором системы только в случае критического сбоя или по запросу Владельца системы.
-
Остановить сервис бэкенда: systemctl stop irk-backend.
-
Пересоздать базу данных (при необходимости): удалить текущую и создать пустую irk_db.
-
Восстановить дамп базы: pg_restore -d irk_db /root/backups/irk_db_YYYY-MM-DD.dump.
-
Распаковать код (если требуется откат версии): tar -xzf /root/backups/irk_code_YYYY-MM-DD.tar.gz -C /var/www/irk/.
-
Запустить сервис бэкенда: systemctl start irk-backend.
-
Проверить работоспособность системы через эндпоинт curl -s http://127.0.0.1:3000/api/health.
-
Зафиксировать факт восстановления в Журнале восстановления (Приложение 2).
6.5. Верификация (Тестирование восстановления)
Не реже одного раза в месяц Администратор системы обязан провести тестовое восстановление:
-
Создать временную базу данных irk_db_test.
-
Развернуть в неё последний дамп.
-
Убедиться, что данные считываются (выполнить тестовый SELECT-запрос, например, к таблице patients).
-
Оформить Акт тестирования восстановления (Приложение 3).
-
ПЕРЕЧЕНЬ ПРИЛОЖЕНИЙ
Приложение 1. Журнал резервного копирования.
Приложение 2. Журнал восстановления данных.
Приложение 3. Акт тестирования процедуры восстановления.
Приложение 1. Журнал резервного копирования.
Дата Время Тип (БД / Код) Имя файла Размер (КБ) Статус (Успех/Ошибка) Подпись администратора
Приложение 2. Журнал восстановления данных
(Заполняется только в случае реального сбоя)
Дата и время сбоя Причина сбоя Дата и время восстановления Использованный бэкап (Имя файла) RTO (Факт. время) Подпись QA
Приложение 3. Акт тестирования процедуры восстановления
(Заполняется ежемесячно при тестовом развертывании)
-
Дата тестирования: «___» _________ 20__ г.
-
Тестируемый бэкап: ___________________________
-
Среда восстановления (Staging): [ ] irk_db_test
-
Результаты проверки (чек-лист):
-
Дамп БД успешно развернут без ошибок.
-
Таблицы patients, visits, electronic_signatures содержат данные.
-
Сервис irk-backend успешно запускается и отвечает на запросы.
-
Хеш-сумма восстановленного файла совпадает с оригиналом (если применимо).
-
Заключение: Процедура восстановления прошла успешно. Данные целостны и доступны.
-
Подпись исполнителя (IT): _____________ / _____________ / «__» _____ 20__ г.
-
Подпись QA: _____________ / _____________ / «__» ______ 20__ г.