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

Откуда: Химки МО
Сообщений: 1248
Решил скопировать базу на другой компьютер под другим именем.

Есть 2 компьютера
1) На первом установлен MSSQL DE 2000. Есть база New_Import. Делаю ее Backup DataBase и копирую полученный файл на сервер

2) На сервере MSSQL DE 2000. Создаю базу And_CL. Делаю ее backUp и подменяю полученный файл, файлом с первого компьютера. Далее делаю Restore Database. На сервере тоже есть база New_Import.

После этого сервер говорит: Выставьте флажок Force restore existing database. Ставлю этот флажок. Но теперь мне выдается сообщение New_Import_Data.MDF не может быть заменен потому что он используется другой базой. (причем тут New_Import когда восстанавливаю другую базу And_CL). Удаляю базу New_Import и повторяю все заново. Опять тоже самое...

Надеюсь описал достаточно подробно.
Спасибо.
10 дек 04, 15:10    [1174349]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
Более того с другими базами все проходит без проблем...
10 дек 04, 15:12    [1174360]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
2. Это Вам кто насоветовал?! Зачем делать бэкап и файл подменять.

Приведите оригинальное сообщение об ошибке, могу тока предположить, что Вы директиву MOVE не указываете.
10 дек 04, 15:15    [1174369]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
Вот эта ошибка. (Вложил файл)

К сообщению приложен файл. Размер - 0Kb
10 дек 04, 15:17    [1174383]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
автор
2. Это Вам кто насоветовал?! Зачем делать бэкап и файл подменять.

Приведите оригинальное сообщение об ошибке, могу тока предположить, что Вы директиву MOVE не указываете.


А как надо? :-) Я вообще не очень разбираюсь. Мне сказли я делаю...
10 дек 04, 15:18    [1174390]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Как надо, в BOL написано.
10 дек 04, 15:20    [1174393]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
автор
Как надо, в BOL написано.


Ну спасибо, помогли. Я не знаю что такое BOL. :-(
10 дек 04, 15:22    [1174410]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Петров Андрей
автор
Как надо, в BOL написано.


Ну спасибо, помогли. Я не знаю что такое BOL. :-(

https://www.sql.ru/faq/faq_topic.aspx?fid=142
10 дек 04, 15:26    [1174435]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
naPmu3aH
Member

Откуда: из лесу
Сообщений: 1449
use master
restore database And_CL
from disk = '<путь_к_файлу_с_бэкапом_New_Import>.BAK'
with replace,
     move 'Import_New_Data' to '<полный_путь_к_файлу_данных_And_CL>.mdf',
     move 'Import_New_Log' to '<полный_путь_к_файлу_лога_And_CL>.ldf'
go
--
чем дальше в лес, тем больше нас
10 дек 04, 17:08    [1174963]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
naPmu3aH
Member

Откуда: из лесу
Сообщений: 1449
ну или из EМ, поставив галку Force restore over existing database, чуть ниже поменять пути в графах Restore as на путь к файлам данных и лога новой базы.
--
чем дальше в лес, тем больше нас
10 дек 04, 17:15    [1174995]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
автор
ну или из EМ, поставив галку Force restore over existing database, чуть ниже поменять пути в графах Restore as на путь к файлам данных и лога новой базы.


Спасибо за ответ, а то я уж совсем надежду потерял.

1)Поставил галку.
2)Пути и так установлены на новую базу.
C:\Program Files\Microsoft SQL Server\MSSQL\data\And_CL_Data.MDF
C:\Program Files\Microsoft SQL Server\MSSQL\data\And_CL_Log.LDF

Не помогает. За пример восстановления из PL-SQL спасибо...
10 дек 04, 17:33    [1175060]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
злой программер
Member

Откуда:
Сообщений: 226
Попробуйте по шагам:
1. Создайте бэкап базы:
DECLARE @Base VarChar(100), @DT VarChar(50), @File VarChar(100), @Cmd VarChar(500)
SET @Base = 'Имя вашей базы'
SET @Dt = 'C:\' + @Base + '_' + CONVERT(Char(8), GETDATE(), 112) + '_' + REPLACE(CONVERT(Char(5), GETDATE(), 108), ':', '')
SET @File = @Dt + '.Bak'
BACKUP DATABASE @Base TO DISK = @File WITH INIT
SET @File = @DT + '.Log'
BACKUP LOG @Base TO DISK = @File WITH INIT
BACKUP LOG @Base WITH TRUNCATE_ONLY DBCC SHRINKFILE(2,300)
Скрипт создаст в корне диска с файлы бэкапа.
2. Перенесите эти файлы на новый сервер тоже в корень С.
3. Создайте на новом сервере новую пустую базу.
4. Восстановите базу с новым именем:
RESTORE DATABASE <имя новой базы>
FROM DISK = 'полное имя файла бэкапа (которое с расширением *.bak)' WITH REPLACE,
MOVE '<имя новой базы>_Data' to '<полный путь к mdf файлу>',
MOVE '<имя новой базы>_Log' to '<полный путь к ldf файлу>'
5. База должна восстановиться, только не забудьте в ммент восстановления обеспечить эксклюзивный доступ к БД. (single_user)
10 дек 04, 17:55    [1175159]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
Петров Андрей
Member

Откуда: Химки МО
Сообщений: 1248
Спасибо большое. Буду пробовать...

Вот что выдал первый скрипт...

Processed 552 pages for database 'New_Import', file 'New_Import_Data' on file 1.
Processed 1 pages for database 'New_Import', file 'New_Import_Log' on file 1.
BACKUP DATABASE successfully processed 553 pages in 0.601 seconds (7.525 MB/sec).
Processed 348 pages for database 'New_Import', file 'New_Import_Log' on file 1.
BACKUP LOG successfully processed 348 pages in 0.343 seconds (8.303 MB/sec).
Cannot shrink file '2' in database 'Develop' to 38400 pages as it only contains 24912 pages.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
10 дек 04, 18:02    [1175191]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
naPmu3aH
Member

Откуда: из лесу
Сообщений: 1449
злой программер
4. Восстановите базу с новым именем:
RESTORE DATABASE <имя новой базы>
FROM DISK = 'полное имя файла бэкапа (которое с расширением *.bak)' WITH REPLACE,
MOVE '<имя новой базы>_Data' to '<полный путь к mdf файлу>',
MOVE '<имя новой базы>_Log' to '<полный путь к ldf файлу>'

там должно быть имя (logical name) старой базы. Голову даю на отсечение :)

А поменять logical name потом никто не мешает чем-нибудь типа такого:
ALTER DATABASE <имя_новой_базы> MODIFY FILE (NAME= '<имя_старой_базы>_Data', NEWNAME = '<имя_новой_базы>_Data') 
ALTER DATABASE <имя_новой_базы> MODIFY FILE (NAME= '<имя_старой_базы>_Log', NEWNAME = '<имя_новой_базы>_Log')
10 дек 04, 18:07    [1175215]     Ответить | Цитировать Сообщить модератору
 Re: Копирую базу  [new]
злой программер
Member

Откуда:
Сообщений: 226
to naPmu3aH Согласен. Невнимательно поменял имя в своем скрипте ;)
10 дек 04, 18:58    [1175331]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить