Windows SID 변경은 SQL Server에 어떤 영향을 줍니까?


11

Windows 관리자는 Windows 서버를 복제하는 방식에 문제가 있음을 확인했습니다. 분명히 복제 된 서버 중 일부는 OS 수준에서 동일한 SID로 끝납니다. Microsoft가 SID가 중복 된 서버를 지원하지 않는다고 들었습니다. 따라서 이러한 서버의 SID를 변경해야합니다.

이것이 SQL Server에 어떤 영향을 미치는지 궁금합니다. 어떤 아이디어? 클러스터 된 데이터베이스 서버에 어떤 영향을 줍니까?


창문을 복제하지 않는 이유가 있지만 SID는 그 중 하나가 아닙니다
Jim B

답변:


9

SID를 그대로 두십시오. Mark Russinovich가 약간의 발굴 작업을 수행하여 전체 "중복 SID == 나쁨!"으로 인해 NewSID가 폐기되었습니다. 지난 10 년 동안 우리 모두가 우리의 두개골에 박혀 있었기 때문에 말도 안되는 일입니다.

Mark의 최신 블로그 항목 인 Machine SID Duplication Myth를 참조하십시오 .


6

다음을 읽을 때까지 SID를 변경하지 않는 것이 좋습니다. NewSID로 시스템 SID를 변경하면 SQL Server가 중단됨 (및 해결 방법)

분명히 복제 된 서버 중 일부는 OS 수준에서 동일한 SID로 끝납니다.

복제 된 모든 시스템에 동일한 SID가 있다고 생각할 위험이 있습니다. GhostWalk는 SID를 재생성 할 수 있습니다. 초기 복제 이미지에서 sysprep를 사용하면 향후 시스템에서도 절약 할 수 있습니다.

SQL Server를 설치 한 경우 SID를 변경하지 마십시오. 나쁜 일이 일어날 것입니다.


SysPrep의 경우 +1이며, 이러한 시나리오에서 지원되는 솔루션은 AFAIK입니다.
Michael Stum

1
sql이 설치된 경우 sysprep를 포함하여 sid 변경이 지원되지 않는다는 언급은 없습니다.
Jim B

서버가 실행 중이고 설치가 완료 되었다면, 당신의 귀여움을 말할 것입니다. 서버를 복제하자마자 SID를 변경해야합니다. 동일한 SID를 가진 두 서버를 도메인에 가입시킬 수 있다는 사실에 놀랐습니다!
Nick Kavadias 2016 년

2

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 서비스를 다시 시작하십시오.


SQL Server의 수동 이름 변경을 지적 해 주셔서 감사합니다. 그것은 종종 SQL 클론에서 잊어 버렸습니다 (sysprep으로 광산을 복제합니다)
Precipitous

2

데이터베이스가 Microsoft Distributed Transaction Coordinator를 사용하여 원격 트랜잭션을 수행하는 경우 복제 된 시스템에도 동일한 MSDTC ID가 있으며 이는 SID가 아니며 NewSID에 의해 변경되지 않습니다.

이벤트 뷰어에서 이것을 볼 수 있습니다 :

로컬 MS DTC가 SERVER의 MS DTC가 로컬 MS DTC와 동일한 고유 ID를 가지고 있음을 감지했습니다. 이것은 두 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

1
이상한 이유로 "sc config"에는 "start ="와 "auto"사이에 공백이 필요합니다 (예 : "sc config msdtc start = auto").
ThatGraemeGuy

고마워-나는 그 공간이 있었지만 오타라고 생각했을 때 편집했습니다 :)
crb

2

현재 Microsoft 소유 도구 인 NewSID 또는 sysprep를 사용하십시오.이 도구 는 모든 파일 복사없이 창을 다시 설치하는 것과 같습니다.

동일한 SID를 사용하여 두 대의 컴퓨터를 동일한 도메인에 가입시킬 수 있다고 생각하지 않으므로 서버가 도메인에 있어야하기 때문에 클러스터 된 SQL Server가 기회를 얻지 못할 것이라고 말하고 싶습니다.


1

시스템을 복제하는 유일한 지원 방법은 sysprep입니다. SQL 서버를 복제하지 않는 데는 여러 가지 이유가 있습니다.

-Microsoft CSS는 지원하지 않습니다.

-SQL이 "이름 변경"될 때까지 제대로 작동하지 않습니다.

-당신이보고 서비스가있는 경우 호스도 될 것입니다.

-시스템 및 네트워크 서비스 계정에는 새로운 SID 및 암호가 부여되므로이 계정을 서비스 계정으로 사용하면 약간의 어려움이 있습니다.

-SQL Server는 형식이 좋은 몇 개의 로컬 그룹을 만듭니다. SQLServer2005MSSQLUser $$ MSSQLSERVER. 이름을 바꿀 수는 없습니다.

상황을 바로 잡기 위해

클러스터 해제, 시스템 재구성, SQL 설치, 새 클러스터 생성, 다시 빌드되지 않은 서버에서 백업 실행-중지, 백업을 새 클러스터로 복원, 애플리케이션을 새 클러스터로 가리키고 나머지를 다시 빌드 서버 및 새 클러스터에 추가

-대안 적으로 (아마도 쉽게) 새로운 이름으로 새 서버를 구축하지 않는 이유는 (이는 모든 유형의 SID 관련 잠재적 문제를 해결할 것입니다) 클러스터 설치 SQL을 클러스터에 결합하고 해당 상자로 장애 조치 한 다음 프로세스를 반복하십시오. 다운 타임이없고 백업 / 복원이 필요하지 않습니다 (어쨌든 제안했지만). zznode1, zznode2 및 클러스터 이름을 사용하여 zznode3을 작성하고 클러스터에 결합하는 것은 클러스터에있을 때 노드가 참조되지 않으므로 간단합니다. 희망이 도움이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.