Моя компания попросила меня разработать план миграции серверов, чтобы реорганизовать их сеть и упростить выполнение ИТ-задач. В настоящее время у них есть три сервера MSSQL. Текущий план состоит в том, чтобы перенести все базы данных на один сервер MSSQL, а затем настроить избыточность. Я все еще работаю над этой частью плана.
Они разрабатывают множество пользовательских приложений для внутреннего использования, которые опрашивают множество данных из этих баз данных. К сожалению, в прошлом у них было много программистов, которые жестко встраивали имена серверов MSSQL в различные приложения и хранимые процедуры. В настоящее время я прорабатываю весь код, чтобы исправить эту проблему.
Вот мой вопрос. Вместо того, чтобы вводить имя нового сервера MSSQL во все различные приложения, как насчет использования DNS A / CNAME для каждой базы данных (например, database1.domain.com, database2.domain.com). Это позволит ИТ-администратору легко изменять физическое расположение БД и обновлять CNAME без участия программиста. На мой взгляд, это упростит администрирование и обеспечит масштабируемость, которую компания ожидает в конце этого года.
В настоящее время мы используем Windows 2003 Server Standard и MS SQL 2005 Standard.
Что вы думаете об этом подходе? Ваша помощь очень ценится.
Альтернативный подход - настроить Псевдоним собственного клиента SQL Server на хосте, где запущено настраиваемое приложение. Это может быть непрактично, если у вас есть ферма серверов с множеством веб-серверов или кучей толстых клиентов (если вы ее не автоматизируете), но ей есть место.
Это также единственный способ заставить приложения указывать на sql-сервер с именем instance, если он не определен в строке подключения.
Это хорошая идеяTM. Вы также можете использовать CNAMES вместе с DNS-суффиксом поиска, чтобы переместить все старые жестко заданные имена серверов на новые серверы MSSQL.
Я делаю нечто подобное. Когда я начинал в своей нынешней компании, они использовали запись A для каждого DSN базы данных: например, db1.domain.com. Вместо этого я создал записи CNAME, чтобы я мог указать каждому DSN базы данных на одну запись A (для SQL-сервера) через CNAME. Теперь, если я меняю сервер, я просто меняю одну запись A, и я снова в деле.
Таким образом, вы захотите использовать записи CNAME, а не записи A. Если вы используете записи A, вам придется удалить и воссоздать каждую из них при смене серверов.
На эту тему в Tech Republic есть хорошая статья.
Фактически, автор описывает стратегию, которую я сейчас реализую, в которой вы устанавливаете отдельный CNAME для каждой базы данных, а не только для сервера.
Это позволяет гибко перемещать отдельную базу данных с одного SQL Server на другой, не касаясь клиентов или кода!
https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/networking/?p=460