Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
Народ, SQL Server гуру!!!!!!!

Случилась странная ситуация:
Суть: есть приложение которое формирует документы в базу данных.
Транзакции постоянно записываются в базу и после удачного сохранением идет распечатка документа с уникальным ID (он формируется инкрементом в поле отдельной таблицы.) и т.д.

К определенному времени заметили что часть данных куда-то исчезла - это видно по времени формирования документа/транзакции
ID уникальность не нарушена и то есть 10,11,12 ..... итд. но данных с 9 часов до 14 не осталось, как будто кто-то откатил данные из архивного файла транзакций. НО лога транзакций нет и не было, делается ежедневный полный бэкап раз в сутки - в час ночи.

У кого какие есть идеи или советы что это могло быть - и как избежать в дальнейшем таких ситуаций?
Всем спасибо.
29 дек 16, 13:05    [20060077]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Верблюд
Member

Откуда: Яженичеловек!!!
Сообщений: 65007
Транзакции на клиенте есть?
29 дек 16, 13:09    [20060110]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
aleksrov
Member

Откуда:
Сообщений: 948
Чет я немного не вьехал. Какого архивного файла транзакций если у вас " лога транзакций нет и не было, делается ежедневный полный бэкап раз в сутки "
Т.е. у вас просто исчезли данные из таблицы за промежуток с 9-14, ну удалил их кто то, вот и все.
29 дек 16, 13:10    [20060129]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Посмотрите в журнале на предмет восстановления из backup.
29 дек 16, 13:19    [20060198]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
aleksrov,

Нет, никто их удалить не мог, на клиенте такого функциоанала нет.
Распечатанные документы есть - с значениями ID которые соответствовали этому периоду времени - а данных самих нет.
Потом с 14 часов ID соответствовали исчезнувшему периоду ...
29 дек 16, 13:28    [20060262]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Valerii,
ID уникальность не нарушена и то есть 10,11,12
там identity?
29 дек 16, 13:34    [20060291]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
invm
Member

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

У вас в сессии количество begin tran превышает количество commit.
В результате имеете незавершенную транзакцию, которая автоматически откатывается при завершении сессии.
29 дек 16, 13:38    [20060308]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
TaPaK,
нет там отдельной таблице генерируется ID для разного типа документов
простым инкрементом ... и присваивается документу..

set transaction isolation level serializable
begin tran
update NewDocsIDr SET @newvalue = nr_doc = nr_doc + @incrementvalue WHERE id = @pId
COMMIT TRAN
RETURN @newvalue


таким вот механизмом ...
29 дек 16, 13:40    [20060319]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
invm,

Да нет вроде - Сколько Begin Tran столько же Commit-ов и Rollback -ов
приложение уже 5 год работает - не было таких ситуаций ....
Эти ошибки бы всплыли моментально ...
29 дек 16, 13:43    [20060334]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
invm
Member

Откуда: Москва
Сообщений: 9405
Valerii
Да нет вроде - Сколько Begin Tran столько же Commit-ов
Проверяйте, ибо чудес не бывает и данные сами собой не пропадают - либо они были удалены, либо транзакция не была зафиксирована.
29 дек 16, 13:45    [20060357]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
Valerii,
До этого был скачок электроэнергии и сервак на котором крутиться сама база упал. Его стартанули и 8 часов в него все писалось без проблем
потом произошла эта ситуация .. может это внесет какую-то ясность? ...
29 дек 16, 13:46    [20060362]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
invm
Valerii
Да нет вроде - Сколько Begin Tran столько же Commit-ов
Проверяйте, ибо чудес не бывает и данные сами собой не пропадают - либо они были удалены, либо транзакция не была зафиксирована.


