it-swarm-ru.tech

Как лучше всего скопировать целые базы данных в MS SQL Server?

Мне нужно скопировать около 40 баз данных с одного сервера на другой. Новые базы данных должны иметь новые имена, но все те же таблицы, данные и индексы, что и в исходных базах данных. До сих пор я был: 

1) создание каждой целевой базы данных
2) использование команды " Tasks-> Export Data " для создания и заполнения таблиц для каждой базы данных в отдельности.
3) перестроение всех индексов для каждой базы данных с помощью сценария SQL 

Только три шага на базу данных, но я держу пари, что есть более простой способ. Есть ли какие-нибудь эксперты по MS SQL Server?

20
ryan_s

Учитывая, что вы выполняете это для нескольких баз данных - вам нужно простое решение на основе сценариев, а не решение типа «укажи и щелкни».

Это резервный скрипт, который я храню. Сделайте так, чтобы он работал для одного файла, а затем измените его для многих.

(on source server...)
BACKUP DATABASE Northwind
  TO DISK = 'c:\Northwind.bak'

(target server...)
RESTORE FILELISTONLY
  FROM DISK = 'c:\Northwind.bak'

(look at the device names... and determine where you want the mdf and
ldf files to go on this target server)

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
44
Leon Bambrick

Возможно, самое простое - это отсоединить/прикрепить. Щелкните правой кнопкой мыши в диспетчере серверов на БД, задачи -> отключить. Затем скопируйте файлы MDF/LDF на новый сервер, а затем снова подключите, щелкнув значок сервера и задачи -> присоединить. Он запросит у вас файл MDF - убедитесь, что имя и т.д. Точно.

14
user1151

В порядке легкости

  • остановить сервер/fcopy/attach, вероятно, проще всего.
  • резервное копирование/восстановление - может быть сделано отключено довольно просто и легко
  • задача переноса DTS - необходимы разрешения на копирование файла
  • репликация - самая простая от простой до настройки

Что нужно подумать о разрешениях, пользователях и группах на конечном сервере ESP. если вы переносите или восстанавливаете.

4
stephbu

Есть лучшие ответы уже, но это «также побежал», потому что это просто еще один вариант.

Для низкой низкой цены вы можете посмотреть в Публикация базы данных Microsoft SQL Server Wizard . Этот инструмент позволяет вам написать схему, данные или данные и схему. Плюс это может быть запущен из пользовательского интерфейса или командной строки <- думаю, процесс CI.

4
MotoWilliams

Если вы используете решение «Резервное копирование/восстановление», у вас, скорее всего, останутся осиротевшие пользователи, поэтому обязательно ознакомьтесь с этой статьей <Microsoft> о том, как их исправить.

2
Mike L

Резервное копирование -> Восстановление является самым простым, если не использовать репликацию.

2
dimarzionist

Еще один способ проверить это быстро и просто:

Простой SQL BULK Copy

http://projects.c3o.com/files/3/plugins/entry11.aspx

2
Doug

Резервное копирование баз данных с помощью стандартного средства резервного копирования SQL в Enterprise Manager, затем при восстановлении на втором сервере вы можете указать имя новой базы данных.

Это лучший способ сохранить схему в полном объеме.

1
X-Cubed

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

0
JesseG

Redgate SQL Compare и SQL Data Compare. «Сравнительный комплект» был безусловно лучшей инвестицией, которую я когда-либо делал в компании, в которой я работал. Перемещение контента электронного обучения было на одном дыхании.

0
Kevin Sheffield
0
Yordan Georgiev