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

Откуда: Чебаркуль
Сообщений: 4146
Дано: на удаленной машине установлен Win Server, диски C: и D:, SQL Server 2019, база DB1 на диске с:.
У меня доступ есть только через SSMS.
Как мне скопировать базу на диск д только через SSMS? т.е. из DB1 сделать копию DB2, но, чтобы ее файлы легли на диск д?
30 апр 21, 09:11    [22316674]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
Ролг Хупин,

Создать новую базу на нужных дисках
Сделать бэкап старой базы
Накатить бэкап на новую базу
Старую отключить
Новую переименовать

Ну или сделать деатач старой базы
при помощи xp_cmdshell скопировать файлы на диск D
Атач файлов с диск D

Сообщение было отредактировано: 30 апр 21, 09:49
30 апр 21, 09:54    [22316694]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4146
teCa
Ролг Хупин,

Создать новую базу на нужных дисках
Сделать бэкап старой базы
Накатить бэкап на новую базу
Старую отключить
Новую переименовать

Ну или сделать деатач старой базы
при помощи xp_cmdshell скопировать файлы на диск D
Атач файлов с диск D


1. зачем создавать новую базу? почему бы сразу не восстановить на нужный диск?
2. xp_cmdshell - плохая практика, запрещена.

задача усугубляется тем, что места для бекапа впритык.
Думал может database copy поможет

Сообщение было отредактировано: 30 апр 21, 11:12
30 апр 21, 11:19    [22316768]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
Ролг Хупин

1. зачем создавать новую базу? почему бы сразу не восстановить на нужный диск?


Есть какая то принципиальная разница?
30 апр 21, 11:20    [22316771]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4146
teCa
Ролг Хупин

1. зачем создавать новую базу? почему бы сразу не восстановить на нужный диск?


Есть какая то принципиальная разница?


это мой вопрос - зачем?
30 апр 21, 11:23    [22316774]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
Ролг Хупин,

Можете не создавать базу, можете её сразу восстановить, делайте, как вам удобно.
30 апр 21, 11:32    [22316781]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
komrad
Member

Откуда:
Сообщений: 5677
Ролг Хупин

2. xp_cmdshell - плохая практика, запрещена.

задача усугубляется тем, что места для бекапа впритык.
Думал может database copy поможет


ну, если временно включить xp_cmdshell не вариант, то см здесь:

https://www.mssqltips.com/sqlservertip/3212/options-to-move-a-big-sql-server-database-to-a-new-drive-with-minimal-downtime/

The SQL Server New Filegroup Method to Move a Database
The DBCC SHRINKFILE Method to Move a Database
30 апр 21, 11:39    [22316786]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4146
komrad
Ролг Хупин

2. xp_cmdshell - плохая практика, запрещена.

задача усугубляется тем, что места для бекапа впритык.
Думал может database copy поможет


ну, если временно включить xp_cmdshell не вариант, то см здесь:

https://www.mssqltips.com/sqlservertip/3212/options-to-move-a-big-sql-server-database-to-a-new-drive-with-minimal-downtime/

The SQL Server New Filegroup Method to Move a Database
The DBCC SHRINKFILE Method to Move a Database


ок, только нужен клон, не мув.
30 апр 21, 11:49    [22316800]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
komrad
Member

Откуда:
Сообщений: 5677
Ролг Хупин

ок, только нужен клон, не мув.

самое быстрое - вывести исходную базу в оффлайн, через xp_cmdshell скопировать файлы на другой диск, затем исходную в онлайн и аттач файлов как базы с новым именем
30 апр 21, 11:54    [22316806]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
L_argo
Member

Откуда:
Сообщений: 1462
komrad
Ролг Хупин

ок, только нужен клон, не мув.

самое быстрое - вывести исходную базу в оффлайн, через xp_cmdshell скопировать файлы на другой диск, затем исходную в онлайн и аттач файлов как базы с новым именем
Если канал медленный, то быстрее может оказаться перенос/восстановление бекапа (разумеется с опцией штатной упаковки).
Да и оффлайн и копирование большой базы может быть неприемлемо бизнесу, т.к. может занять часы.
30 апр 21, 12:25    [22316829]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Wlr-l
Member

Откуда:
Сообщений: 539
"[i][/i]задача усугубляется тем, что места для бекапа впритык."


1.Делаем резервную копию на диск Д.

2.Восстанавливаем из нее новую базу данных с новым именем и новым местоположением на диске Д.

Кроме студии никакие другие инструменты не нужны.
30 апр 21, 13:02    [22316849]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4146
komrad
Ролг Хупин

ок, только нужен клон, не мув.

самое быстрое - вывести исходную базу в оффлайн, через xp_cmdshell скопировать файлы на другой диск, затем исходную в онлайн и аттач файлов как базы с новым именем



Включил xp_cmdshell пока все спят.

Вопрос:
1. детач исходной базы
2. копирую файлы в другое место
3. аттач - мне нужно прицепить эти файлы на тот же сервер, но как базу с другим именем - как это проделать?
30 апр 21, 13:03    [22316850]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
teCa
Member

Откуда: Москва
Сообщений: 877
Ролг Хупин

3. аттач - мне нужно прицепить эти файлы на тот же сервер, но как базу с другим именем - как это проделать?

Зачем с другим именем? Вы же первым шагом отключили базу от сервера, с тем же именем и подключайте.
30 апр 21, 13:09    [22316852]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4146
teCa
Ролг Хупин

3. аттач - мне нужно прицепить эти файлы на тот же сервер, но как базу с другим именем - как это проделать?

Зачем с другим именем? Вы же первым шагом отключили базу от сервера, с тем же именем и подключайте.


Есть анекдот про деда Мороза, там концовка: "дедушка, нуне**т**м**!"

В первом посте и далее ся старался коротко и доходчиво написать, что мне надо: " т.е. из DB1 сделать копию DB2, но, чтобы ее файлы легли на диск д?"
30 апр 21, 13:16    [22316857]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
komrad
Member

Откуда:
Сообщений: 5677
Ролг Хупин

3. аттач - мне нужно прицепить эти файлы на тот же сервер, но как базу с другим именем - как это проделать?

всё задокументировано
https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-attach-db-transact-sql
30 апр 21, 13:18    [22316860]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
komrad
Member

Откуда:
Сообщений: 5677
L_argo
Если канал медленный, то быстрее может оказаться перенос/восстановление бекапа (разумеется с опцией штатной упаковки).
Да и оффлайн и копирование большой базы может быть неприемлемо бизнесу, т.к. может занять часы.

копирование идет в пределах одного сервера, "канал" между дисками широкий
про неприемлемость никакой вводной не было - так можно придумать еще много ограничений )
30 апр 21, 13:20    [22316862]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4146
Кстати, что скопирует файл быстрее на одной машине с диска на диск

EXEC master.sys.xp_copy_file
или
EXEC xp_cmd_shell

?
30 апр 21, 14:35    [22316923]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
komrad
Member

Откуда:
Сообщений: 5677
Ролг Хупин

EXEC master.sys.xp_copy_file

если права на файлы сохраняет, то можно и её попробовать
30 апр 21, 15:28    [22316957]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4146
komrad
Ролг Хупин

EXEC master.sys.xp_copy_file

если права на файлы сохраняет, то можно и её попробовать


пишут, что это новая в SQL 2019, сработала прилично, по правам не в курсе, но скопировал файлы и аттачнул базу.
30 апр 21, 15:43    [22316974]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
komrad
Member

Откуда:
Сообщений: 5677
Ролг Хупин


пишут, что это новая в SQL 2019, сработала прилично, по правам не в курсе, но скопировал файлы и аттачнул базу.

хэппи энд
30 апр 21, 16:05    [22316984]     Ответить | Цитировать Сообщить модератору
 Re: Как скопировать базу?  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4146
komrad
Ролг Хупин


пишут, что это новая в SQL 2019, сработала прилично, по правам не в курсе, но скопировал файлы и аттачнул базу.

хэппи энд


да, додолбил
30 апр 21, 16:12    [22316988]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить