Назад | Перейти на главную страницу

Как изменение идентификатора безопасности Windows влияет на SQL Server?

Наши администраторы Windows определили проблему с тем, как они клонируют серверы Windows. По-видимому, некоторые из клонированных серверов имеют одинаковый SID на уровне ОС. Я слышал, что Microsoft не поддерживает серверы с повторяющимися SID. Следовательно, необходимо изменить SID на этих серверах.

Мне любопытно, как это влияет на SQL Server. Любые идеи? Как это влияет на кластерные серверы баз данных?

Оставьте SID в покое. NewSID был удален, потому что Марк Руссинович немного покопался и обнаружил, что все "повторяющиеся SID == плохо!" Линия, которую мы все вбивали в наши черепа за последнее десятилетие или около того, - это просто вздор.

См. Последнюю запись в блоге Марка: Миф о машинном дублировании SID.

Я определенно рекомендую не менять SID, пока вы не прочитаете: Изменение SID машины с помощью NewSID ломает SQL Server (и как это исправить)

По-видимому, некоторые клонированные серверы имеют одинаковый SID на уровне ОС.

Я рискну предположить, что ВСЕ ваши клонированные системы имеют одинаковый SID. GhostWalk может регенерировать SID за вас. Использование sysprep в исходном образе клона может также сэкономить на будущих системах.

Если вы установили SQL Server НЕ МЕНЯЙТЕ SID. Произойдут плохие вещи.

Вы можете использовать sysinternals NewSID: http://technet.microsoft.com/en-us/sysinternals/bb897418.aspx

Измените имя компьютера в SQL:

use master
sp_dropserver '<old computer name>'
GO
sp_addserver '<new computer name>', local
GO

sp_helpserver -- will show you the new computer name

Затем перезапустите службу sql server.

Если ваша база данных выполняет удаленные транзакции с помощью координатора распределенных транзакций Microsoft, имейте в виду, что клонированные машины также имеют тот же идентификатор MSDTC, который не является идентификатором безопасности и не изменяется NewSID.

Вы увидите это в средстве просмотра событий:

Локальный MS DTC обнаружил, что MS DTC на СЕРВЕРЕ имеет тот же уникальный идентификатор, что и локальный MS DTC. Это означает, что два MS DTC не смогут связываться друг с другом. Эта проблема обычно возникает, если одна из систем была клонирована с использованием неподдерживаемых инструментов клонирования. MS DTC требует, чтобы системы были клонированы с помощью поддерживаемых инструментов клонирования, таких как SYSPREP. Запуск «msdtc -uninstall», а затем «msdtc -install» из командной строки решит проблему. Примечание. Запуск «msdtc -uninstall» приведет к потере системой всей информации о конфигурации MS DTC.

Разрешаю так:

msdtc -uninstall

Подождите пару минут, затем

msdtc -install
sc config msdtc start= auto
sc start msdtc

Используйте инструмент, который теперь принадлежит Microsoft NewSID или sysprep, что похоже на переустановку Windows без копирования всех файлов.

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

Единственный поддерживаемый способ клонирования системы - sysprep. Есть несколько причин, по которым не клонировать sql-сервер:

-Он не поддерживается Microsoft CSS.

-SQL не будет работать должным образом, пока он не будет "переименован".

-Если у вас есть службы отчетности, они также будут обработаны.

-Учетные записи системной и сетевой службы получат новые SID и пароли, поэтому, если вы использовали их в качестве учетных записей служб, возникнут некоторые проблемы.

-SQL Server создает несколько хороших локальных групп с форматом. SQLServer2005MSSQLUser $$ MSSQLSERVER. Не поддерживается переименование этих

Чтобы исправить ситуацию, я бы-

Разбейте кластер, перестройте систему, установите SQL, создайте новый кластер, запустите резервную копию на сервере, который не был перестроен, затем остановите его, восстановите эту резервную копию в новом кластере, укажите приложение на новый кластер, перестройте оставшиеся сервер и добавить его в новый кластер

- в качестве альтернативы (возможно, проще) почему бы не создать новый сервер с новым именем (это решит потенциальные проблемы с SID любого типа), затем сломать кластер, установить SQL, присоединить его к кластеру, переключиться на это поле, затем повторить процесс, что Таким образом, нет простоев и необходимости в резервном копировании / восстановлении (хотя я бы посоветовал вам это сделать). Мы используем zznode1, zznode2 и имя кластера, таким образом создать zznode3 и присоединить его к кластеру очень просто, поскольку узел не упоминается в кластере. Надеюсь, это поможет.