Назад | Перейти на главную страницу

Как скопировать базу данных SQL Server 2005?

В моей среде мне нужно скопировать базу данных с одного сервера на другой. Обычно машина контроля качества к моему локальному ящику.

У меня нет доступа к машине QA. Я могу подключиться к базе данных, но не по RDP в коробке.

Как лучше всего скопировать базу данных с сервера контроля качества на мою машину?

Я бы попробовал Мастер копирования базы данных команда доступна через SQL Management Studio. Это можно сделать без доступа RDP.

У Microsoft также есть страница MSDN на копирование данных между серверами это может быть полезно.

Если у вас есть доступ к общей папке или административной папке (например, c $) в окне SQL Server, вы можете запустить резервное копирование с помощью SQL Server Management Studio на диск сервера, а затем скопировать его на свой локальный компьютер.

Sql Server Management Studio (пример из SSMS 2008, должен быть похож на 2005):

  • Войдите на сервер базы данных
  • Щелкните правой кнопкой мыши базу данных, которую вы хотите сделать резервную копию -> Задачи -> Резервное копирование
  • В группе "Место назначения" выберите "Резервное копирование на: диск".
  • Нажмите "Добавить ..."
  • В поле «Имя файла:» укажите, где вы хотите сделать резервную копию и какое будет имя файла (файл .bak).
  • Нажмите "ОК"
  • Нажмите "ОК"

Когда это будет завершено, скопируйте файл на свой локальный компьютер.

Существует также мастер импорта / экспорта, который поставляется с SSMS 2008, который может выполнять прямое копирование из одной базы данных в другую (т.е. QA на локальную), но я не использовал его часто, потому что у меня всегда был доступ к Серверы БД.

Самый простой и, возможно, самый безопасный способ в этой ситуации - создать резервную копию базы данных и восстановить файл .bak на свой компьютер.

Это то, что я обычно делаю специально, когда пишу хранимые процедуры, скажем, для отчета SSRS или просто тестирую или просто занимаюсь чем-то. И, конечно же, я всегда удостоверяюсь, что подключен ТОЛЬКО к своему экземпляру dev. Я не хочу возиться с live db. Итак, я обычно делаю резервную копию определенной базы данных в полночь, отправляю ее по SFTP на свою машину и выполняю быстрое восстановление. Когда все протестировано и все работает нормально в dev, тогда я запускаю скрипт / ы на живом экземпляре и db ;-)

Если вы можете подключиться к исходной базе данных, но не по RDP к машине, на которой она работает, вы можете использовать Мастер публикации базы данных Microsoft.
Это бесплатный инструмент от MS, который создает для вас сценарий SQL для полной базы данных.
Затем вы можете запустить сценарий на своем компьютере.

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

Вы, вероятно, можете создать резервные копии sql в PowerShell Google, но вот несколько ссылок, которые помогут вам начать:

Журнал базы данных

Скрипты базы данных Powershell

Можете ли вы сделать это, просто скопировав файлы в каталог / Data вашей установки?

Я поддерживаю идею "резервного копирования", однако я бы не стал делать для этого новую резервную копию. Получите резервную копию прошлой ночи. Вы не только сэкономите дополнительное время на резервное копирование, но и сможете проверить резервное копирование прошлой ночью. Если это обычное требование, разумно попросить администраторов баз данных оставить копию резервной копии где-нибудь, где вы можете ее получить.

Если ваша база данных относительно небольшая, вы можете сгенерировать сценарии создания из студии управления для выполнения на целевом сервере SQL. Они могут стать довольно большими, когда вы пишете данные сценария, но это работает.

Щелкните правой кнопкой мыши базу данных и выберите Задачи и Создать сценарии ...

Выберите свою базу данных и щелкните поле внизу с надписью «Сценарий всех объектов в выбранной базе данных».

Это самая важная часть, внимательно прочитайте варианты, Убедитесь, что вы включили данные (по умолчанию false), триггеры и т. Д. Если у вас сложная база данных, вы можете обнаружить, что при выполнении скрипт выдает ошибку. Для наиболее распространенных схем баз данных это не так.

Я часто использую этот метод с веб-хостами, которые не открывают порты SQL для внешнего мира. Это всего лишь текст, и с ним легко справиться

Удачного копирования.

Бретт