но одновременно работают 2 клиентских машинки - и у каждой вроде своя сессия. Хотя бы с одной машинки что-то бы осталось!!!!
То что небыли зафиксированы транзакции - это согласен ... Почему? Есть LOG файл 3GB примерно - в нем что-то найти как-то можно и если да - как?
Режим восстановления базы FULL...
29 дек 16, 13:52    [20060403]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
Сталкивался с сабжем. Бывало так, что хр.процедура с транзакцией, как-то странно "залипала" и не завершалась ни коммитом ни роллбеком. Но прога продолжала работать. Создавались и печатались документы. Потом прога заканчивала работу и ..... роллбек транзакции после разрыва соединения удалял кучу созданных документов. :)
29 дек 16, 17:27    [20061516]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
LSV
Сталкивался с сабжем. Бывало так, что хр.процедура с транзакцией, как-то странно "залипала" и не завершалась ни коммитом ни роллбеком. Но прога продолжала работать. Создавались и печатались документы. Потом прога заканчивала работу и ..... роллбек транзакции после разрыва соединения удалял кучу созданных документов. :)



вот вот - это как раз тот случай.....
29 дек 16, 18:53    [20061746]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
[quot Valerii]
LSV
Сталкивался с сабжем. Бывало так, что хр.процедура с транзакцией, как-то странно "залипала" и не завершалась ни коммитом ни роллбеком. Но прога продолжала работать. Создавались и печатались документы. Потом прога заканчивала работу и ..... роллбек транзакции после разрыва соединения удалял кучу созданных документов. :)


нашли причину? как-то вылечили?
29 дек 16, 18:54    [20061754]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
Верблюд
Транзакции на клиенте есть?

Кончно
Все вставки записей (когда кол-во записей более одной или запись идет по нескольким таблицам - прицип все или ничего) обворачиваются транзакциями....
29 дек 16, 19:08    [20061776]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
o-o
Guest
Если и правда база в full recovery model, самое время сделать бэкап лога.
Затем разверните последний полный бэкап (в новую базу) и накатите лог до момента, когда еще документы типа были, проверьте, на месте ли они.
Если ничего не показалось и все на месте, и вы знаете промежуток времени, когда же исчезли документы, ищите в бэкапе с помощью fn_dump_dblog с фильтром по времени и на delete, или же тоже по времени + на rollback.
Узнаете, кто и когда откатил или же удалил.

Хотя мне слабо верится, что там полная модель. Бэкапы лога не делаются 5 лет, и всего 3 гига лога?
29 дек 16, 19:16    [20061799]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
o-o
Если и правда база в full recovery model, самое время сделать бэкап лога.
Затем разверните последний полный бэкап (в новую базу) и накатите лог до момента, когда еще документы типа были, проверьте, на месте ли они.
Если ничего не показалось и все на месте, и вы знаете промежуток времени, когда же исчезли документы, ищите в бэкапе с помощью fn_dump_dblog с фильтром по времени и на delete, или же тоже по времени + на rollback.
Узнаете, кто и когда откатил или же удалил.

Хотя мне слабо верится, что там полная модель. Бэкапы лога не делаются 5 лет, и всего 3 гига лога?


Full recovery model!!!!
Иногда шринкую файл лога, раз в 4-6 мес...
но не об этом

Если я сделаю бэкап лога сейчас у меня не будет возможности указать дату и время более ранней нежели дату и время создания самого файла бэкапа лог - До этого лог бэкапа не делался. Или я не так понял - если можно пожалуйста проясните этот момент.
29 дек 16, 19:22    [20061810]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
o-o
Если и правда база в full recovery model, самое время сделать бэкап лога.
Затем разверните последний полный бэкап (в новую базу) и накатите лог до момента, когда еще документы типа были, проверьте, на месте ли они.
Если ничего не показалось и все на месте, и вы знаете промежуток времени, когда же исчезли документы, ищите в бэкапе с помощью fn_dump_dblog с фильтром по времени и на delete, или же тоже по времени + на rollback.
Узнаете, кто и когда откатил или же удалил.

Хотя мне слабо верится, что там полная модель. Бэкапы лога не делаются 5 лет, и всего 3 гига лога?



