D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Системные файлы / restore-errors

restore-errors

Ошибки восстановления с ленты

Если во время восстановления имеет место ошибка ленты, она регистрируется в файле "restore-errors". Если файл "restore-errors" не существует, он создается при возникновении первой ошибки.

"d"-указатель (d-pointer) на этот файл помещается в файл "mds", а не в главный словарь (md) счета "dm", т.к. в случае, если происходит полное восстановление, счет "dm" может быть недоступен.

Может быть сгенерирована одна из следующих ошибок:

err "d" type segment level (1=account, 2=dict, 3=data) 
    [Ошибка уровня сегмента "d"-типа (1 - счет; 2 - словарь; 3 - данные]

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

Если обнаруживается запись без предшествующего "d"-указателя, процессор восстановления должен получить указание касательно того, куда поместить ее при восстановлении. Если, например, в тот момент, когда блок потерялся или оказался испорченным или когда в начале следующего блока была обнаружена запись, не принадлежащая этому файлу, восстановление осуществлялось на уровне данных (уровень = 3), процессор восстановления не будет знать, куда идти. Если в вышеуказанном примере выбирается ответ "2" (словарный уровень), процессор восстановления прекращает восстановление записей на уровне данных и начинает помещать восстанавливаемые записи на словарный уровень данного файла.

Если с ленты считывается "d"-указатель и номер уровня оказывается за пределами диапазона от 0 до 3, где "0" - это файл "mds", процессор восстановления должен получить указание касательно того, на какой уровень поместить этот "d"-указатель. Если обновленный "d"-указатель считывается с ленты, содержащий только копии изменений (incremental tape) или с ленты журнала транзакций ("txlog"), а имя файла существует в файле "file-of-files", но это неправильный "Блок управления файлом" ("File Control Block" или FCB), будет выдано именно это сообщение.

tape format err (segment skipped) 
   [Ошибка формата ленты (пропущенный сегмент)]

Если с ленты была считана запись, но до этого не был считан "d"-указатель для соответствующего файла, эта запись будет пропущена. Или, если считанная запись не соответствует формату ленты AP, она также будет пропущена. Это особенно относится к случаю, когда двоичный объектный код не соответствует формату AP. Это же сообщение может появиться в случае, если индексное "b"-дерево на ленте не соответствует правильному формату.

not found in the "file-of-files"
   [Отсутствует в файла "file-of-files"]

Это сообщение является, в основном, предупреждением. Если имя файла не обнаруживается в файле "file-of-files", оно создается.

obj data err 
   [Ошибка объектных данных]

Если объектный код не соответствует требуемому формату, блоки объектного кода будут пропущены. В случае отсутствия заголовка, указывающего количество блоков, которые должны за этим последовать, будут пропущены все блоки.

'xxx' is not a file name 
    ['xxx'- не имя файла]

Это имя не обнаружено в файле "file-of-files"

'xxx' error in rename, segment skipped 
    [Ошибка 'xxx' при переименовании, сегмент пропущен]

Это сообщение вероятно в случае попытки восстановления на основе ленты, содержащей только копии изменений (incremental tape), или ленты журнала транзакций ("txlog"). Файл не обнаружен в файле "file-of-files", а переименование его оказалось невозможным, т.к. процессор восстановления не знает полного поискового имени (path name) старого файла. Это одна из причин, почему восстановление на основе лент изменений (incremental tapes) в TCL невозможно и для восстановления всегда требуется полная копия. Команда "rename-file" или "move-file" пропущена (не выполнялась).