Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как восстановить одну таблицу с другим именем из бекапа  [new]
gamedeveloper
Guest
Наверное я просто дилетант в MS SQL, потому что не могу решить простую проблему. Есть ежечасные полные бекапы в MS SQL через SQL Agent. Из-за ошибки было удалено примерно 15% одной таблицы. Как мне восстановить ее одну с другим именем (рабочая должна остаться), чтобы потом сравнить, что удалилось и дополнить рабочую таблицу? Реально ли это? Если нельзя, то можно ли восстановить базу на тот же сервер но с другим именем? И таким образом вытащить нужные данные.
20 июл 05, 00:16    [1718408]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить одну таблицу с другим именем из бекапа  [new]
arfix
Member

Откуда:
Сообщений: 7
Востановление из бекапа .... в "любое имя базы данных"
автор

USE master
GO
CREATE DATABASE "любое имя базы данных";
GO
RESTORE DATABASE "любое имя базы данных"
FROM DISK = 'C:\...\pgz.dump'
WITH RECOVERY,
MOVE 'namebdcopy_Data' TO ''C:\...\namebd_Data.MDF',
MOVE 'namebdcopy_Log' TO ''C:\...\namebd_Log.LDF'
GO
20 июл 05, 01:51    [1718454]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить одну таблицу с другим именем из бекапа  [new]
gamedeveloper
Guest
Прошу прощения за свою необразованность, но куда эти строки вводить? Очень похоже на текст сторед процедуры. Но делать ее в Enterprise Manager-e, а потом запускать кажется глупым. Еще вариант - писать SQL запрос (в открытой таблице сверху жать кнопку SQL). И самое похожее на правду - запустить Query Analyzer и набрать команды там. Последний вариант правильный?
20 июл 05, 07:16    [1718550]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить одну таблицу с другим именем из бекапа  [new]
Lamer@fools.ua
Member

Откуда: Mississauga, Ontario, Canada
Сообщений: 544
gamedeveloper
Прошу прощения за свою необразованность, но куда эти строки вводить? Очень похоже на текст сторед процедуры. Но делать ее в Enterprise Manager-e, а потом запускать кажется глупым. Еще вариант - писать SQL запрос (в открытой таблице сверху жать кнопку SQL). И самое похожее на правду - запустить Query Analyzer и набрать команды там. Последний вариант правильный?


Query Analyzer.
20 июл 05, 08:23    [1718652]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить одну таблицу с другим именем из бекапа  [new]
Pain Of Salvation
Member

Откуда: Москва
Сообщений: 300
gamedeveloper, если так регулярно бэкапы идут , то можешь заюзать Имседовский LiteSpeed (www.imceda.com), ускроряется все в разы, да и сжатие некислое там . Так же можно криптовать.
По поводу QA. Есть SQL IDE ,одна из прелестей этого продукта в том, что он позволяет в отличии от QA смотреть план выполнения запроса, сворачивая/разворачивая ветки выполнения плана. Посмотри, для сравнения.
С сайта стянешь, должно две недели работать , потом капец :) Если надо будет- помогу, пиши .
20 июл 05, 09:44    [1718847]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить одну таблицу с другим именем из бекапа  [new]
Glory
Member

Откуда:
Сообщений: 104760
gamedeveloper
Прошу прощения за свою необразованность, но куда эти строки вводить? Очень похоже на текст сторед процедуры. Но делать ее в Enterprise Manager-e, а потом запускать кажется глупым.

В ЕМ в меню нажмите Tools-Restore Database, если не хотите вбивать скрипт
20 июл 05, 15:14    [1720942]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить одну таблицу с другим именем из бекапа  [new]
gamedeveloper
Guest
Все же опасаюсь ошибиться и потереть базу, поэтому сначала приведу пример запроса в QA сюда:

Хочу создать базу rest13 из бекапа lin2world от 13 числа (имя бекапа = 'D:\SQL-BACKUP\13-07-2005(04-30-06)lin2world.bak') Правильный запрос у меня получается? И точно ли нужно MOVE писать? Я так логи и данные текущей базы не потеряю?

USE master
GO
CREATE DATABASE "rest13";
GO 
RESTORE DATABASE "rest13"
FROM DISK = 'D:\SQL-BACKUP\13-07-2005(04-30-06)lin2world.bak' 
WITH RECOVERY, 
MOVE 'lin2world_Data' TO 'D:\temp\rest13_Data.MDF', 
MOVE 'lin2world_Log' TO 'D:\temp\rest13_Log.LDF' 
GO 
21 июл 05, 02:03    [1722422]     Ответить | Цитировать Сообщить модератору
 Re: Как восстановить одну таблицу с другим именем из бекапа  [new]
gamedeveloper
Guest
Попробовал через Tools-Restore в EM. Выбрал нужную базу, ввел в Restore as database новое имя, выбрал дату бекапа 13 июля и запустил рестор. Висит окно Restore Progress и в полоске прогресса пусто вот уже 10 минут. База размером 130 мегабайт. Оно реально так долго делается или руки у меня таки кривые?
21 июл 05, 02:17    [1722429]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить