Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Копия базы с другим именем  [new]
skais675
Member

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

На MS SQL 2008 - достаточно сделать backup database, потом restore database from device и указать новое имя.
А вот на MS SQL 2012 Express те же операции приводят к ошибке
автор
TITLE: Microsoft SQL Server Management Studio
------------------------------

Restore of database 'Eva_New' failed. (Microsoft.SqlServer.Management.RelationalEngineTasks)

------------------------------
ADDITIONAL INFORMATION:

System.Data.SqlClient.SqlError: The file 'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Eva.mdf' cannot be overwritten. It is being used by database 'Eva'. (Microsoft.SqlServer.SmoExtended)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft SQL Server&ProdVer=11.0.3000.0 ((SQL11_PCU_Main).121019-1322 )&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

Как же нужно правильно это делать?
22 июл 15, 10:21    [17920021]     Ответить | Цитировать Сообщить модератору
 Re: Копия базы с другим именем  [new]
Glory
Member

Откуда:
Сообщений: 104751
skais675
На MS SQL 2008 - достаточно сделать backup database, потом restore database from device и указать новое имя.
А вот на MS SQL 2012 Express те же операции приводят к ошибке

На обоих версисиях НЕдостаточно просто задать новое имя.
Нужно еще задать либо новые имена файлам базы, либо восстанавливать их в другие директории.
Потому что в одном каталоге не может быть двух файлов с одинаковыми именами
О чем вам сервер и сообщил
22 июл 15, 10:24    [17920039]     Ответить | Цитировать Сообщить модератору
 Re: Копия базы с другим именем  [new]
skais675
Member

Откуда:
Сообщений: 76
Glory,
на MS SQL Server 2008 этих проблем нет, как не странно!
22 июл 15, 10:47    [17920168]     Ответить | Цитировать Сообщить модератору
 Re: Копия базы с другим именем  [new]
Glory
Member

Откуда:
Сообщений: 104751
skais675
на MS SQL Server 2008 этих проблем нет, как не странно!

Сказал человек, который наверное даже не видел в глаза команду RESTORE, которую выполняет студия
22 июл 15, 10:48    [17920176]     Ответить | Цитировать Сообщить модератору
 Re: Копия базы с другим именем  [new]
o-o
Guest
в студии изменили дефолты.
если проделать последовательность, описанную ТС,
указав новое имя базы (r1, база-источник r), в студии 2008 сгенерится код навроде:
RESTORE DATABASE [r1] 
FROM  DISK = N'C:\backups\r.bak' WITH  FILE = 2,  
MOVE N'r' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\r1.mdf',  
MOVE N'r_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\r1_1.LDF',  NOUNLOAD,  STATS = 10
GO

а теперь при тех же действиях в студии 2012 генерится вот такое:
USE [master]
BACKUP LOG [r] 
TO  DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\r_LogBackup_2015-07-22_09-47-23.bak' 
WITH NOFORMAT, NOINIT,  NAME = N'r_LogBackup_2015-07-22_09-47-23', NOSKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 5
RESTORE DATABASE [r1] FROM  DISK = N'C:\backups\r.bak' WITH  FILE = 2,  NOUNLOAD,  STATS = 5

GO

как говорится, почувствуйте разницу.
надо или сходить на новую закладку Files и там имена переправить,
и в Options тоже галки по поводу Tail of the log и NORECOVERY поснимать,
или зачем весь этот гимор со студией, когда руками быстрее написать ровно то, что надо
22 июл 15, 10:54    [17920203]     Ответить | Цитировать Сообщить модератору
 Re: Копия базы с другим именем  [new]
o-o
Guest
skais675
на MS SQL Server 2008 этих проблем нет, как не странно!

еще раз. сервер ни при чем, при чем студия.
у меня одна и та же база r на сервере 2008 R2,
а вот студии разные.
2012-ая предлагает сохранить tail of the log в дефолтные пути для бэкапа от 2008, если заметили
(...MSSQL10_50.MSSQLSERVER...)
т.к. сервер все тот же, 2008 R2
22 июл 15, 10:57    [17920223]     Ответить | Цитировать Сообщить модератору
 Re: Копия базы с другим именем  [new]
skais675
Member

Откуда:
Сообщений: 76
o-o
skais675
на MS SQL Server 2008 этих проблем нет, как не странно!

еще раз. сервер ни при чем, при чем студия.
у меня одна и та же база r на сервере 2008 R2,
а вот студии разные.
2012-ая предлагает сохранить tail of the log в дефолтные пути для бэкапа от 2008, если заметили
(...MSSQL10_50.MSSQLSERVER...)
т.к. сервер все тот же, 2008 R2


Вы все верно подметили, Вам спасибо и glory тоже спасибо!
22 июл 15, 11:03    [17920264]     Ответить | Цитировать Сообщить модератору
 Re: Копия базы с другим именем  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31984
skais675
на MS SQL Server 2008 этих проблем нет, как не странно!
Есть. Всё одинаково, и в версиях 20 летней давности так же.
22 июл 15, 11:07    [17920294]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить