SQL 장애 조치 클러스터에 사용되는 MSDTC를 다시 빌드하거나 이동하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 294209 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR294209
중요 이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 레지스트리를 백업하는 것이 좋습니다. 문제가 발생하는 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 레지스트리 백업, 복원 및 수정 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
256986 Microsoft Windows 레지스트리 설명
모두 확대 | 모두 축소

이 페이지에서

요약

본 문서에서는 장애 조치 클러스터(Failover Clustered) SQL Server 설치에 사용하기 위해 손상된 Microsoft Distributed Transaction Coordinator(MSDTC) 설치를 다시 빌드하는 방법과 MSDTC 클러스터 리소스를 새 그룹으로 이동하는 방법에 대해 설명합니다.

Microsoft는 클러스터 노드에서 MSDTC를 클러스터 리소스로 실행하는 기능만 지원합니다. 클러스터에서 MSDTC를 독립 실행 모드로 실행하는 것은 권장되지 않으며 지원되지 않습니다. Windows 클러스터에서 MSDTC를 클러스터되지 않은 리소스로 사용하면 문제가 발생할 수 있습니다. 이렇게 구성하면 트랜잭션이 고아(Orphan)가 될 수 있으므로 문제의 소지가 있고, 클러스터 장애 조치(Cluster Failover)가 발생할 때 데이터가 손상될 수 있습니다.

참고 이 절차는 원격 연결을 통하지 않고 사용 중인 컴퓨터에서 직접 수행해야 합니다.

참고 Microsoft Windows Server 2003에는 이 문서의 정보가 적용되지 않습니다. Microsoft Windows Server 2003 기반 시스템의 경우에는 Microsoft 기술 자료의 다음 문서를 참조하십시오.
301600 Windows Server 2003 클러스터에서 MSDTC를 구성하는 방법

추가 정보

SQL Server 장애 조치 클러스터 서버에 MSDTC 다시 빌드

경고 레지스트리 편집기나 다른 방법을 사용하여 레지스트리를 잘못 수정하는 경우 심각한 문제가 발생할 수 있습니다. 이 문제를 해결하려면 운영 체제를 다시 설치해야 할 수도 있습니다. Microsoft는 문제에 대해 해결을 보증하지 않습니다. 레지스트리의 수정에 따른 모든 책임은 사용자에게 있습니다.
  1. 모든 서비스를 수동 모드로 전환합니다. 그러나 다음과 같은 서비스는 전환하지 않습니다(있는 경우).
    • 경고 서비스
    • 클러스터 서비스
    • 컴퓨터 브라우저
    • 분산 파일 시스템
    • 분산 링크 추적 클라이언트
    • 분산 링크 추적 서버
    • DNS 클라이언트
    • 이벤트 로그
    • IPSEC 정책 에이전트
    • 라이센스 로그 서비스
    • 논리 디스크 관리자
    • 메신저
    • Net Logon
    • NTLM 보안 지원 공급자
    • 네트워크 커넥터
    • 플러그 앤 플레이
    • 프로세스 제어
    • RPC(원격 프로시저 호출) 로케이터
    • RPC(원격 프로시저 호출) 서비스
    • 원격 레지스트리 서비스
    • 이동식 저장소
    • 보안 계정 관리자
    • 서버
    • 스풀러
    • TCP/IP NetBIOS Helper
    • 시간 서비스
    • Windows Management Instrumentation Driver Extensions
    • Windows 시간 서비스
    • 워크스테이션
    참고 이 목록에서는 Microsoft Windows NT 4.0 Enterprise Edition과 Microsoft Windows 2000 Advanced Server를 모두 다루므로 설치에 따라 이들 서비스 중 일부가 없을 수도 있습니다.
  2. 제어판을 닫고 서버를 다시 시작합니다. 이렇게 하면 서비스가 로드한 DLL이 메모리에서 제거됩니다. 그렇지 않으면 이러한 서비스가 메모리에 유지되어 시스템 리소스가 잠겨 있게 됩니다.
  3. Windows NT 4.0을 사용 중인 경우 모든 노드에서 msdtc -remove를 실행하고, Windows 2000을 사용 중인 경우에는 모든 노드에서 msdtc -uninstall을 실행합니다.
  4. 레지스트리에서 아래와 같은 키가 있으면 제거합니다.

    HKEY_CLASSES_ROOT\CID

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet0\Services\MSDTC

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet1\Services\MSDTC

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet2\Services\MSDTC

    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet3\Services\MSDTC


    참고 ControlSet의 수는 시스템에 따라 다릅니다.
  5. Z:\MSDTCLog 디렉터리를 제거합니다. 여기서 Z는 현재 이 디렉터리가 있는 클러스터 디스크입니다.

    경고 보존해야 하는 활성 로그와 커밋되지 않은 트랜잭션이 있는 경우 이 단계를 수행하지 마십시오. 절차를 진행하지 말고 SQL Server 지원 전문가에게 추가 지침을 문의하십시오.
  6. Windows NT 4.0을 사용 중인 경우 클러스터의 양쪽 노드에서 모두 다음 파일을 삭제합니다. Windows 2000 설치의 경우 이 단계는 건너뛰어도 됩니다.
    • Adme.dll
    • Dac.exe
    • Dacdll.dll
    • Dtccfg.cpl
    • Dtccm.dll
    • Dtctrace.dll
    • Dtctrace.exe
    • Dtcxatm.dll
    • Dtcuic.dll
    • Dtcuis.dll
    • Dtcutil.dll
    • Enudtc.dll
    • Logmgr.dll
    • Msdtc.exe
    • Msdtc.dll
    • Msdtcprx.dll
    • Mtxclu.dll
    • Msdtctm.dll
    • Svcsrvl.dll
    • Xolehlp.dll
    참고 기본 동작에서는 MSDTC가 유효한 IP 주소 리소스, 네트워크 이름 리소스 및 실제 디스크 리소스가 있는 첫 번째 그룹에 설치됩니다. SQL Server 7.0이 이미 클러스터되었고 이 기준에 맞는 첫 번째 그룹인 경우 MSDTC는 해당 그룹에서 발견되는 첫 번째 리소스를 사용합니다. 이러한 리소스는 SQL Server 리소스나 MSDTC 리소스일 수 있습니다.

    Windows NT 4.0 시스템의 경우 MSDTC 설치 프로그램은 SQL Server 서비스 팩 2 CD의 Dtcsetup.exe입니다. Windows 2000 시스템의 경우에는 %systemroot%\System32 폴더(일반적으로 Winnt\System32 폴더)에 있는 Dtcsetup.exe 파일을 사용해야 합니다.

    경고 Dtcsetup.exe를 실행하기 전에 노드 1에서 클러스터의 모든 리소스 그룹을 제어할 수 있는지 확인하십시오.
  7. 첫 번째 노드에서 Dtcsetup.exe를 실행합니다. 그러면 이들 파일이 %windir%/System32 폴더로 복사됩니다.

    경고 Dtcsetup.exe 프로그램이 완료될 때 나타나는 화면을 자세히 읽어 보십시오. 메시지를 자세히 읽기 전에 확인을 누르지 마십시오. 확인을 누르기 전에 Dtcsetup.exe에서 다른 노드에 대해 같은 단계를 수행해야 할 수도 있습니다.

    참고 Microsoft Windows 2000에서는 첫 번째 노드에 대해 Dtcsetup.exe를 실행한 후 다른 노드에 대해 Dtcsetup.exe를 실행하라는 메시지가 나타날 때만 그렇게 하십시오.
  8. 두 번째 노드에서 Dtcsetup.exe를 실행하라는 메시지가 나타나면 그렇게 하십시오. 첫 번째 노드에서 아무런 메시지 없이 Dtcsetup.exe가 완료된 경우 두 번째 노드에서 계속 실행합니다.

    참고 이벤트 뷰어를 확인하면 각 노드에서 Dtcsetup.exe가 성공적으로 완료되었는지 확인할 수 있습니다.

    경고 클러스터 리소스를 이동하지 마십시오. 리소스를 이동하거나 이 과정에서 장애 조치가 발생하면 전 과정을 다시 시작해야 합니다.
  9. 두 번째 모드 설치에서 확인 단추를 눌러야 첫 번째 노드에서 확인을 누르고 설치에서 필요한 대로 컴퓨터를 다시 시작할 수 있습니다.
  10. Windows 2000 사용자만 해당: Dtcsetup.exe를 실행한 첫 번째 노드에서 명령 프롬프트를 열고 comclust.exe를 입력한 다음 Enter 키를 누릅니다. 첫 번째 노드에서 이 단계가 완료된 후 다른 노드에서 이 단계를 반복합니다.
  11. 클러스터 디스크에 DTCLOG 폴더가 만들어졌는지 확인합니다. 기본적으로 MSDTC 서비스는 로컬 시스템 계정으로 시작합니다. 이 로컬 시스템 계정에는 DTCLOG 폴더에 대한 모든 권한이 있어야 합니다.

SQL Server 6.5 및 SQL Server 7.0 가상 서버에서 MSDTC를 표준 설치로 다시 설정하는 방법

문제

SQL Server의 클러스터를 해제하지 않고 MSDTC를 다시 설치하기 위해 Dtcsetup.exe를 실행했습니다. 여기에서 IP 주소 또는 네트워크 이름이 사용되었습니다. 이 과정에서 MSDTC 클러스터 리소스가 SQL Server 인스턴스와 같은 그룹에 있는 경우 사용자는 MSDTC 클러스터 리소스에 대한 종속성을 제어할 수 없습니다.

MSDTC 리소스가 SQL Server가 설치된 곳 이외의 다른 그룹에 있는 경우에는 이 내용이 적용되지 않습니다.

해결 방법
  1. MSDTC에 대한 클러스터 IP 주소 리소스를 만들고 이름을 "MSDTC IP ADDRESS"로 지정한 다음 고유 IP 주소를 할당합니다. 이 주소는 임의 주소가 아닌 실제 IP 주소여야 합니다. 리소스가 제대로 생성되면 리소스를 온라인 상태로 만듭니다.
  2. 클러스터 네트워크 이름 리소스를 만들고 이름을 "MSDTC Network Name"으로 지정한 다음 MSDTC IP ADDRESS에 종속시킵니다. "CLUSTDTC"와 같은 고유한 이름을 사용하십시오.
  3. 클러스터 관리자에서 MSDTC 클러스터 리소스를 마우스 오른쪽 단추로 누르고 오프라인을 선택합니다.
  4. MSDTC 클러스터 리소스를 마우스 오른쪽 단추로 누른 다음 속성(Windows 2000의 경우 등록 정보)을 누릅니다.
  5. 속성 대화 상자에서 종속성을 누른 다음 수정 단추를 누릅니다.
  6. 새로 만든 MSDTC 리소스(MSDTC 네트워크 이름 및 IP 주소)를 종속성으로 선택하고 추가를 누릅니다.
  7. 종속성으로 나열된 기존 SQL Server 클러스터된 리소스를 모두 선택하고 제거를 누릅니다.
  8. 확인을 누르고 다시 확인을 누릅니다.
  9. MSDTC 리소스를 마우스 오른쪽 단추로 누르고 리소스를 다시 온라인 상태로 만든 다음 장애 조치를 테스트합니다.
  10. Windows 2000 사용자는 모든 시스템 파일이 정상인지 확인하기 위해 Windows 2000 파일 검사기를 사용하여 시스템 파일을 확인하는 것이 좋습니다. 이 작업을 수행하려면 명령 프롬프트에 sfc /scannow를 입력합니다.

    참고 Windows 2000 CD 및 Windows 2000 서비스 팩 CD를 준비하십시오. 불일치가 발견되는 경우 이 CD가 필요합니다.

특정 그룹에서 MSDTC 리소스 이동

기본적으로 MSDTC 리소스가 설치되는 위치는 운영 체제에 따라 다릅니다.

Windows NT 4.0

MSDTC는 유효한 IP 주소 리소스, 네트워크 이름 리소스 및 클러스터 디스크 리소스가 들어 있는 첫 번째 그룹에 클러스터된 MSDTC를 설치합니다. 이 그룹은 일반적으로 SQL Server 그룹입니다.

Windows 2000

참고 SQL Server가 클러스터되면 MSDTC 인스턴스가 하나만 필요합니다. MSDTC 리소스는 자체 고유 그룹에 설치하는 것이 좋습니다. 이 그룹에는 자체 디스크 및 IP 주소가 있어야 합니다. 그 다음으로 좋은 방법은 MSDTC 리소스를 클러스터나 쿼럼 그룹에 배치하는 것입니다. MSDTC 리소스가 이미 설치되었고 SQL Server가 제대로 작동하는 경우에는 배치된 그룹에 관계없이 이 위치를 유지하는 것이 좋습니다. 클러스터가 아직 프로덕션 단계에 있지 않은 경우 다음 단계를 사용하여 MSDTC 리소스를 SQL Server 그룹 이외의 그룹으로 이동하는 것이 좋습니다.

SQL Server 6.5 및 SQL Server 7.0 장애 조치 클러스터에서 MSDTC를 SQL Server 그룹으로 이동해야 하는 경우 "SQL Server 6.5 및 SQL Server 7.0 가상 서버에서 MSDTC를 표준 설치로 다시 설정하는 방법" 절에 있는 방법을 따라야 합니다.

MSDTC 리소스를 이동하는 방법
  1. 클러스터 관리자를 시작합니다. Windows NT 4.0용으로 만들어진 리소스를 모두 삭제합니다. 이러한 리소스는 일반적으로 MSDTC, MSDTC 네트워크 이름 및 MSDTC IP 주소입니다.

    참고 Windows 2000에서는 기본적으로 MSDTC를 클러스터 그룹 리소스에 설치하며, 사용자는 MSDTC 리소스를 오프라인으로 만든 후 리소스를 삭제해야 합니다.
  2. 사용자가 선택한 대상 그룹(예: SQL Server 그룹)에 다음 리소스를 만듭니다.
    1. MSDTC TCP/IP 주소(DTC를 만들려는 드라이브에 종속)
    2. MSDTC 네트워크 이름(MSDTC TCP/IP 주소에 종속)
    3. 분산 트랜잭션 코디네이터 리소스(MSDTC 네트워크 이름에 종속)
  3. 다음 중 하나를 수행합니다.
    • 기존 Dtclog 폴더를 원래 드라이브에서 새 드라이브로 이동합니다.
    • 원본 Dtclog 폴더를 삭제하고 2단계와 같이 MSDTC를 설치하려는 드라이브에 Dtclog라는 폴더를 만듭니다.
  4. 노드 A에서 명령 프롬프트에 comclust를 입력합니다. 작업이 완료되면 노드 B에서 이 단계를 반복합니다.
  5. 노드 A의 명령 프롬프트에서 msdtc -resetlog를 실행합니다.

    경고 msdtc -resetlog 명령은 위험 요소가 많은 작업이므로 이 작업을 수행할 때는 활성 트랜잭션이 없도록 하십시오.
  6. 모든 MSDTC 리소스를 온라인 상태로 만듭니다.
Windows Server 2003

Windows Server 2003 사용자는 Microsoft 기술 자료의 다음 문서를 참조하십시오.
301600 Windows Server 2003 클러스터에서 MSDTC를 구성하는 방법




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 294209 - 마지막 검토: 2006년 2월 17일 금요일 - 수정: 9.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 6.5 Enterprise Edition
  • Microsoft SQL Server 7.0 Enterprise Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
키워드:?
kbinfo KB294209

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com