Как скопировать базу данных SQL Server - PullRequest
1 голос
/ 16 ноября 2009

Мне было интересно, каковы мои варианты копирования базы данных SQL Server. Если это повторится, я удалю свой вопрос, но не смог найти ответ при использовании поиска.

Это то, что я уже пробовал:

-Запишите базу данных в сценарий sql.
Когда я делаю это, я всегда сталкиваюсь с проблемой, когда приходится вручную что-то настраивать. Например, проблемы с ключами или конфликты параметров сортировки.

Также это кажется очень медленным. Мой последний файл скрипта - 1,5 МБ, но он занимает около 1 часа. Раздражает ошибка на 90%.

Я в основном заставляю его работать с использованием сценариев sql, но мне кажется, что я трачу много времени, пытаясь исправить небольшую ошибку и ожидая выполнения sql.

-Использование функции экспорта в Microsoft SQL Server Management Studio
Если я прав, это не копирует процедуры магазина, представления и / или ключи.

-Дет / Присоединение
Правильно ли думать, что это в основном невозможно на общих хостингах, где вы получаете только одну базу данных? Я столкнулся с проблемами разрешения при попытке этого.

Это обо всем, что я пытался.

Заранее спасибо,

Pickels

Ответы [ 5 ]

5 голосов
/ 16 ноября 2009

Это зависит от того, что позволяет ваш хостинг-провайдер. Некоторые разрешают подключать / восстанавливать, некоторые нет, некоторые разрешают, но взимают плату за инцидент. Даже когда это разрешено, версия базы данных чрезвычайно важна, так как ядро ​​способно обновить базу данных, но не может понизить версию, поэтому ваша версия для разработки может быть не более новой, чем версия поставщика.

Но в конечном итоге это проблема процесса разработки. Вы никогда не должны разрабатывать путем изменения базы данных, а вместо этого создавать сценарии, находящиеся под контролем исходного кода, для применения любых изменений схемы приложения (включая все процедуры и все данные каталога). Приложение должно быть способно обновить схему базы данных из этих сценариев, включая первоначальное развертывание. Я рекомендую использовать версию приложения, определенную в расширенных свойствах, и иметь сценарии для обновления версии схемы приложения: Контроль версий и ваша База данных .

Но теперь, когда кошка вышла из-под контроля, и вы уже сделали плохую практику, вам лучше всего использовать хорошую утилиту для сценариев и сравнения, например SQL Compare .

5 голосов
/ 16 ноября 2009

Я считаю, что самый простой способ - использовать опцию резервного копирования / восстановления. Сделайте резервную копию базы данных, скопируйте файл на новый сервер и затем выполните восстановление. Сначала вам нужно создать пустую базу данных на втором сервере, но вам не нужно определять ни одну из таблиц или что-либо еще. Затем щелкните правой кнопкой мыши новую пустую базу данных и выберите «Восстановить и восстановить из файла, для которого вы создали резервную копию на первом сервере».

Когда вы выполняете восстановление, вам может потребоваться перейти на страницу «Параметры» и задать путь «Восстановить как», если исходные файлы базы данных были сохранены в пути, который не существует на новом сервере, или вы хотите восстановить на другое место. По умолчанию он пытается восстановить базу данных по тому же пути, что и на исходном сервере.

3 голосов
/ 16 ноября 2009

Если вы собираетесь перейти на MS SQL Server 2008, у вас есть опция «Копировать базу данных», которую вы можете выбрать для копирования всех или выбранных баз данных.

Щелкните правой кнопкой мыши базу данных -> Задачи -> Копировать базу данных. Пройдите через мастер и выберите метод «Отсоединить и присоединить» или «Метод управления SQL» (если вы хотите, чтобы база данных оставалась подключенной).

Но учтите, что это работает только в том случае, если вашим целевым SQL является MsSQL 2008.

0 голосов
/ 15 июля 2010

Попробуйте DBSourceTools. http://dbsourcetools.codeplex.com
Его открытый исходный код, специально разработанный для создания сценариев для всей базы данных - таблиц, представлений, процессов на диске. Тогда все, что вам нужно сделать, это создать цель развертывания.
Нажмите на развертывание - и инструмент скопирует вашу базу данных в новую цель.
Используя SQL Bulk Copy для загрузки данных, он может сделать 10000 записей за несколько секунд.

Веселись

0 голосов
/ 16 ноября 2009

Попробуйте полное резервное копирование и восстановление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...