Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Можно ли вытащить из бэкапа только одну таблицу  [new]
А-а-а-а-а-а-а......
Guest
В общем, так.
Сегодня меня наверное распнут.
На рабочей базе провел апдейт.
Не выбрал строчку с условием... И соответственно проапдейтил всю таблицу.
Что то около 5 мульонов записей. Как я о....ел когда понял что происходит!!!
Пользователи пока молчат (таблица - архив), начальство ещё не доперло почему я хожу окуевший... Сейчас на тестовой базе думаю поднять бэкап за обед... Но он будет подниматься что то около 8 часов. Оттуда кину табличку в рабочую...


Вот хотел спросить можно из бэкапа как то вытащить только одну таблицу... Понимаю конечно что глупый вопрос - конечно нет, ну а вот вдруг...


SQL Server 2008
19 июн 12, 09:54    [12736027]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
Jovanny
Member

Откуда:
Сообщений: 1196
Нет, нельзя. Минимум, если модель восстановления Full, то файловую группу. А так только всю базу.
19 июн 12, 09:56    [12736049]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
А-а-а-а-а-а-а......
Guest
Ещё хотелось бы конечно подготовиться к реакции начальства на сие знаменатльное событие.


Пишите если в матерном виде о моих умственных возможностях. Прошу вас!
19 июн 12, 09:57    [12736051]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
А-а-а-а-а-а-а......
Guest
Боже, как гуёво... Голова налилась кровью, в висках стучит... Скажите что не у одного меня такое было...
19 июн 12, 10:02    [12736081]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
А-а-а-а-а-а-а......
Пользователи пока молчат (таблица - архив), начальство ещё не доперло почему я хожу окуевший...
Если архив, то может так и не допрут за 8 часов...
19 июн 12, 10:11    [12736126]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
1
Guest
alexeyvg
А-а-а-а-а-а-а......
Пользователи пока молчат (таблица - архив), начальство ещё не доперло почему я хожу окуевший...
Если архив, то может так и не допрут за 8 часов...


У нас рабочий день закончился. Сижу жду когда начальство свалит. И остаётся пойти за пищей насущной - буду сидеть ждать. И ещё чтобы чопня не выгнала, надо как то договориться...
19 июн 12, 10:15    [12736151]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
bacalavr
Member

Откуда:
Сообщений: 311
Jovanny
Нет, нельзя. Минимум, если модель восстановления Full, то файловую группу. А так только всю базу.

ну, справедливости ради, можно еще страницы восстановить

хотя, если таблица большая, смысла в этом, вероятно, немного
19 июн 12, 10:36    [12736283]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
kain111
Member

Откуда:
Сообщений: 227
bacalavr,
а вот кстати скриптик, было на восстановление отдельных страниц таблицы было бы интерессно глянуть. я так понимаю нужно как то получить номера страниц, на которых распологается табличка.

А-а-а-а-а-а-а...... ,
у меня тоже такое было по молодости, волосы на затылке тоже шевелились :). а все из за привычки проверять работу selecta на сиинтаксис путем выполнением.
19 июн 12, 11:19    [12736618]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
А-а-а-а-а-а-а......, вот посему взял за правило писать:
1.
BEGIN TRAN
UPDATE -- DELETE и т.д.
-- тут корежим чего надобно

2.
-- проверяем, что все упорядке
SELECT ...

и лишь когда однозначно убедился, что все нормально, только тогда:
COMMIT

иначе - откатить

Ну или альтернативный вариант - создавать временные таблички, до произведения деструктивных действий, типа:
SELECT ... INTO ...


Но даже все эти предосторожности не спасали от ситуации вида: сто раз проверил, апдейтится все верно, вот только в итоге оказывается, что база не та.
Так что бакапы наше все, на случай ядерной войны. Всякое бывает.
19 июн 12, 11:22    [12736638]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
aleks2
Guest
А-а-а-а-а-а-а......
Вот хотел спросить можно из бэкапа как то вытащить только одну таблицу... Понимаю конечно что глупый вопрос - конечно нет, ну а вот вдруг...

Какие проблемы?

Восстанавливаешь бякап в ДРУГУЮ базу и вытаскиваешь оттель хоть построчно.
19 июн 12, 11:23    [12736653]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
aleks2
А-а-а-а-а-а-а......
Вот хотел спросить можно из бэкапа как то вытащить только одну таблицу... Понимаю конечно что глупый вопрос - конечно нет, ну а вот вдруг...

Какие проблемы?

Восстанавливаешь бякап в ДРУГУЮ базу и вытаскиваешь оттель хоть построчно.

ТС хочет сделать все по-шустрому, чтобы никто ничего не успел углядеть :).
19 июн 12, 11:25    [12736669]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
aleks2
А-а-а-а-а-а-а......
Вот хотел спросить можно из бэкапа как то вытащить только одну таблицу... Понимаю конечно что глупый вопрос - конечно нет, ну а вот вдруг...

Какие проблемы?

Восстанавливаешь бякап в ДРУГУЮ базу и вытаскиваешь оттель хоть построчно.
Про этот вариант ТС написал в стартовом посте...
19 июн 12, 11:43    [12736822]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
komrad
Member

Откуда:
Сообщений: 5735
А-а-а-а-а-а-а......,

посмотри на это решение - Idera Virtual DB, 14 day, fully functional trial


пример
19 июн 12, 11:46    [12736857]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
swaap
Member

Откуда:
Сообщений: 109
Это тема для размышления, сделать логгирование операций dml
19 июн 12, 11:49    [12736897]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
komrad
Member

Откуда:
Сообщений: 5735
komrad
А-а-а-а-а-а-а......,

посмотри на это решение - Idera Virtual DB, 14 day, fully functional trial


пример


идея в том, чтобы подцепить бекап как базу, не восстанавливая его, т.е. без restore database

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

удачи

PS сам когда-то проапдейтил фин. инфу (баланс) у всех пользователей в таличке вместо одного, т.к. забыл выделить Where. Мне помогло то, что было лениво вычилять нужную цифру и просто написал balance=balance+xxxx . Откат изменений был легким - сделал то же самое, но с минусом. :)
19 июн 12, 11:58    [12736984]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35368
Блог
на будущее - стоит помещать архивы в файловые группы с флагом read-only
19 июн 12, 12:28    [12737299]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
komrad
Member

Откуда:
Сообщений: 5735
похоже автор с ЧОП-ом не договорился, либо пьет горькую
19 июн 12, 12:57    [12737581]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18328
Поднимите руку, кто ни разу не запустил Update/delete без условия? Но наверное никто так не паниковал. Есть бакапы ведь.

Я сейчас пишу так
select *
--Update T set T.field1 = @value
from MyTable T where Field2 > 10


Т.е. в начале убеждаюсь, что условии нужные записи, потом уже запускаю Update.
Потом опять селект, убеждаюсь, что все правильно.
19 июн 12, 13:58    [12738325]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
aleks2
Guest
Deff
Поднимите руку, кто ни разу не запустил Update/delete без условия? Но наверное никто так не паниковал. Есть бакапы ведь.

Я сейчас пишу так
select *
--Update T set T.field1 = @value
from MyTable T where Field2 > 10


Т.е. в начале убеждаюсь, что условии нужные записи, потом уже запускаю Update.
Потом опять селект, убеждаюсь, что все правильно.


А потом дрррогнет рука... и фсе.
19 июн 12, 14:52    [12738900]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
tarrus
Member

Откуда: Bergen
Сообщений: 831
Научили сразу, хочешь что-то сделать ручками - открой транзакцию. Если таблица бизнес-критикал - сделай скрипт, протестируй, перед накатом сделай бэкап.
19 июн 12, 15:03    [12739045]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
komrad
Member

Откуда:
Сообщений: 5735
aleks2
А потом дрррогнет рука... и фсе.

LOL
19 июн 12, 15:21    [12739244]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
magr
Member

Откуда:
Сообщений: 12
А-а-а-а-а-а-а......,

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

или с транзакцией

но пять мульонов могут дооолго откатываться, могут и заметить

не волнуйтесь так, ведь всё-таки это архивная таблица
19 июн 12, 17:30    [12740526]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6201
kDnZP
А-а-а-а-а-а-а......, вот посему взял за правило писать:
1.
BEGIN TRAN
UPDATE -- DELETE и т.д.
-- тут корежим чего надобно


Возможно, ТС еще могла бы спасти SET IMPLICIT_TRANSACTIONS ON.
А так - да, уже вошло в привычку всегда писать begin tran. Бывает, перед запросами его пишу :).
19 июн 12, 19:20    [12741217]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли вытащить из бэкапа только одну таблицу  [new]
squid
Member

Откуда: LA
Сообщений: 590
Критик
на будущее - стоит помещать архивы в файловые группы с флагом read-only


+1. Да Database Snapshot имплементить.
19 июн 12, 19:28    [12741253]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить