Always On 가용성 그룹 내에서 가용성 복제본 연결이 해제됨
적용 대상:SQL Server
소개
- 정책 이름: 가용성 복제본 연결 상태
- 문제: 가용성 복제본의 연결이 끊어졌습니다.
- 범주: 위험
- 패싯: 가용성 복제본
설명
이 정책은 가용성 복제본 사이에서의 연결 상태를 확인합니다. 가용성 복제본의 연결 상태가 DISCONNECTED인 경우 정책은 비정상 상태에 있습니다. 그렇지 않으면 정책은 정상적인 상태입니다.
가능한 원인
보조 복제본이 주 복제본에 연결되어 있지 않습니다. 연결 상태가 DISCONNECTED입니다. 이 문제는 다음과 같은 이유로 발생할 수 있습니다:
연결 포트가 다른 애플리케이션과 충돌할 수 있습니다.
암호화 유형 또는 알고리즘이 일치하지 않습니다.
연결 엔드포인트가 삭제되었거나 시작되지 않았습니다.
네트워크/연결 문제가 있거나 방화벽에서 포트가 차단됩니다.
서비스/시작 계정은 도메인 사용자가 아니며 DC 및 원격 노드/포트(예: 5022)에 연결할 수 없습니다
가능한 해결 방법
주 및 보조 복제본(replica) 인스턴스에 관한 데이터베이스 미러링 엔드포인트 구성을 확인해서 일치하지 않는 구성을 업데이트합니다. 또한 포트가 충돌하는 경우 포트 번호를 변경합니다.
이 문제에 대한 해결 방법은 다음과 같습니다:
연결 포트가 다른 애플리케이션과 충돌할 수 있습니다.
다음 명령을 실행하여 포트 문제를 진단합니다:
$server_name = "server_instance" #replace with your SQL Server instance Sqlcmd -S $server_name -E -Q "SELECT type_desc, port FROM sys.tcp_endpoints WHERE type_desc = 'DATABASE_MIRRORING'; "
위의 명령은 아래 명령에서 사용해야 하는 포트 번호를 반환합니다.
$port = "5022" Get-NetTCPConnection -LocalPort $port Get-Process -Id (Get-NetTCPConnection -LocalPort $port).OwningProcess |Select-Object Name, ProductVersion, Path, Id
암호화 유형 또는 알고리즘이 일치하지 않습니다.
두 서버에서 모두 이 명령을 실행하고, 암호화를 비교하고, 둘 다 동일한지 확인합니다:
$server_name = "server_instance" #replace with your SQL Server instance sqlcmd -S $server_name -E -Q "SELECT name, state_desc, encryption_algorithm_desc, protocol_desc, type_desc FROM sys.database_mirroring_endpoints"
연결 엔드포인트가 삭제되었거나 시작되지 않았습니다.
미러링 엔드포인트가 종료되고 시작되면 다음 명령을 실행합니다.
$server_name = "server_instance" #replace with your SQL Server instance Sqlcmd -S $server_name -E -Q "SELECT name, state_desc, encryption_algorithm_desc, protocol_desc, type_desc FROM sys.database_mirroring_endpoints"
엔드포인트가 연결에 응답하지 않거나 실행되고 있지 않은 것으로 의심되는 경우 아래 명령을 실행합니다.
$server_name = "server_instance" #use your SQL Server instance here $server_name = "hadr_endpoint" #replace with your endpoint name Sqlcmd -S $server_name -E -Q "ALTER ENDPOINT hadr_endpoint STATE = stopped" Sqlcmd -S $server_name -E -Q "ALTER ENDPOINT hadr_endpoint STATE = started"
경고
STATE = stopped
를 이용해 명령을 실행하면 엔드포인트가 중지되고 Always On 트래픽 흐름이 일시적으로 중단됩니다.네트워크/연결 문제가 있거나 방화벽에서 포트가 차단됩니다
다음 명령을 사용하여 Node1에서 Node2로 및 Node2에서 Node1로 양방향으로 연결을 테스트합니다:
$computer = $env:computername $port = "5022" # replace with the port from your database_mirroring_endpoints. Test-NetConnection -ComputerName $computer -Port $port
서비스/시작 계정은 도메인 사용자가 아니며 DC 및 원격 노드/포트(예: 5022)에 연결할 수 없습니다
서비스 계정이 원격 노드에 연결할 수 있는지 여부를 테스트하려면 다음 단계를 수행합니다. 이 단계에서는 서비스 계정으로 로그인하지 않았다고 가정합니다:
시작>Windows PowerShell>을 선택하고 아이콘을 마우스 오른쪽 단추로 클릭합니다.
더 보기>다른 사용자로 실행>다른 계정 사용을 선택합니다.
서비스 계정 이름 및 암호를 입력합니다.
Windows PowerShell이 열린 후 다음 명령을 입력하여 서비스 계정으로 로그인했는지 확인합니다:
whoami
그런 다음, 원격 노드에 대한 연결을 테스트할 수 있습니다. 다음은 그 예입니다:
$computer = "remote_node" # Replace with Naode name as per your environment. $port = "5022" # Replace with the port from your database_mirroring_endpoints. Test-NetConnection -ComputerName $computer -Port 5022
참고 항목
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기