Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Откуда берутся tuf файлы?  [new]
dburtsev1
Member

Откуда: NY USA
Сообщений: 351
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64)

Дано: два датацентра. В первом датацентре с боевого кластера настроен Log Shipping на другой сервер. Full backup в выходные, diff ночью по рабочим дням и log shipping каждые несколько минут. Всё работает. Файлы типа *.tuf в директории \Log отсутствуют.
При помощи Double-Take Software резервные копии пересылаются во второй датацентер. Там тоже настроен Log Shipping.
Пересылаются таким образом несколько баз. В одной базе сделали Read-Only filegroup. После этого вылезла ошибка
[SQLSTATE 01000] (Message 0) During startup of warm standby database 'BigDB' (database ID 9), its standby file ('Z:\Backups\Log\BigDB\BigDB_20110530000048.tuf') was inaccessible to the RESTORE statement. The operating system error was '2(The system cannot find the file specified.)'. Diagnose the operating system error, correct the problem, and retry startup.
[SQLSTATE 42000] (Error 3441) RESTORE DATABASE is terminating abnormally.

В директории BigDB такого файла действительно нет. В других директориях во втором датацентре есть по одному файлу *.tuf.
Другие базы восстанавливаются из резервных копий без проблнм.

SET NOCOUNT ON;
RESTORE DATABASE [BigDB] FROM DISK = N'Z:\Backups\BigDB.bak' WITH FILE = 1,
REPLACE,
STANDBY = 'M:\STANDBY\BigDB.ldf';

Что бы обойти проблему вставил ALTER DATABASE BigDB SET OFFLINE; DROP DATABASE BigDB; перед RESTORE DATABASE
Откуда копать?
30 май 11, 20:09    [10734753]     Ответить | Цитировать Сообщить модератору
 Re: Откуда берутся tuf файлы?  [new]
zondik
Member

Откуда: Москва
Сообщений: 84
dburtsev1,

tuf - это transaction undo file, он создается только если база восстановлена с параметром WITH STANDBY. В этом файле пишутся незакомиченные транзакции с тем, чтобы в результате последующих накатов лога можно было закомитить их.
31 май 11, 00:00    [10735609]     Ответить | Цитировать Сообщить модератору
 Re: Откуда берутся tuf файлы?  [new]
zondik
Member

Откуда: Москва
Сообщений: 84
zondik,

Мне кажется, что ошибка возникла, когда между двумя накатами лога файл TUF по тем или иным причинам был удален. Операция RESTORE пытается найти его, чтоб просмотреть незакомиченные транзакции, а его и нету. Вот все и валится )))
31 май 11, 00:05    [10735628]     Ответить | Цитировать Сообщить модератору
 Re: Откуда берутся tuf файлы?  [new]
dburtsev1
Member

Откуда: NY USA
Сообщений: 351
1. Я явно указываю STANDBY = 'M:\STANDBY\BigDB.ldf' а не Z:\Backups\Log\BigDB\BigDB_20110530000048.tuf
2. Зачем RESTORE DATABASE ... REPLACE смотреть какие то предыдущие транзакции? В первом датацентре всё прекрасно работает.
3. Double-Take пересылает во второй датацентер резервные копии нескольких баз. Проблемы с RESTORE имеет только одна. Все остальные как то сами создают этот tuf файл как то.
31 май 11, 02:42    [10735910]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить