Экспертиза баз данных и СУБД

Судебная экспертиза базы данных Redis

Устанавливаем, что было в Redis до потери данных, можно ли это восстановить и чем вызван сбой. Для первого обращения достаточно описания — без рабочей базы и паролей.

Ориентир по стоимости экспертизы
от 100 000 ₽
Ориентир по сроку экспертизы
от 10 рабочих дней
  • Судебные экспертизы
  • Внесудебные исследования
  • Рецензирование заключений
01 Проверим компетенцию

До оплаты определим, относится ли задача к выбранному виду исследования.

02 Поможем подготовиться

Уточним вопросы и перечень материалов — готовый комплект не обязателен.

03 Работаем с регионами

Принимаем задачи из России, Казахстана и Беларуси; часть материалов можно передать электронно.

04 Сопровождаем результат

Разъясняем методику и выводы, отвечаем на вопросы суда в пределах компетенции эксперта.

О направлении

Подробно о задачах, объектах и методиках

Материал описывает типовые задачи и вопросы. Окончательные формулировки определяются с учётом компетенции эксперта, а правовую оценку обстоятельствам даёт суд.

Содержание страницы

    Экспертиза Redis нужна, когда спор зависит от значения и типа ключей, TTL, вытеснения, снимка памяти RDB или журнала дозаписи AOF, репликации, Sentinel, Redis Cluster, сбоя, производительности либо миграции. Специалист устанавливает версию и режим размещения, топологию, логическую базу или хеш-слоты, правила сохранения на диск и fsync, политику maxmemory, модули, состояние репликации и связь команд с приложением. Это направление экспертизы баз данных и СУБД.

    Предварительно можно определить, какие вопросы проверяемы по сохранившимся источникам. Для первого обращения достаточно конфигурации, перечня файлов RDB и AOF, снимков и резервных копий, топологии, журналов и времени события. Если сохранение на диск было отключено, нужный ключ истёк или был вытеснен, AOF переписан, а аудит приложения отсутствует, прежнее значение может быть невозможно установить по сохранившимся источникам. Такая оценка помогает до полной работы сохранить оставшиеся файлы и уточнить достижимый результат.

    Если система ваша или вы действуете с согласия её владельца, первым делом выясните, сохраняется ли база на диск. Это показывает INFO persistence, а при доступной команде настроек — CONFIG GET save и CONFIG GET appendonly. Если файлы RDB и AOF на диске уже есть, сначала скопируйте их: новый снимок перезапишет прежний dump.rdb, а он и есть состояние до происшествия.

    Отдельно о том, что будет, если ответить не удастся. Задачу, по которой уже из присланных материалов видно, что вывода не получится, мы просто не берём в работу и говорим об этом сразу. Это не обещание положительного вывода: отказ на входе означает лишь, что невозможность видна уже из перечня материалов. Если же невозможность выясняется по итогам полноценного исследования, это результат, а не пустой счёт: заключение объясняет, почему ответа нет и чего именно не хватило. В споре такой вывод часто закрывает вопрос: обоснованный ответ, что спорного интервала нет ни в снимке памяти, ни в журнале дозаписи, показывает суду границы имеющихся источников. Назначать ли после этого дополнительную или повторную экспертизу, решает назначивший её орган. Бывает и частичная невозможность: тогда указывают, на какие вопросы ответ получен, а на какие нет и по какой причине.

    Кто снимает копию, решают по объекту. Иногда это делает сам заказчик или его администратор по согласованному плану; иногда — наш специалист, удалённо или с выездом, как отдельная консультация; иногда фиксация входит в саму экспертизу. Выбор зависит от сложности системы, доступности и трудоёмкости: файлы RDB и AOF снимают по-разному на одиночном сервере и на нагруженном кластере. Если инфраструктурой управляет другая сторона, порядок доступа определяет суд, и фиксацию проводят с участием эксперта.

    Если сохранение отключено, данные существуют только в памяти, и снимок нужен — иначе любой перезапуск уничтожит объект целиком. Но перед командой проверьте, переживёт ли её сервер: фоновое сохранение порождает копию процесса и на нагруженной базе способно занять вдвое больше памяти, а при нехватке — привести к аварийному завершению. Посмотрите свободную память узла, свободное место под каталогом сохранения и значение stop-writes-on-bgsave-error: при неудачном сохранении сервер по умолчанию перестаёт принимать запись. Если запаса нет, снимок делают с реплики, а не с основного узла. Если спорная система принадлежит другой стороне, не запускайте ничего: фиксацию проводят по определению суда с участием эксперта.

    До копирования не перезапускайте единственный экземпляр, не запускайте BGREWRITEAOF, переключение ролей, перераспределение слотов, FLUSHDB/FLUSHALL и исправление AOF: redis-check-aof --fix отбрасывает не «хвост», а всё от повреждённого места до конца файла. Сохраните RDB и весь многофайловый каталог AOF с манифестом, конфигурацию и журнал сервера, зафиксируйте роли, смещения репликации, состояние кластера, время и часовой пояс. Перезапись AOF Redis запускает сам, когда файл заметно вырастает, и копия, снятая во время перезаписи, окажется непригодной. Поэтому перед копированием каталога перезапись подавляют штатным способом: обнуляют порог автоматической перезаписи, убеждаются по INFO persistence, что перезапись не идёт, копируют файлы и возвращают прежнее значение. Обе команды изменения настроек записывают в протокол. Выполняет это владелец системы или уполномоченный им администратор; если система принадлежит другой стороне, доказательство сохраняют через суд.

    Не выполняйте диагностические команды, меняющие сроки хранения или счётчики, без протокола. Если для согласованного снимка используют CLIENT PAUSE ... WRITE, помните, что это остановка записи в боевой системе: задавайте конечный таймаут, чтобы пауза снялась сама, и согласуйте окно с владельцем — Redis обычно стоит в горячем пути приложения, и пауза в десятки секунд вызывает лавину таймаутов у клиентов. В управляемых сервисах доступа к живым файлам на узле нет, а часть команд недоступна. Зато у ряда провайдеров резервную копию можно выгрузить наружу обычным файлом RDB — это и есть предпочтительный объект, потому что его можно хэшировать, передать и разобрать автономно, в отличие от точки восстановления внутри сервиса. Фиксируют идентификатор задания выгрузки, время, регион и контрольную сумму. Что именно доступно, зависит от продукта и тарифа; недоступность части источников эксперт указывает как ограничение вывода.

    Что является объектом исследования Redis

    Redis хранит рабочий набор данных преимущественно в памяти, а сохранение на диск может использовать RDB, AOF, их сочетание или быть полностью отключено. Одиночный сервер, основной узел (primary) с репликами, Sentinel и Redis Cluster имеют разную топологию. Управляемые сервисы Redis и Redis Software добавляют собственные резервные копии, аудит и источники панели управления; конкретный продукт и версия должны быть установлены.

    В зависимости от задачи исследование может охватывать:

    • имена ключей, логические базы или слоты кластера, типы и значения данных, TTL и кодировку;
    • снимки RDB и их метаданные, манифест AOF, базовые и добавочные файлы;
    • настройки сохранения на диск, точки сохранения, appendfsync, перезапись AOF и результаты последнего сохранения;
    • maxmemory, политику вытеснения, счётчики истёкших и вытесненных ключей, уведомления пространства ключей;
    • идентификаторы и смещения репликации, буфер истории, роли, состояние Sentinel, узлы и слоты Cluster, эпохи конфигурации;
    • пользователей и правила ACL, ACL LOG, SLOWLOG, монитор задержек, журналы сервера и сохранённые результаты INFO и MONITOR;
    • модули, журналы приложения, очереди, сеансы и бизнес-смысл ключей.

    Один dump.rdb описывает набор данных на момент снимка, а не обязательно момент инцидента. Текущий работающий экземпляр уже изменяется из-за клиентов, истечения TTL и фоновой работы. Поэтому каждое состояние привязывают к способу и времени получения.

    Что может и чего не может установить эксперт

    При достаточных материалах можно определить состав ключей и значения в RDB/AOF либо в документированном срезе работающего экземпляра, параметры TTL, последовательность сохранившихся команд записи, настройки сохранения на диск и вытеснения, состояние репликации и причины отказа. Срез называют согласованным только при подтверждённом способе фиксации единого момента; результаты нескольких источников сопоставляют по общей временной шкале.

    При достаточных материалах эксперт может установить:

    • какие ключи, типы, значения и сроки действия содержатся в конкретном RDB или воспроизводимом AOF;
    • какие команды записи сохранились в AOF после последнего базового файла и перезаписи;
    • допускают ли политика сохранения и зафиксированный сбой потерю определённого интервала записей;
    • имеются ли признаки истечения TTL, нехватки памяти, вытеснения, FLUSH или удаления приложением;
    • как менялись роли, смещения репликации, переключения и принадлежность слотов;
    • что отражают ACL LOG, SLOWLOG, монитор задержек, журналы сервера и приложения;
    • полностью ли перенесены ключи, значения, типы и TTL.

    Redis по умолчанию не хранит вечную историю всех команд и пользователей. SLOWLOG включает только медленные с точки зрения выполнения команды, имеет ограниченный размер и исключает сетевой ввод-вывод. ACL LOG ориентирован на нарушения аутентификации и авторизации, а не на все успешные действия. MONITOR показывает поток с момента запуска и влияет на производительность. IP, имя клиента или пользователь ACL не обязательно идентифицируют физическое лицо.

    Материалы для исследования

    Файлы собирают до перезапуска и перезаписи AOF. Для каждого объекта фиксируют исходный узел и путь, средство получения и его версию, дату, время и часовой пояс, размер и SHA-256 завершённой мастер-копии. Мастер-копию сохраняют неизменной, исследование ведут на рабочей копии; после каждой передачи повторно проверяют SHA-256 и записывают отправителя, получателя, время и носитель. В Redis 7 и новее AOF может состоять из манифеста, базовых и добавочных файлов в одном каталоге; выборочное копирование одного файла неполно.

    В комплект обычно включают:

    • все снимки и резервные копии RDB, метаданные их создания;
    • полный каталог AOF, манифест, базовые и добавочные файлы, а также старые копии до перезаписи;
    • redis.conf, параметры командной строки, подключаемые файлы, файл ACL и конфигурацию модулей;
    • сохранённые разделы INFO: server, persistence, stats, memory, replication, commandstats, keyspace и cluster;
    • ROLE, идентификаторы и смещения репликации, буфер истории, конфигурацию и состояние Sentinel, CLUSTER NODES/SLOTS и события переключения;
    • журналы сервера, ACL LOG, SLOWLOG, данные задержек, журналы подписчика на уведомления ключей и внешнего мониторинга;
    • журналы приложения, прокси, IdP, оркестратора и сети, версию клиентской библиотеки и правила повторных попыток;
    • правила именования и шаблоны ключей, сериализацию, план миграции, SLA и спорный период.

    Команды на работающей системе могут менять счётчики, косвенные служебные структуры, журналы или нагрузку. Полный KEYS * на крупном рабочем экземпляре способен блокировать обслуживание; стратегию сбора выбирают с учётом риска и документируют. Последовательные SCAN, DUMP или чтения ключей не дают изоляции снимка: при одновременных записях ключи и значения могут появляться, исчезать или меняться между шагами, поэтому такой результат нельзя называть состоянием на единый момент.

    Согласованный срез получают выбранным и заранее описанным способом: краткой документированной приостановкой записей, штатным снимком управляемого сервиса либо контролируемым созданием RDB после сохранения уже существующих RDB/AOF. Для совместимых версий одним из вариантов служит CLIENT PAUSE ... WRITE на всех основных узлах с последующим CLIENT UNPAUSE. Для паузы указывают средство и версию, подтверждают её на всех узлах, учитывают поведение истечения срока ключей и вытеснения именно в этой версии и фиксируют общий подтверждённый интервал. BGSAVE создаёт новое производное состояние данных и меняет служебное состояние, поэтому фиксируют команду, время, журнал и влияние. Для Redis Cluster охватывают все основные узлы и все хеш-слоты. Если записи не остановлены, для каждого узла фиксируют начало и конец выгрузки, топологию, смещения репликации и параллельные изменения и формулируют интервальный, а не точечный вывод. Исходные RDB, AOF и выгрузку оперативного состояния хранят раздельно, каждый объект получает собственный SHA-256.

    Передача копии, в которой есть сведения о людях или охраняемая законом тайна, требует законного основания. По назначенной экспертизе объекты поступают от назначившего органа; вне процесса — от обладателя сведений и в объёме, необходимом для ответа на поставленные вопросы. Обезличивание при этом обсуждают не как уступку, а как способ передать меньше, чем есть. Эксперт не разглашает сведения, ставшие известными ему в связи с исследованием, а рабочие копии удаляет по окончании работы.

    RDB и AOF: разные источники и границы исследования

    RDB — компактный снимок набора данных на определённый момент, создаваемый по правилам сохранения или команде. Между снимками изменения на диск в RDB не попадают; при аварии возможна потеря интервала после последней успешной копии. Файл можно исследовать отдельно, но его время проверяют по внутренним метаданным, журналу и процессу резервного копирования, а не только по времени файловой системы.

    AOF записывает команды изменения данных для последующего воспроизведения. Устойчивость зависит от appendfsync: always, everysec и no дают разные окна риска. При перезапуске и одновременном RDB+AOF Redis использует AOF как более полный источник. Повреждённый или оборванный хвост исследуют до redis-check-aof --fix, поскольку исправление отбрасывает часть файла.

    Перезапись AOF создаёт минимизированное представление текущего набора данных вместо сохранения всех прежних команд. После неё факт и последовательность давно выполненных операций могут исчезнуть, хотя конечное значение сохранится. Поэтому AOF полезен для истории только в пределах фактически уцелевших базовых и добавочных файлов и не является неизменяемым аудитом.

    Загрузка старого RDB или воспроизведение AOF в текущем времени способны немедленно удалить ключи, абсолютный срок действия которых уже истёк. Поэтому сначала выполняют автономный разбор, фиксируют сохранённые абсолютные моменты истечения и только затем при необходимости запускают рабочую копию в изолированной среде с документированным контрольным временем.

    TTL, истечение срока и вытеснение

    Ключ может исчезнуть из-за явных DEL/UNLINK, истечения TTL, вытеснения по maxmemory, FLUSH, перезаписи, загрузки нового набора данных, переключения ролей либо логики модуля. Истечение обрабатывается пассивно при доступе и активно фоновой выборкой, поэтому физический момент удаления может отличаться от расчётного момента TTL.

    Различить эти причины по одному AOF нельзя: истечение срока и вытеснение сервер записывает в журнал такой же командой удаления, как и обычное удаление приложением. Само по себе наличие в AOF записи об удалении ключа не говорит о том, что ключ удалил человек или программа. Разделяют эти случаи только сопоставлением с настройками сроков и памяти, с журналом сервера и с поведением приложения — и если таких источников нет, ответ остаётся вероятным.

    Отдельно учитывают, что записи AOF по умолчанию не содержат времени: параметр aof-timestamp-enabled появился в Redis 7.0 и по умолчанию выключен, а имени клиента или пользователя в журнале нет вовсе. Поэтому время события по AOF определяют не из самого файла, а через сопоставление с журналом сервера, метриками, снимками RDB и внешними источниками.

    Вытеснение зависит от maxmemory и политики, например LRU, LFU или случайного выбора для всех либо только ключей с TTL. Счётчики INFO показывают агрегаты после запуска, но не называют каждый ключ. Уведомления пространства ключей помогают только если были включены и подписчик сохранил события; сами уведомления не являются сохраняемым журналом. Причину устанавливают по конфигурации, AOF, журналам, метрикам и приложению, а при недостатке данных оставляют альтернативы.

    Репликация, Sentinel и Cluster

    Репликация Redis по умолчанию асинхронна. Основной узел передаёт поток команд, а реплика отслеживает идентификатор и смещение репликации; буфер истории позволяет частичную повторную синхронизацию. При переключении роли признанная приложением запись могла не успеть попасть на реплику, назначенную основным узлом. WAIT повышает вероятность доставки на заданное число реплик, но не превращает Redis в строго согласованное хранилище и не заменяет сохранение на диск.

    Sentinel наблюдает экземпляры и координирует переключение ролей. Исследуют кворум, эпохи, выбор ведущего, выбранную реплику и переконфигурацию. Redis Cluster распределяет пространство ключей по хеш-слотам; проверяют идентификаторы узлов, эпохи конфигурации, перемещения слотов, состояния миграции и импорта, переключения и служебную сеть кластера. Реплика и соседний узел не являются независимой резервной копией: пустой или ошибочно изменённый основной узел может распространить состояние.

    Диагностика, аудит и производительность

    Журнал сервера и INFO описывают запуск, сохранение на диск, репликацию, память и счётчики. SLOWLOG хранит ограниченный список команд, чьё время выполнения сервером превысило порог, без сетевого времени. Монитор задержек фиксирует выбранные события с ограниченной историей и обычно выключен по умолчанию. ACL LOG сообщает об отказах аутентификации, авторизации и некоторых событиях безопасности.

    MONITOR передаёт выполняемые команды только с момента подключения и создаёт существенную нагрузку, поэтому его нельзя бездумно включать в рабочей среде. Для причины задержки сопоставляют commandstats, SLOWLOG, крупные ключи, фрагментацию памяти, создание дочернего процесса, fsync и перезапись RDB/AOF, вытеснение, CPU, ввод-вывод, сеть и пулы приложения. Текущий снимок не доказывает прошлое состояние без сохранённого мониторинга. Замедления и отказы сами по себе исследует экспертиза производительности и сбоев СУБД.

    Как проверить миграцию Redis

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

    Фиксируют версии источника и приёмника, снимок и момент переключения, схему репликации или двойной записи, сериализатор, отклонённые ключи, повторные попытки и записи после переключения. Отдельно проверяют ACL, сценарии и функции, модули, публикацию/подписку и поведение клиента: сообщения Pub/Sub не входят в набор данных RDB/AOF. MIGRATE, репликация и восстановление по-разному обрабатывают TTL и замену существующего ключа; эти различия включают в критерии. Когда предметом спора становится сам перенос, а не устройство базы, задачу закрывает экспертиза миграции баз данных.

    Примеры вопросов на экспертизу

    При судебной экспертизе окончательный круг вопросов определяет суд, а в иных предусмотренных законом процедурах — орган или лицо, назначившие экспертизу. Вопросы о виновности, умысле, правовой квалификации события, нарушении договора и ответственности разрешает суд или иной уполномоченный орган. Эксперт отвечает на поставленные вопросы в пределах специальных знаний и представленных материалов; о неясности вопроса, выходе за пределы компетенции или недостаточности материалов он в установленном порядке сообщает суду, органу или лицу, назначившим экспертизу.

    До назначения стороны могут использовать приведённые ниже формулировки как предложения о технических вопросах. Для Redis полезно указать экземпляр или кластер, логическую базу или слоты, ключ или шаблон, период, часовой пояс и технический критерий. Например, можно предложить исследовать, отражают ли AOF и журналы удаление ключа X и с какими техническими идентификаторами связана команда, либо какое состояние ключей по шаблону P воспроизводится из RDB Z и полного каталога AOF. Дополнительные примеры:

    1. Какие ключи, типы, значения и TTL содержатся в представленном RDB?
    2. Какие команды изменения данных и состояния воспроизводятся из представленного AOF?
    3. Каковы границы времени RDB и какой интервал изменений мог быть утрачен при сбое?
    4. Какова последовательность команд в представленном AOF и с какими внешними источниками её можно соотнести по времени?
    5. Имеются ли признаки DEL, FLUSH, истечения TTL или вытеснения применительно к указанным ключам?
    6. Как менялись роли, идентификаторы и смещения репликации при переключении?
    7. Соответствовали ли настройки сохранения данных установленным требованиям к надёжности?
    8. Какие события безопасности отражены в ACL LOG и журналах сервера?
    9. Какие факторы вызвали зафиксированный скачок задержки?
    10. Корректно ли распределены хеш-слоты и отсутствуют ли подтверждаемые потери при их перераспределении?
    11. Полностью ли перенесены ключи, значения, типы, TTL и служебное состояние?

    Результат и стоимость

    Исследование включает раздельную фиксацию исходных RDB, AOF и состояния работающей системы, проверку SHA-256, разбор RDB/AOF на рабочей копии, восстановление изолированного экземпляра, анализ топологии, журналов и контекста приложения. Результатом может быть консультация, внесудебное исследование, судебная экспертиза или рецензия. Ориентир по стоимости — от 100 000 ₽, срок — от 10 рабочих дней; влияют объём, топология, режим сохранения на диск, модули, повреждение и вопросы.

    Если судебная экспертиза уже назначена, назначенный по делу эксперт не принимает от одной стороны напрямую дополнительные файлы RDB, AOF и журналы и не даёт ей частную оценку по существу поручения: вопросы, доступ и новые материалы идут через назначившего субъекта. Это не исключает обращения стороны к другому, не назначенному по делу специалисту — за консультацией или рецензией по законно полученным материалам. Предшествующую содержательную работу специалиста для одной стороны раскрывают при рассмотрении его кандидатуры; допустимость назначения и возможный отвод решает уполномоченный субъект с учётом мнения участников. Чтобы снизить риски, роли консультанта стороны и кандидата в судебные эксперты целесообразно разделять. Готовое чужое заключение проверяет рецензия на заключение экспертизы баз данных и СУБД.

    Проведение экспертизы по уголовному делу

    Судебная экспертиза по уголовному делу производится государственными судебными экспертами и иными экспертами из числа лиц, обладающих специальными знаниями.

    Негосударственными судебно-экспертными учреждениями постановление Пленума Верховного Суда Российской Федерации от 21 декабря 2010 г. № 28 «О судебной экспертизе по уголовным делам» признаёт некоммерческие организации, созданные в соответствии с Гражданским кодексом Российской Федерации и Федеральным законом «О некоммерческих организациях» и осуществляющие судебно-экспертную деятельность в соответствии с принятыми ими уставами.

    По сведениям организации, проведение судебных экспертиз предусмотрено её уставом (см. действующую редакцию в разделе «Документы организации»). Это само по себе не означает автоматического поручения любой экспертизы. Возможность поручить конкретное исследование определяет назначающий орган с учётом предмета дела, квалификации эксперта, оснований для отвода и действующего перечня экспертиз, выполняемых только государственными судебно-экспертными организациями.

    Актуализировано
    Форматы работы

    Стоимость и сроки

    Указан предварительный ориентир. Точный расчёт зависит от вопросов, объёма материалов, количества объектов и необходимости выезда. Начало отсчёта фиксируем после проверки необходимого комплекта.

    По договору

    Внесудебное исследование

    от 100 000 ₽
    от 10 рабочих дней
    точная стоимость будет определена после ознакомления с объектом исследования

    Итог — внесудебное исследование или документ специалиста по договору. Его наименование, представление и доказательственное значение зависят от вида процесса и оцениваются судом.

    Заказать исследование
    Проверка готового заключения

    Рецензирование

    от 50 000 ₽
    10 рабочих дней
    точная стоимость будет определена после ознакомления с заключением и приложениями

    Итог — письменная рецензия на готовое заключение. Она проверяет исходные данные, методы и выводы, но не отменяет заключение и не заменяет новое исследование объекта.

    Передать заключение на проверку
    Письменный ответ эксперта

    Консультация и справка

    от 20 000 ₽
    2-3 рабочих дня
    точная стоимость будет определена после ознакомления с объектом исследования

    Поможет предварительно оценить вопрос, определить перспективу исследования и подготовить дальнейшие действия.

    Описать вопрос
    Разбор задачи — без оплаты

    Проверим вид исследования, комплектность материалов и возможность работы. Если по присланным материалам видно, что ответить нельзя, скажем сразу и работу не возьмём. Когда материалы структурированы, предварительный прогноз тоже бесплатный; если разбор требует долгой работы эксперта, предупредим об этом до начала — тогда это платная консультация.

    Получить предварительную оценку
    Организация исследования

    Как строится работа над экспертизой

    До начала исследования уточним предмет задачи, состав материалов и формат итогового документа.

    1. 01 Предварительный разбор

      Проверяем компетенцию и сообщаем, можно ли провести исследование по поставленной задаче.

    2. 02 Вопросы и материалы

      Уточняем вопросы и сообщаем, каких документов или объектов не хватает.

    3. 03 Экспертное исследование

      Эксперт применяет профильные методики, фиксирует ход работы и обосновывает выводы.

    4. 04 Заключение и пояснения

      Передаём результат и при необходимости разъясняем суду применённую методику и выводы.

    Документы организации

    Ответы специалистов

    Частые вопросы

    Практические пояснения о назначении, материалах и использовании экспертного заключения.

    Все вопросы по направлению
    Когда нужна экспертиза Redis?

    Экспертиза Redis нужна, когда спор зависит от набора ключей и значений, типов данных, TTL, вытеснения, RDB или AOF, репликации, Sentinel, Cluster, сбоя или производительности. Она помогает определить состояние по снимку, воспроизвести сохранившийся AOF, оценить возможный интервал потери, исследовать переключение ролей и проверить миграцию.

    Если Redis использовался только как очищаемый кэш и сохранение на диск было отключено, исторические возможности ограничены внешними журналами и основной системой. Специализация нужна, когда ответ зависит от fsync, перезаписи AOF, истечения TTL, политики maxmemory, смещений репликации, хеш-слотов или модулей. Сначала устанавливают точный продукт, версию, топологию и бизнес-роль ключей. Порядок работы, состав материалов и сроки собраны на странице экспертизы Redis.

    Отдельная страница: Когда нужна экспертиза Redis?
    Можно ли заранее оценить перспективу экспертизы Redis?

    По конфигурации, снимкам INFO, перечню RDB-файлов, полному каталогу AOF, топологии и журналам можно оценить, на какие вопросы удастся ответить и какой стенд потребуется. Для первого обращения достаточно указать версии, размеры файлов, время сбоя, настройки сохранения данных и maxmemory, роли узлов, а также известные переключения ролей или перезапись AOF.

    Сохранение на диск могло быть отключено, RDB описывает только снимок, AOF имеет окно риска fsync и после перезаписи не хранит полную историю. TTL и вытеснение могли удалить ключ без отдельного сохраняемого события. Предварительная оценка показывает, можно ли установить прежнее значение по имеющимся источникам, и позволяет сохранить файлы до перезапуска или BGREWRITEAOF. Если для ответа нужен отсутствовавший источник аудита, это станет понятно до полной работы.

    Отдельная страница: Можно ли заранее оценить перспективу экспертизы Redis?
    Какие материалы нужны для экспертизы Redis?

    Собирают все снимки и резервные копии RDB, полный каталог AOF с манифестом, базовыми и добавочными файлами, конфигурацию, подключаемые файлы и ACL, модули и журналы сервера. Нужны сохранённые разделы INFO, ROLE, идентификаторы и смещения репликации, состояние Sentinel, узлы и слоты Cluster, события переключения, SLOWLOG, ACL LOG и данные задержек.

    Также полезны журналы приложения, прокси, IdP, оркестратора и мониторинга, версия клиентской библиотеки, правила повторных попыток, схема ключей, сериализатор, SLA и план миграции. Для каждого объекта фиксируют источник — узел и путь, средство и его версию, дату, время и часовой пояс, размер и SHA-256 мастер-копии. Её сохраняют неизменной, исследование ведут на рабочей копии; после каждой передачи проверяют SHA-256 и записывают отправителя, получателя, время и носитель. Последовательные SCAN/DUMP при записях не образуют единый снимок. Для текущего состояния после сохранения существующих RDB/AOF выбирают приостановку записей, штатный снимок сервиса или документированный BGSAVE; в Redis Cluster охватывают все основные узлы (primary) и хеш-слоты, фиксируют начало, конец, топологию, смещения и параллельные изменения. RDB, AOF и оперативную выгрузку хранят раздельно.

    Отдельная страница: Какие материалы нужны для экспертизы Redis?
    От чего зависят стоимость и срок экспертизы Redis?

    Стоимость и срок зависят от версии, числа экземпляров, шардов и реплик, размера набора данных и AOF, режима сохранения на диск, повреждения, модулей, количества снимков и периода. Дополнительную работу создают многофайловый AOF, перераспределение слотов Cluster, переключение Sentinel, выгрузки управляемого сервиса, двоичная сериализация и сопоставление с приложением.

    После инвентаризации специалист определяет минимальный достаточный объём. Ориентиры направления: стоимость от 100 000 ₽, срок от 10 рабочих дней. Проверка одного RDB и реконструкция события всего кластера имеют разную трудоёмкость, поэтому цену уточняют по материалам. Срочность согласуют с учётом времени безопасного копирования, необходимости отдельного стенда и риска, что новые записи или перезапись AOF изменят доступные источники. Общие для всех платформ правила — на странице экспертизы баз данных и СУБД.

    Отдельная страница: От чего зависят стоимость и срок экспертизы Redis?
    Можно ли восстановить удалённые ключи Redis?

    Удалённый ключ можно восстановить, если прежнее состояние сохранилось в RDB, резервной копии или доступной последовательности AOF. RDB даёт снимок, а AOF — воспроизводимый набор команд изменения данных. После перезаписи AOF ранние команды могут исчезнуть, а TTL, вытеснение и последующая запись не оставляют обязательной копии прежнего значения.

    Исходные файлы копируют до запуска и исправления. Оборванный AOF сначала анализируют, затем испытывают восстановление на отдельном экземпляре: redis-check-aof --fix отбрасывает всё от повреждённого места до конца файла, а не только последнюю команду, поэтому на оригинале его не запускают. Если сохранение на диск было отключено, нужны резервные копии приложения или инфраструктуры. В результате эксперт указывает конкретно воспроизводимое состояние и период, который охватывают сохранившиеся источники. Когда спор целиком о том, что и когда изменилось в записях, его разбирает экспертиза изменений и удаления данных.

    Отдельная страница: Можно ли восстановить удалённые ключи Redis?
    Чем различаются RDB и AOF в Redis?

    RDB — снимок набора данных на определённый момент. Изменения после последнего успешного сохранения в нём отсутствуют, поэтому при аварии возможна потеря интервала. AOF записывает команды изменения данных; окно устойчивости зависит от appendfsync. Если включены оба механизма, при обычном перезапуске Redis использует AOF как более полный источник.

    Перезапись AOF заменяет прежнюю последовательность минимизированным представлением текущего набора данных, поэтому AOF не является вечным аудитом команд. В Redis 7+ он может состоять из манифеста, базовых и добавочных файлов; весь каталог копируют согласованно и не во время перезаписи. До загрузки проводят автономный разбор и фиксируют абсолютные сроки истечения: в текущем времени просроченные ключи могут исчезнуть сразу. Рабочую копию запускают на изолированном стенде с документированным контрольным временем.

    Отдельная страница: Чем различаются RDB и AOF в Redis?
    Можно ли отличить удаление ключа от истечения TTL и вытеснения Redis?

    Ключ может исчезнуть из-за DEL/UNLINK, истечения TTL, вытеснения по maxmemory, FLUSH, перезаписи, загрузки другого набора данных, переключения роли или логики модуля и приложения. Истечение обрабатывается пассивно при доступе и активно фоновым алгоритмом, поэтому физическое удаление не обязано совпадать с расчётной секундой TTL.

    Причину оценивают по конфигурации, AOF, RDB, счётчикам INFO, уведомлениям пространства ключей, журналам команд и приложения и метрикам. Счётчики агрегированы и сбрасываются при перезапуске; уведомления работают только при включённой подписке и не являются сохраняемым журналом. Если индивидуального события нет, эксперт не выбирает одну причину без оснований, а указывает совместимые альтернативы и границы временного вывода.

    Отдельная страница: Можно ли отличить удаление ключа от истечения TTL и вытеснения Redis?
    Как исследуют репликацию, Sentinel и Redis Cluster?

    Проверяют роли, идентификаторы и смещения репликации, буфер истории, состояние связи, историю синхронизации и переключений. Репликация Redis обычно асинхронна, поэтому подтверждённая клиенту запись могла не достичь реплики, назначенной основным узлом (primary). WAIT повышает вероятность доставки заданному числу реплик, но не обеспечивает абсолютную сохранность и не заменяет сохранение на диск.

    В Sentinel исследуют кворум, эпохи, выбор ведущего и переконфигурацию; в Cluster — идентификаторы узлов, эпохи конфигурации, принадлежность слотов, состояния миграции и импорта и переключения. Реплика не является независимой резервной копией и может получить пустое или ошибочно изменённое состояние. До повторной синхронизации и исправляющих команд фиксируют каждый узел: совпадение смещений показывает только сегодняшнее состояние, а о прошлой потере говорят журналы, если они сохранились.

    Отдельная страница: Как исследуют репликацию, Sentinel и Redis Cluster?
    Какие вопросы ставят эксперту по Redis?

    Вопрос должен называть экземпляр или кластер, логическую базу или слоты, ключ или шаблон, период, часовой пояс и критерий. Можно спросить о составе RDB, воспроизводимом AOF, возможном интервале потери, признаках DEL, истечения TTL или вытеснения, ходе переключения, соответствии правил сохранения, причине задержки или полноте миграции.

    Вместо «кто удалил ключ?» корректнее спросить, отражают ли AOF и журналы сервера и приложения удаление ключа X, какая команда, какой клиент и какие идентификаторы ACL с ним связаны. Эксперт не устанавливает конкретного человека только по IP или общей служебной учётной записи и не решает вопрос умысла. Формулировки проверяют до назначения с учётом фактического срока хранения источников и охвата всех основных узлов (primary) и хеш-слотов.

    Отдельная страница: Какие вопросы ставят эксперту по Redis?
    Как проверить полноту миграции Redis?

    При миграции Redis сопоставляют логические базы или хеш-слоты, имена и двоичное представление ключей, типы, значения и TTL. Отдельно проверяют потоки и группы потребителей, оценки упорядоченных множеств, порядок списков, содержимое хешей и множеств, битовые карты, HyperLogLog, геоданные, сценарии и функции, модули и ACL.

    Фиксируют версии, исходный снимок, момент переключения, сериализатор, схему репликации или двойной записи, отклонённые ключи, повторные попытки и записи после переключения. TTL закономерно уменьшается, поэтому сравнение требует общего времени и допуска. Сообщения Pub/Sub не входят в сохраняемый набор данных. Равное количество ключей не подтверждает равенство типов, значений и служебного состояния, от которого зависит приложение. Если перенос и есть предмет спора, задачу закрывает экспертиза миграции баз данных.

    Отдельная страница: Как проверить полноту миграции Redis?
    Можно ли использовать заключение по базе Redis в суде?

    Судебное заключение готовят после назначения экспертизы уполномоченным субъектом — в пределах поставленных вопросов и переданных объектов. Внесудебное исследование сторона представляет сама, и судебной экспертизой оно не становится.

    Проверяемость здесь упирается в происхождение файлов. Redis держит данные в памяти, поэтому в заключении описывают, включено ли было сохранение на диск, когда и какой командой получены файлы RDB и AOF, какова топология и смещения репликации. Вывод о содержимом ключа на прошлую дату без этих сведений не воспроизводится.

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

    Отдельная страница: Можно ли использовать заключение по базе Redis в суде?
    Чем экспертиза Redis отличается от работы администратора?

    Администратор настраивает работающий экземпляр: политику вытеснения, сроки жизни ключей, режим сохранения на диск, репликацию и переключение ролей. Его задача — держать сервис доступным.

    Экспертиза выясняет, что было до потери данных: какие ключи и значения содержит сохранённый файл, какие команды воспроизводятся из журнала дозаписи, чем вызвано исчезновение ключа. Разделить удаление приложением, истечение срока и вытеснение по памяти можно только сопоставлением нескольких источников, и этот разбор записывают.

    Если задача — вернуть сервис в строй, действует администратор. Если спор о данных, сначала копируют то, что уже лежит на диске: файл снимка и весь каталог журнала дозаписи. Новый снимок памяти делают только после этого — он перезаписывает прежний файл, а прежний и есть состояние до происшествия.

    Отдельная страница: Чем экспертиза Redis отличается от работы администратора?
    Можно ли исследовать работающий Redis, не изменяя данные?

    Полностью без воздействия не получится. Данные живут в памяти и постоянно меняются: истекают сроки жизни ключей, срабатывает вытеснение, идёт фоновая перезапись журнала дозаписи. Часть диагностических команд к тому же сама нагружает сервер и способна его придержать.

    Поэтому сначала проверяют полномочия и согласуют допустимые действия с владельцем системы или с назначившим экспертизу органом; если сервер принадлежит другой стороне, копию получают через суд. Затем выясняют, сохраняется ли база на диск, копируют уже имеющиеся файлы и лишь после этого при необходимости создают новый снимок памяти — с записью времени и команды. Если для согласованного среза приостанавливают запись, задают конечный таймаут: это остановка обслуживания, и она не должна затянуться.

    Разбор файлов и восстановление ведут на изолированном экземпляре. Работающий сервер для экспериментов не используют.

    Отдельная страница: Можно ли исследовать работающий Redis, не изменяя данные?
    Обращение в организацию

    Отправьте материалы на предварительную оценку

    Приложите имеющиеся документы и кратко опишите задачу. Мы проверим компетенцию и комплектность, определим специальность эксперта и сообщим возможные срок и стоимость.

    Отправить материалы