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

Откуда:
Сообщений: 46
Доброго дня, коллеги.
Оператор 3 дня вводил данные. Из-за ошибки в приложении в инструкциях отсутствовал commit. После завершения приложения данные из таблицы, естественно, исчезли. Можно ли их "вытащить"?
MS Sql 2008.
1 июн 11, 16:42    [10747196]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Mikhaylo,

незакомиченные транзакции не сохраняются, так что можете огорчить вашего оператора, но чтобы ему было легче дайте ему телефон того кто придумал такой алгоритм работы приложения:)
1 июн 11, 16:48    [10747262]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mikhaylo
3 дня вводил данные. После завершения приложения данные из таблицы, естественно, исчезли.
Транзакция 3 дня держалась.
WarAnt
дайте ему телефон того кто придумал такой алгоритм работы приложения:)
Рукодёр не забудьте. :)
1 июн 11, 17:39    [10747725]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
BestZvit
Member

Откуда: Гоблино
Сообщений: 2250
Mnior
Mikhaylo
3 дня вводил данные. После завершения приложения данные из таблицы, естественно, исчезли.
Транзакция 3 дня держалась.


Что-то очень сомнительно что такое на свете бывает ))

Вполне вероятно, что местные админы (или может, там - "компьютерщики", если нет дба в штате) нахимичили - может намутили что и базу ночью из 3-дневного бекапа пришлось восстанавливать (правой кнопкой по меню "task" -> "restore"), а может какой эникей случайно на этот пункт нажал, а руководству пытались обьяснить так, как мы это сейчас слышим.
1 июн 11, 17:55    [10747903]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
Владимир СА
Member

Откуда:
Сообщений: 7915
Mikhaylo
Доброго дня, коллеги.
Оператор 3 дня вводил данные. Из-за ошибки в приложении в инструкциях отсутствовал commit. После завершения приложения данные из таблицы, естественно, исчезли. Можно ли их "вытащить"?
MS Sql 2008.
Интересно, оператор не выходил из формы 3 дня...? Что-то смутно вериться...
А если выходил и выключал комп, то на второй день он должен был заметить, что данных, которые он вводил вчера, нет...
1 июн 11, 18:00    [10747943]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
BestZvit
Что-то очень сомнительно что такое на свете бывает ))

Вполне вероятно, что местные админы (или может, там - "компьютерщики", если нет дба в штате) нахимичили - может намутили что и базу ночью из 3-дневного бекапа пришлось восстанавливать (правой кнопкой по меню "task" -> "restore"), а может какой эникей случайно на этот пункт нажал, а руководству пытались обьяснить так, как мы это сейчас слышим.
Бывает в системах, с которыми работает пару человек всего, типа, в небольших конторах. С другой стороны, 3 дня и правда слишком, потому что операторы как правило выключают компьютер на ночь.
1 июн 11, 18:00    [10747944]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
BestZvit
Mnior
пропущено...
Транзакция 3 дня держалась.


Что-то очень сомнительно что такое на свете бывает ))
Бывает
Если с таблицей никто больше не работает, то почему - нет.

На свете столько прибамбасов, друг Горацио, что и не снилось нашим чувакам! (c)
1 июн 11, 18:01    [10747965]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
AlexandrPlus
Member

Откуда:
Сообщений: 7887
А бэкап по какой схеме делается?
И курсоры локализуются на клиентах или на сервере, то есть данные с клиентов сразу в БД или копятся на клиентах, отсылаясь пакетами?

Если курсоры серверные и бэкап логов регулярный, то можно восстановить всю базу в, например, тестовую базу (а то другие-то наверно нормально вводили) на нужное время в прошлом.
1 июн 11, 18:55    [10748357]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
pr0ger
Member

Откуда: Москва
Сообщений: 1933
AlexandrPlus
А бэкап по какой схеме делается?
И курсоры локализуются на клиентах или на сервере, то есть данные с клиентов сразу в БД или копятся на клиентах, отсылаясь пакетами?

Если курсоры серверные и бэкап логов регулярный, то можно восстановить всю базу в, например, тестовую базу (а то другие-то наверно нормально вводили) на нужное время в прошлом.

Бэкап в данном случае ничем не поможет, т.к. транзакция не завершилась. Можно посмотреть в сторону Lumigent Log Explorer, но надежды мало.
1 июн 11, 18:57    [10748372]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
AlexandrPlus
Member

Откуда:
Сообщений: 7887
pr0ger
AlexandrPlus
А бэкап по какой схеме делается?
И курсоры локализуются на клиентах или на сервере, то есть данные с клиентов сразу в БД или копятся на клиентах, отсылаясь пакетами?

Если курсоры серверные и бэкап логов регулярный, то можно восстановить всю базу в, например, тестовую базу (а то другие-то наверно нормально вводили) на нужное время в прошлом.

Бэкап в данном случае ничем не поможет, т.к. транзакция не завершилась. Можно посмотреть в сторону Lumigent Log Explorer, но надежды мало.


там наверняка с транзакциями путаница и транзакция с клиента завершается (а не, например, в к.-л. храним. на сервере) и если курсоры, используемые приложениями на клиентах, серверные, то на какой-то момент в прошлом данные МОГУТ БЫТЬ в базе

А незавершение главной транзакции - убрало данные на настоящее и будущее.

Попробовать лог откатить стоит.
1 июн 11, 19:12    [10748424]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
Fire83
Member

Откуда: Гомель-Минск
Сообщений: 474
AlexandrPlus,
Не понятно при чем тут тип используемого курсора ведь вопрос о восстановленнии данных?
имея бэкапы ничего сделать нельзя т.к. при восстановлении лога незафиксированные транзакции ВСЕГДА откатываются.
в противном случае база бы приходила в несогласованное состояние.
2 июн 11, 00:01    [10749501]     Ответить | Цитировать Сообщить модератору
 Re: Данные вводились в транзакции,которая откатилась.Как вернуть данные?  [new]
AlexandrPlus
Member

Откуда:
Сообщений: 7887
Fire83
AlexandrPlus,
Не понятно при чем тут тип используемого курсора ведь вопрос о восстановленнии данных?
имея бэкапы ничего сделать нельзя т.к. при восстановлении лога незафиксированные транзакции ВСЕГДА откатываются.
в противном случае база бы приходила в несогласованное состояние.


[quot Mikhaylo]
...
Из-за ошибки в приложении в инструкциях отсутствовал commit...[quot]

эта фраза наводит на подозрение, что там запрограммировано может быть непоймичто
и указанная транзакция может быть и не внешней
также могут быть неявные транзакции

и даже, например, Б вложена в А
транзакция А началась с 11 часов, потом началась транзакция Б в 12 и в 13 часов commit Б, в 15 часов
должна была завершиться А, но она не завершилась, приложение закрыли и А откатилась
так данные по транзакции Б в 14 часов были в БД - по логам восстановить на 14 часов их возможно (и например из другого приложения их можно было увидеть, если, например, курсоры серверные), но потом А откатилась и соответственно по Б данных тоже не должно быть в 15 часов
нет никаких рассогласований, есть состояние базы и неизолированные транзакции

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

Вот (по теории) в Interbase такого не может быть.
2 июн 11, 11:53    [10751293]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить