Развертывание SQL Server: установка второго экземпляра? - PullRequest
1 голос
/ 17 декабря 2009

Простая проблема. Я работаю над приложением Delphi 2007 / WIN32, которое теперь использует MS Access в качестве простого хранилища данных. Я должен изменить его для поддержки SQL Server Express, что легко. Эти модификации работают так, что приложение может быть развернуто с использованием SQL Server или MS Access. (Независимо от того, что предпочитает пользователь.) Я рассматривал возможность развертывания всего приложения вместе с SQL Compact, но это не практично. Использование SQL Server Express 2008 вместо 2005 является вариантом, но также имеет несколько неприятных побочных эффектов, которые мы пока не хотим устранять.

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

Но что, если у пользователя уже есть установка SQL Server (2005), которая используется для чего-то еще? Лично я предпочел бы просто установить второй экземпляр SQL Server в своей системе, чтобы он не конфликтовал с другой установкой. (Таким образом, если они удаляют другое приложение, экземпляр SQL просто останется установленным.)

Хотя SQL Server 2005 и 2008 можно установить в одной системе, просто используя два разных имени для экземпляра, мне интересно, возможно ли также установить SQL Server 2005 дважды в одной системе, чтобы получить два экземпляра. А если можно, то как?

Ответы [ 3 ]

1 голос
/ 12 января 2010

Вы можете установить SQL Server Express в режиме без вывода сообщений с помощью переключателя командной строки / Q или с помощью переключателя командной строки / QS, чтобы увидеть ход установки без ввода пользователя. Вы можете установить именованный экземпляр в системе, в которой уже установлен SQL Server.

http://msdn.microsoft.com/en-us/library/ms144259.aspx

1 голос
/ 17 марта 2010

Существует ряд причин, по которым очень полезно иметь собственный экземпляр SQL Server.

  • Вы можете сами решить, какой тип аутентификации вы используете (аутентификация SQL или аутентификация Windows). Хотя проверка подлинности Windows рекомендуется, существует сценарий, когда это просто невозможно. А включение аутентификации SQL для экземпляра, в котором другие продукты используют этот же экземпляр, представляет угрозу безопасности.
  • Вы можете смело предполагать, что ваш продукт является единственным пользователем установленного экземпляра. Таким образом, при установке и удалении экземпляра вы знаете версию и базы данных, используемые этим экземпляром. Дополнительного обнаружения не требуется, если разные версии вашего продукта используют одну и ту же конфигурацию и версию SQL.

Изоляция ваших взносов (файлов, ключей реестра, DLL и других продуктов) - очень хорошая практика!

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

При этом SQL Server Express можно установить в трех разных режимах взаимодействия:

  • Полный пользовательский интерфейс, включая принятие лицензионного соглашения SQL
  • Тихий, но с подробным пользовательским интерфейсом
  • Тихий, без какого-либо прогресса пользовательского интерфейса (и подавленных ошибок!)

Подробные инструкции по установке можно найти на http://msdn.microsoft.com/en-us/library/ms144259(SQL.90).aspx

1 голос
/ 17 декабря 2009

Чтобы ответить на ваш вопрос: да, SQL2005 / SQL2008 и SQLExpress2005 / 2008 могут жить счастливо вместе. Имя экземпляра по умолчанию для установки SQLExpress: [имя машины] \ SQLEXPRESS. Но, сказав это, вы должны рассмотреть возможность предоставления вашему клиенту возможности использовать экземпляр sql, который у него уже есть, и устанавливать новый экземпляр, только если он захочет.

Я не знаю, можно ли установить SQLExpress в автоматическом режиме (скорее всего, это возможно, если вы укажете нужные свойства в командной строке при установке). Но мы представили его многим клиентам, и у них очень мало проблем с его обычной установкой.

Редактировать: Я добавил это как редактирование, потому что комментарий не позволяет достаточно.

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

  • удаление продукта должно никогда автоматически удалять экземпляр SQL, даже если этот экземпляр SQL был помещен туда при установке этого продукта. Конечно, базу данных можно уничтожить, но удаление экземпляра SQL должно выполняться вручную, поскольку это серверный продукт, который может использоваться многими другими продуктами
  • Вы можете значительно облегчить свою задачу, используя приличный установочный продукт. Например, мы используем InstallShield. В него встроено диалоговое окно просмотра SQL (встроенная функция InstallShield), которое пользователь может использовать для выбора экземпляра SQL и базы данных, которые он хочет использовать для нашего продукта. Детали, которые вводит пользователь, затем вставляются в файл web.config с помощью задачи изменения файла XML (также функциональность, встроенная в InstallShield). Используя подобные диалоги, вы устраняете много потенциальных ошибок пользователя.
  • если уже существует экземпляр sql, используйте его. Единственная зависимость, которую ваша база данных должна иметь от экземпляра , заключается в том, что это правильная версия (т. Е. SQL2005, и 2008 год подходит для базы данных 2005 года). Единственный раз, когда вы должны требовать свой собственный экземпляр, это если вы обрабатываете / храните достаточно данных, которые требуются для вашего собственного сервера, или если вы зависите от недокументированных функций. Если существующий экземпляр уже находится под большой нагрузкой, то настаивать на новом экземпляре на другом сервере - это хорошо, но тогда вы также избежали этой параллельной ситуации. В качестве альтернативы вы можете просто установить существующий экземпляр и заставить клиента принять решение об обновлении оборудования.

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

...