2013-09-09 4 views
2

В моем окне разработки я всегда запускаю последнюю версию SQL Server. Я часто разворачиваю базы данных из своего dev-бокса в живую/промежуточную область для просмотра или тестирования. Я делал это много раз, и это всегда был болезненный процесс, но я понимаю, что мне нужно найти более простой, надежный и последовательный способ выполнения этой основной операции.Каков наилучший вариант нейтрального метода развертывания базы данных SQL Server?

Я обычно использую WebMatrix исключительно для развертывания, и он работает нормально, но у меня возникли проблемы с его работой на моем сервере по какой-то причине. Следовательно, я ищу альтернативное решение.

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

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

Метод резервного копирования и восстановления также выходит из строя из-за некоторых странных несовместимостей между SQL Server 2008 и 2012. SQL Server 2008 Management Studio генерирует исключения во время восстановления базы данных 2012 года. Странно, что это происходит, даже если я установил совместимость базы данных с версией 2008.

Я не пробовал метод отсоединения, копирования и повторного прикрепления файлов, но я не беспокоил попытку, так как он, вероятно, не сработает те же причины, что и метод резервного копирования и восстановления.

Есть ли другие альтернативы? Кроме того, почему это так невероятно сложно для задачи, которая так распространена и важна, особенно в этот день в возрасте 2013 года? Получите настоящую Microsoft!

+0

Вам следует попытаться снизить уровень совместимости базы данных до 100, а затем использовать метод detach/copy/attach. – OzrenTkalcecKrznaric

+1

Уровень совместимости ограничивает ** функции **, которые находятся в вашем распоряжении в новой версии; но он *** НЕ *** позволяет восстановить базу данных 2012 года на сервере 2008 года. Это *** НЕ МОЖЕТ быть сделано *** - файл слишком отличается по своей внутренней структуре. –

ответ

0

Пункты ниже в сторону, вы рассматривали проекты базы данных в VS2012? они позволяют вам скрипт от таблиц, зр х, триггера, пользователи и т.д. Вы хотите, генерировать SQL CMD скриптов, вносить изменения и схему сравнения и контроль версий вашего код базы данных, я бы, конечно, рекомендую это

«Создание Файл дампа SQL, вероятно, будет работать, но это не приемлемое решение . База данных содержит изображения и легко превышает 2 гигабайт данных, которые будут навсегда ».

Почему это проблема? где вы переносите файл из и из какого соединения?

«резервное копирование и метод восстановление также не из-за какую-то странные несовместимости между SQL 2008 и 2012 SQL 2008 Management Студия генерирует исключения во время процесса восстановления базы данных в 2012 . Странно, что это происходит, даже хотя я установил совместимость базы данных до версии 2008"

Это не должно быть проблемой, если файл будет создан в 2008 году до восстановления. Если вы создадите новый экземпляр в своем экземпляре 2008 года, затем сделайте резервную копию и верните его в экземпляр 2012 года с совместимостью 2008 года, тогда вы сможете использовать его там, скопировать его из экземпляра 2012 и снова восстановить до 2008 года после этого.

+0

Уровень совместимости ограничивает ** функции **, которые находятся в вашем распоряжении в новой версии; но он *** НЕ *** позволяет восстановить базу данных 2012 года на сервере 2008 года. Это *** НЕ МОЖЕТ быть сделано *** - файл слишком отличается по своей внутренней структуре. –

+0

Извините, моя ошибка, я думал о создании в 2008 году, восстанавливаясь на 2012 год в режиме 2008 года, и круглый отключение этого файла. – dougajmcdonald

+1

@dougajmcdonald - нет, как только база данных будет восстановлена ​​на экземпляр 2012 года, это структурно файл базы данных 2012 года. Ничто после этого момента не совместит его снова с экземпляром 2008 года. –

2

Мы изменили наш метод развертывания и перемещения баз данных между серверами, экземплярами и версиями, приняв инструменты из RedGate. Они дороги, но стоит того ИМХО.

1

Моя команда создает скрипты для ~ всего. Создание базы данных, изменение, вставки и т. Д. И мы пишем все сценарии, которые проверяют наличие вещей, прежде чем пытаться их создать. Ака, мы можем запускать скрипты снова и снова и получать те же результаты.

И мы используем SqlCmd.exe для развертывания в разных средах.

EDIT

См:

http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-stored-procedures-and-the-like.aspx

и

http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx

=============

Если это «слишком много», то я согласен с другим плакатом, RedGate - ваш друг.

Смежные вопросы