Стоит задача восстановления некоторых записей из бэкапа
Antonariy
Дата: 28.01.2013 18:09:53
Уже второй раз возникает ситуация: по глупости или неосторожности удаляют запись о персоне, которая тащит за собой зависимые данные. Плюнуть нельзя, нужно все это восстановить. Бэкап есть, но просто перезаписать им тоже нельзя, за период между бэкапом и удалением (несколько часов) прошло немало других операций, которые должны сохраниться. В первый раз нудно восстанавливал вручную в SSMS, сейчас хочу сделать процедуру. Собираюсь делать SET IDENTITY_INSERT ON и тупо insert каждой затронутой таблицы из одной базы в другую. Насколько это правильно? Вряд ли моя задача уникальна, может есть какие-то готовые велосипеды и подходы?
Glory
Дата: 28.01.2013 18:11:48
Antonariy |
---|
Бэкап есть, но просто перезаписать им тоже нельзя, за период между бэкапом и удалением (несколько часов) прошло немало других операций, которые должны сохраниться. |
Как вы тогда собрались что то получить из бэкапа ?
Antonariy
Дата: 28.01.2013 18:14:13
В смысле нельзя перезаписать базу бэкапом целиком. Создается новая база и перезаписывается этим бэкапом.
Glory
Дата: 28.01.2013 18:23:31
Antonariy |
---|
тупо insert каждой затронутой таблицы из одной базы в другую |
тогда какой "тупо insert каждой затронутой таблицы", если данные в таблицах были удалены лишь частично ?
Cygapb-007
Дата: 28.01.2013 18:30:55
Где-то мне попадалось упоминание о программе, сравнивающей содержимое таблиц в двух базах данных SQL
Но даже без нее - восстановить из бэкапа рядом и сравнить (а нужные расхождения и insert/update) типа
select *
from restored..table1 r
left join original..table1 o on o.key=r.key
[where o.key is null]
Antonariy
Дата: 28.01.2013 18:31:36
Это же персона. Известны ФИО и прочие данные, по которым определяется ее id записи, от которой можно плясать.
МуМу
Дата: 28.01.2013 18:32:38
Кроме инсертов , могут быть и апдейты и делиты:) У вас транзакшион лог с прошлого бэкапа сохранился? Не трогайте его , позовите профи. Есть програмки восстанавливающие данные из транзакшион лога(например путем генерации команд в базу бэкапа).
Antonariy
Дата: 28.01.2013 18:45:45
МуМу |
---|
Кроме инсертов , могут быть и апдейты и делиты:) |
Это вы о чем-то другом. Нужная запись и сязанные с ней удалены, какие апдейты и делиты после этого? Что с тех пор происходило с остальной частью базы не важно.
invm
Дата: 28.01.2013 19:06:44
Каскадные FK?
Хороший пример, демонстрирующий неконтролируемость удалений при их использовании.
Antonariy
Дата: 28.01.2013 19:10:22
Вообще-то триггеры, но не суть.