Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Доброго времени суток. Опишу проблему с самого начала!
С одного ПК был сделан BackUP и файл перенесен на другой ПК.
При выполнении команды в MSSQL 2008 "RESTORE FILISTONLY" отображаются следующий данные:
LogicalName PhysicalName
CakeMker D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.mdf
CakeMker_log D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.ldf
! Прошу обратить внимание на логическое имя!
Имя файла BackUp: CakeMaker.bak

На компьютер куда восстанавливается БД диска "D" - нет.
При попытке восстановления просит путь D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL......
Как я понимаю: при архивировании в файл жестко прописывается путь архивации.
Вопрос: Как восстановить в пустую БД CakeMaker (с логическим именем CakeMaker) базу из этого файла?

Средствами move...to - не помогает!
5 сен 13, 17:21    [14801089]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
А если перед восстановлением указать новое место расположения файлов?
Обычно я так делал.
5 сен 13, 17:25    [14801119]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35397
Блог
http://technet.microsoft.com/ru-ru/library/ms186858.aspx
пример Д
5 сен 13, 17:25    [14801121]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Goldman
Средствами move...to - не помогает!

Правда? А можете показать команду и текст ошибки?
5 сен 13, 17:26    [14801127]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
SQL2008,
Я не спец в запросах SQL, но если путь "зашит" в файле backup, то каким макаром его изменить?
Ведь при восстановлении, ругается, что по такому пути нет этих файлов!
5 сен 13, 17:30    [14801141]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Критик
http://technet.microsoft.com/ru-ru/library/ms186858.aspx
пример Д

Там нет варианта Д
автор
Примеры выполнения инструкции RESTORE.

А. Восстановление всей базы данных

Б. Восстановление полной и разностной резервных копий базы данных

В. Восстановление базы данных с использованием синтаксиса RESTART

Г. Восстановление базы данных и перемещение файлов

E. Копирование базы данных с помощью BACKUP и RESTORE

Е. Восстановление состояния на определенный момент времени с помощью STOPAT

Ж. Восстановление журнала транзакций до метки

З. Восстановление с использованием синтаксиса TAPE

И. Восстановление с использованием синтаксиса FILE и FILEGROUP

К. Возврат из моментального снимка базы данных

Шутка конечно. Просто опечатка!
5 сен 13, 17:30    [14801144]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Гость333,

use [master]
GO
exec dbo.sp_kill_allsession 'CakeMaker'
GO
RESTORE DATABASE [CakeMaker]
FROM DISK = N'c:\SQL\Backup\CakeMaker.bak'
WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10,
MOVE N'CakeMaker' TO N'D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.mdf',
MOVE N'CakeMaker_log' TO N'D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.ldf'
GO
5 сен 13, 17:31    [14801146]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Гость333
Goldman
Средствами move...to - не помогает!

Правда? А можете показать команду и текст ошибки?


use [master]
GO
alter database CakeMaker set single_user with rollback immediate
GO
RESTORE DATABASE [CakeMaker]
FROM DISK = N'c:\SQL\Backup\CakeMaker.bak'
WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10,
MOVE N'CakeMaker' TO N'D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.mdf',
MOVE N'CakeMaker_log' TO N'D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.ldf'
GO
5 сен 13, 17:33    [14801156]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35397
Блог
LogicalName PhysicalName
CakeMker D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.mdf
CakeMker_log D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.ldf
5 сен 13, 17:34    [14801159]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Критик
LogicalName PhysicalName
CakeMker D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.mdf
CakeMker_log D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.ldf



Именно!!! Логические имена не совпадают с физическими!
5 сен 13, 17:36    [14801166]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Goldman
RESTORE DATABASE [CakeMaker] 
FROM  DISK = N'c:\SQL\Backup\CakeMaker.bak' 
WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10,  
MOVE N'CakeMaker' TO N'D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.mdf',  
MOVE N'CakeMaker_log' TO N'D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.ldf'

А в первом посте вы пишете, что логические имена файлов — это CakeMker и CakeMker_log.
5 сен 13, 17:36    [14801172]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Гость333
Goldman
RESTORE DATABASE [CakeMaker] 
FROM  DISK = N'c:\SQL\Backup\CakeMaker.bak' 
WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10,  
MOVE N'CakeMaker' TO N'D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.mdf',  
MOVE N'CakeMaker_log' TO N'D:\Databases\MSSQL2008\MSSQL10_50.MSSQL2008\MSSQL\DATA\CakeMaker.ldf'

А в первом посте вы пишете, что логические имена файлов — это CakeMker и CakeMker_log.




Совершенно верно! Но в новой БД и логические имена и физические CakeMaker
5 сен 13, 17:38    [14801179]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Goldman
Но в новой БД и логические имена и физические CakeMaker

Так у вас же указана опция REPLACE, т.е. существующая БД с таким именем будет удалена.
5 сен 13, 17:41    [14801201]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Гость333
Goldman
Но в новой БД и логические имена и физические CakeMaker

Так у вас же указана опция REPLACE, т.е. существующая БД с таким именем будет удалена.


Все верно! Мне нужна база в таком виде, как она была на другом ПК! т.к. это связка скомпилированного файла на silverlight и SQL
5 сен 13, 17:42    [14801212]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Goldman,

Ну тогда вам нужна такая команда?
RESTORE DATABASE [CakeMaker] 
FROM  DISK = N'c:\SQL\Backup\CakeMaker.bak' 
WITH NOUNLOAD,  REPLACE,  STATS = 10,  
MOVE N'CakeMker' TO N'Диск:\Путь\CakeMaker.mdf',  
MOVE N'CakeMker_log' TO N'Диск:\Путь\CakeMaker.ldf

Диск:\Путь замените на существующий путь, по которому вы хотите видеть файлы БД.
После восстановления БД можете переименовать логические файлы.
5 сен 13, 17:48    [14801241]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Goldman
Гость333
пропущено...

Так у вас же указана опция REPLACE, т.е. существующая БД с таким именем будет удалена.


Все верно! Мне нужна база в таком виде, как она была на другом ПК! т.к. это связка скомпилированного файла на silverlight и SQL

1. Detach
2. Copy
3. Attach on original server
4. Attcah on new server
5 сен 13, 17:49    [14801247]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Гость333
Goldman,

Ну тогда вам нужна такая команда?
RESTORE DATABASE [CakeMaker] 
FROM  DISK = N'c:\SQL\Backup\CakeMaker.bak' 
WITH NOUNLOAD,  REPLACE,  STATS = 10,  
MOVE N'CakeMker' TO N'Диск:\Путь\CakeMaker.mdf',  
MOVE N'CakeMker_log' TO N'Диск:\Путь\CakeMaker.ldf

Диск:\Путь замените на существующий путь, по которому вы хотите видеть файлы БД.
После восстановления БД можете переименовать логические файлы.


В общем я решил попробовать восстановить в другую БД ниже листинг:

RESTORE DATABASE [test]
FROM DISK = N'c:\SQL\Backup\CakeMaker.bak'
WITH NOUNLOAD, REPLACE, STATS = 10,
MOVE N'CakeMker' TO N'c:\SQL\DATA1\test.mdf',
MOVE N'CakeMker_log' TO N'c:\SQL\DATA1\test.ldf'


А вот результат после 2х минутного ожидания:

10 percent processed.
20 percent processed.
30 percent processed.
Msg 3183, Level 16, State 2, Line 2
RESTORE detected an error on page (0:0) in database "test" as read from the backup set.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.
5 сен 13, 17:55    [14801283]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
SQL2008
Goldman
пропущено...


Все верно! Мне нужна база в таком виде, как она была на другом ПК! т.к. это связка скомпилированного файла на silverlight и SQL

1. Detach
2. Copy
3. Attach on original server
4. Attcah on new server



В том то и дело, что у того, кто делал backup нет доступа физического к файловой системе! :(
5 сен 13, 17:56    [14801293]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Goldman
А вот результат после 2х минутного ожидания:

10 percent processed.
20 percent processed.
30 percent processed.
Msg 3183, Level 16, State 2, Line 2
RESTORE detected an error on page (0:0) in database "test" as read from the backup set.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.

Похоже на битый бэкап.
Попробуйте проверить бэкап:
RESTORE VERIFYONLY FROM DISK = N'c:\SQL\Backup\CakeMaker.bak'
5 сен 13, 18:04    [14801330]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Гость333
Goldman
А вот результат после 2х минутного ожидания:

10 percent processed.
20 percent processed.
30 percent processed.
Msg 3183, Level 16, State 2, Line 2
RESTORE detected an error on page (0:0) in database "test" as read from the backup set.
Msg 3013, Level 16, State 1, Line 2
RESTORE DATABASE is terminating abnormally.

Похоже на битый бэкап.
Попробуйте проверить бэкап:
RESTORE VERIFYONLY FROM DISK = N'c:\SQL\Backup\CakeMaker.bak'


По всей видимости человек создавал backup на средствами MS, хотя клялся, что из MSSQL backup делал!

Msg 3242, Level 16, State 2, Line 1
The file on device 'c:\SQL\Backup\CakeMaker.bak' is not a valid Microsoft Tape Format backup set.
Msg 3013, Level 16, State 1, Line 1
VERIFY DATABASE is terminating abnormally.

Тогда почему он начинал его восстанавливать?
5 сен 13, 18:07    [14801335]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Goldman,

Битый файл бэкапа, я считаю. Например, повредился во время передачи по сети.
Можете попробовать восстановить с опцией CONTINUE_AFTER_ERROR, потом прогнать на базе DBCC CHECKDB. Но лучше запросить бэкап ещё раз.
5 сен 13, 18:15    [14801366]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
Гость333
Goldman,

Битый файл бэкапа, я считаю. Например, повредился во время передачи по сети.
Можете попробовать восстановить с опцией CONTINUE_AFTER_ERROR, потом прогнать на базе DBCC CHECKDB. Но лучше запросить бэкап ещё раз.


С параметром CONTINUE_AFTER_ERROR такая же беда! Буду пытаться запросить backup снова!!!
Всем спасибо за советы!!!
5 сен 13, 18:18    [14801379]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
__John__
Member

Откуда: Киев
Сообщений: 100
Goldman, попробуйте подмапить директорию командой subst D: c:\sql\database , чтобы диск D:\ в системе присутствовал
5 сен 13, 21:35    [14802026]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Goldman
Member

Откуда: Москва
Сообщений: 12
__John__
Goldman, попробуйте подмапить директорию командой subst D: c:\sql\database , чтобы диск D:\ в системе присутствовал


Выяснилось, что Backup "битый" - не поможет!
6 сен 13, 09:04    [14802654]     Ответить | Цитировать Сообщить модератору
 Re: Восстановление БД MSSQL из стороннего BackUp  [new]
Денис Б.
Member

Откуда: Екатеринбург
Сообщений: 158
Была похожая ситуация. На 2000-м MS SQl
Создавал папку с нужными подпапками. Закидывал в неё бэкап. Делал её виртуальным диском (DAEMON-ом вроде или VirtualDrive-ом) . Затем спокойно восстанавливал. И в Management Studio менял пути на новые.
6 сен 13, 14:04    [14804522]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить