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

Откуда:
Сообщений: 17
Добрый день.

Подскажите можно ли как-то решить задачу:

18:02 Несколько запросов не удаление данных из таблички А.
18:04 Запрос на удаление таблички Б

В 18:05 опомнились.

Возможно ли как-то откатить состояние базы (быстро) на состояние 18:00 (без подъема полного бекапа, потому что это долго) ?

Подскажите хотя бы ключевые слова по которым гуглить.
Дальше сами будем смотреть и изучать.
27 авг 19, 18:38    [21958531]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
aleks222
Member

Откуда:
Сообщений: 847
Только бэкап.
27 авг 19, 18:54    [21958536]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5156
Павел677
Добрый день.

Подскажите можно ли как-то решить задачу:

18:02 Несколько запросов не удаление данных из таблички А.
18:04 Запрос на удаление таблички Б

В 18:05 опомнились.

Возможно ли как-то откатить состояние базы (быстро) на состояние 18:00 (без подъема полного бекапа, потому что это долго) ?

если сделали снэпшот базы перед модификацией, то можно быстро восстановиться с него (recovery from snapshot)
если делали в одной транзакции и не закоммитили ее, то можно сделать rollback tran

а так, снимите лог бекап, если база у вас не в SIMPLE recovery mode и поднимайтесь из бекапов, если они не битые (fingers crossed)
Павел677
Подскажите хотя бы ключевые слова по которым гуглить.
Дальше сами будем смотреть и изучать.


mssql point in time recovery
27 авг 19, 18:57    [21958538]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
SERG1257
Member

Откуда:
Сообщений: 2679
Я бы еще посоветовал восстановить рядом (не перезаписывая боевую базу) это еще дольше но безопаснее.
27 авг 19, 19:04    [21958541]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
Павел677
Member

Откуда:
Сообщений: 17
Спасибо.

База в режиме Full

Проблема в том что полный бекап начался в 0:00
Завершился где-то в 4:00

В 7:00 начали делать изменения и попортили данные.
Проблему заметили в 7:05

База большая, поэтому восстановить всю базу целиком, а затем накатывать дифференциальные бекапы - долго (просто бекап шел 4 часа).

Поэтому и подумал, можно ли как-то открутить назад последние 10 минут работы.
Если такое возможно, то это было бы здорово.
По объему изменений это намного меньше чем полные бекапы гонять.
27 авг 19, 19:13    [21958544]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
Павел677
Member

Откуда:
Сообщений: 17
Снапшота не было.
Но похоже теперь будем делать.
А по-другому как-то возможно ?
27 авг 19, 19:15    [21958546]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36686
Павел677,

Невозможно. Восстанавливайте базу рядом и переливайте недостающие данные.
27 авг 19, 19:16    [21958547]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
L_argo
Member

Откуда:
Сообщений: 1132
Павел677
А по-другому как-то возможно ?
Возможно. Готовить три конверта.
28 авг 19, 08:50    [21958756]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Павел677
Снапшота не было.
Но похоже теперь будем делать.
А по-другому как-то возможно ?

В перспективе - делается отложенное зеркалирование - например, через доставку журналов. Рядом с основной базой живет ее копия, на которую накатываются журналы с задержкой, например, в час. Если осознали, что сделали что-то не то - остановили накат, перелили данные.
Если заранее это не настроено, то понятно, что поздно пить боржоми.
28 авг 19, 10:42    [21958844]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Павел677
Снапшота не было.
Но похоже теперь будем делать.
А по-другому как-то возможно ?

Постоянное наличие снапшота на боевой базе вроде не очень хороший вариант, или я путаю?
28 авг 19, 10:43    [21958845]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5156
Minamoto
Павел677
Снапшота не было.
Но похоже теперь будем делать.
А по-другому как-то возможно ?

Постоянное наличие снапшота на боевой базе вроде не очень хороший вариант, или я путаю?

ну да, в пределе он достигнет размера базы + удвоенное IO при модификации данных в основной базе

снэпшот был предложен как временный:
1) создали снэпшот
2) модифицировали данные
3а) проверили что все ок
3б) если не ок, то откатили основную базу со снэпшота
4) подождали час-три (вдруг косяки вылезут; опционально)
5) удалили снэпшот
28 авг 19, 11:18    [21958885]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
Павел677,

если полный бэкап произошел до проблемной точки то можно восстановить базу на указанный момент времени из копии базы + журнала. Но, разумеется, в отдельную базу. Потом сравнить и перенести данные в рабочую.
28 авг 19, 11:25    [21958898]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7383
Если снимок расположить на отдельном диске, то особой потери производительности нет. Если, конечно, не стоит задача выжать всё, что можно по скорости. Снимок можно пересоздавать, например, раз в сутки или раз в два часа в зависимости от интенсивности изменения данных.
28 авг 19, 11:27    [21958900]     Ответить | Цитировать Сообщить модератору
 Re: Откатить состояние базы.  [new]
Павел677
Member

Откуда:
Сообщений: 17
Спасибо всем.
28 авг 19, 11:46    [21958936]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить