mssql, заресторить базу из файла бэкапа

Alena_08_11

Есть файл бэкапа, делался так :

....
BACKUP DATABASE @db TO DISK = @filePath WITH FORMAT, NAME = @name
....

Как на основе этого файла сделать бд совершенно на другом mssql 2005 ?
Я попробовал тупо restore database ... (ну в sql mgmt studio есть мастер). Указал там в To database: свкежесозданную базу. а в From device: указал этот файл бэкапа.
Получил ошибку : резервный набор данных содержит копию базы данных отличной от существующей базы данных "(имя_бд)"
Вопросы
1. Можно ли вообще в принципе восстановить этот бэкап в произвольную базу данных на произвольном сервере ? ( Или можно _только_ в ту же базу, на том же серве, откуда делался бэкап?)
2. Если ответ на 1й вопрос - "можно", то как это сделать ? (гуглить пробовал - сходу не получилось, щас пока на гугление времени нет)

Marusetta

Сообщение удалил

0000

А так?

BACKUP DATABASE @db TO DISK = @filePath WITH FORMAT, NAME = @name, DIFFERENTIAL

P.S. 5 мин в Яндексе и попытка телепатическим путем выучить MS SQL Server и его утилиты.

0000

У MS обычно все привязывается к ActiveDirectory (но можно и отвязаться при необходимости).

Alena_08_11

Не понял, в смысле " а так" ?
бэкап то делается, differential означает что сбакапировано будет только то, что было добавлено в базу после предыдушего фулл бэкапа. У меня же постоянно делается фуллбэкап.
Только вот ща мне потребовалось из файла бэкапа развернуть базу на другом сервере - и не получается. И нахрена такой бэкап нужен спрашивается ?

0000

В очередной раз убеждаюсь, что телепатические способности у меня не развиты :(

stalker33rus10

А так?

RESTORE DATABASE dbname
FROM DISK = 'path'
WITH REPLACE

Только dbname толжно совпадать с именем базы которую ты забэкапил и делать это надо не из-под уже существующего бэкапа, должно быть все ок.

Alena_08_11

ну примерно так и сделал.
Дошли руки посмотреть на msdn по теме
нашёл вот что:
This example uses both the BACKUP and RESTORE statements to make a copy of the Northwind database. The MOVE statement causes the data and log file to be restored to the specified locations. The RESTORE FILELISTONLY statement is used to determine the number and names of the files in the database being restored. The new copy of the database is named TestDB. For more information, see RESTORE FILELISTONLY.
BACKUP DATABASE Northwind
TO DISK = 'c:\Northwind.bak'
RESTORE FILELISTONLY
FROM DISK = 'c:\Northwind.bak'
RESTORE DATABASE TestDB
FROM DISK = 'c:\Northwind.bak'
WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
GO
Вроде прокатило.
Удивляет что нет гуёвого мастера в эскуэль манагамент студии для перформа такой операции. Или он какой то неочевидный.

stalker33rus10

А как же правой кнопкой по Databases и там Restore Database?

klyv

Указал там в To database: свкежесозданную базу.
А вот создавать её, наверное, не стоило ;)

Alena_08_11

ну там полюбак нада было выбррать какую нить базу из имеющихся, иначе не была активна кнопка эплай.

klyv

Не-а :)
выбор БД там есть в 2х местах (насколько я помню):
1 - "из какой базы восстанавливать" - это не к нам, мы из файла хотим
2 - "в какую базу восстанавливать" - там можно ввести отсебятину

Alena_08_11

Хм
ну мб
сходу я не сообразил
Оставить комментарий
Имя или ник:
Комментарий: