Утилита переноса хранилища в S3 не перенесла часть файлов
Ошибки S3Tool при переносе хранилища Directum RX в объектное хранилище S3: «The file indicated by the FilePath property does not exist!», «Cannot add lock for {entityType} with {entityIds}» и итог «Transfer fails = N» в журнале сервиса хранилищ. Почему файлы не переносятся и как повторить.
Что это значит
Утилита S3Tool переносит содержимое документов из файлового хранилища RX в объектное (S3, MinIO) и пишет ход работы в журнал сервиса хранилищ. Итог виден в записи логгера UploadCommand: Binary data to transfer = N. Processed = N. Left = N. Transfer fails = N. Ненулевое Transfer fails значит, что часть файлов не перенесена. Справка вендора называет три причины:
| Запись в журнале | Причина |
|---|---|
"status":"Failed","name":"Migrate file" с "reason":"The file indicated by the FilePath property does not exist!" (логгер S3ToolSpan) |
файла нет в файловом хранилище |
Cannot add lock for {entityType} with {entityIds}. (логгер S3DataMigrator) |
данные заблокированы другим процессом |
ошибка загрузки (S3ToolSpan, статус Failed) |
объектное хранилище не приняло файл |
Как проверить
Найти в журнале сервиса хранилищ записи S3ToolSpan со статусом Failed: по ним видно, какие файлы и почему не перенеслись.
Что сделать
- Исправить причины и запустить утилиту повторно: она переносит оставшееся.
- Переносить хранилище с активно используемыми документами в нерабочее время, лучше с отдельного сервера, и запускать для одного хранилища только один экземпляр S3Tool.
- Отсутствующие в файловом хранилище файлы разбирать отдельно: это расхождение между базой и хранилищем, см. нарушена целостность данных сервисов хранилища.
Как переносить бакет без простоя, мы разбирали в статье «Перенос бакетов S3 без простоя».
Ошибка повторяется?
Запустите Диагностика: за полминуты он покажет состояние базы, брокера, поиска и сервера. С отчётом разберём причину за 30 минут бесплатного созвона.
Написать