А где можно на хороших примерах видеоуроках посмотреть все тонкости создания бэкапов как полных, разностных, бэкапов логов и самое главное их восстановление?
29 дек 16, 19:26    [20061818]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
o-o
Guest
Вернее так: вот вы считаете, что в 13 часов данные были, восстанавливайте на 13 часов.
Если документы в базе, значит, позже их удалили.
И в бэкапе лога надо искать delete.
Если на 13 часов документов нет, значит, транзакция не была закоммичена. Можно тогда поискать, во сколько начался роллбэк
29 дек 16, 19:28    [20061823]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
o-o
Guest
Valerii
o-o
Если и правда база в full recovery model, самое время сделать бэкап лога.
Затем разверните последний полный бэкап (в новую базу) и накатите лог до момента, когда еще документы типа были, проверьте, на месте ли они.
Если ничего не показалось и все на месте, и вы знаете промежуток времени, когда же исчезли документы, ищите в бэкапе с помощью fn_dump_dblog с фильтром по времени и на delete, или же тоже по времени + на rollback.
Узнаете, кто и когда откатил или же удалил.

Хотя мне слабо верится, что там полная модель. Бэкапы лога не делаются 5 лет, и всего 3 гига лога?



А где можно на хороших примерах видеоуроках посмотреть все тонкости создания бэкапов как полных, разностных, бэкапов логов и самое главное их восстановление?

Не знаю, где можно посмотреть, но вот прямо сейчас можно выяснить, правда ли полная модель :
backup log myDB to disk =путь, куда класть бэкап
Если простая модель, пошлет, куда следует
29 дек 16, 19:33    [20061831]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
o-o
Valerii
пропущено...



А где можно на хороших примерах видеоуроках посмотреть все тонкости создания бэкапов как полных, разностных, бэкапов логов и самое главное их восстановление?

Не знаю, где можно посмотреть, но вот прямо сейчас можно выяснить, правда ли полная модель :
backup log myDB to disk =путь, куда класть бэкап
Если простая модель, пошлет, куда следует


ИМЕННО ТАК СЕГОДНЯ И ДЕЛАЛ БЭКАП
НО Я ЕЩЕ ЕГО ЧЕРЕЗ ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ДЕЛАЮ
Модератор: Хорош орать, а то начну стирать посты на месте


Сообщение было отредактировано: 29 дек 16, 23:09
29 дек 16, 20:06    [20061877]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Valerii
Member

Откуда:
Сообщений: 749
o-o
Вернее так: вот вы считаете, что в 13 часов данные были, восстанавливайте на 13 часов.
Если документы в базе, значит, позже их удалили.
И в бэкапе лога надо искать delete.
Если на 13 часов документов нет, значит, транзакция не была закоммичена. Можно тогда поискать, во сколько начался роллбэк


были скачки напряжения и он отваливался как сам сервер так и свичи и пр ...
29 дек 16, 20:08    [20061878]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
o-o
Guest
Valerii
делается ежедневный полный бэкап раз в сутки - в час ночи.

o-o
backup log myDB to disk =путь, куда класть бэкап

Valerii
ИМЕННО ТАК СЕГОДНЯ И ДЕЛАЛ БЭКАП
НО Я ЕЩЕ ЕГО ЧЕРЕЗ ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ДЕЛАЮ

т.е. ночью полный,
а еще сегодня днем бэкап лога сделали?
и во сколько?
29 дек 16, 21:14    [20062028]     Ответить | Цитировать Сообщить модератору
 Re: Исчезновение данных в таблицах баз данных  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Valerii,

Вряд ли дынне были удалены. Последовательность не ИД то разорвалась. Это не просто кусок данных удален, а кусок данных с конца. Короче маловероятно. 99% это была повисшая незакомиченная транзакция.

Есть ошибки, например Msg 208 - Invalid object name, которые прерывают выполнение процедуры, но при этом не откатывают транзакцию. Ну и все - приехали. Избежать этого только один по сути вариант, либо после каждого запроса к серверу, либо на событие возникновения ошибки, проверять на клиенте если остались незакрытые транзакции то делать rollback.
29 дек 16, 23:34    [20062378]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить