2009-12-17 4 views
1

Простая проблема. Я работаю над приложением 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 упоминается в документации, чтобы они знали, что он есть. Мы просто не хотим беспокоить их техническими проблемами. В большинстве случаев такая установка будет прекрасной.

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

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

ответ

1

Чтобы ответить на ваш вопрос: да, 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% времени, вам будет хорошо установка в существующий экземпляр. Приятно иметь свой собственный экземпляр, но на самом деле это приносит вам немного реальных преимуществ, особенно если вы используете надежный установщик.

+0

Ну, установка SQL Server будет достаточно тихой для моей цели. Но то, что я считаю важным, пытается избежать общения пользователей со своим экземпляром SQL Server, например, переименованием. Таким образом, имея экземпляр с определенным именем продукта, я надеюсь, что пользователи будут держать руки в стороне. Но если им нужен SQL Server для других продуктов, то наличие второго экземпляра может избежать возможных конфликтов. –

1

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

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

1

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

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

Выделение ваших платежей (файлов, ключей реестра, dll и других продуктов) является очень хорошей практикой!

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

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

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

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

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