파일 경로가 잘못되어 백업 할 때 SQL Server 2017이 충돌 함


25

데이터베이스를 복원하려고하는데 SQL Server가 계속 충돌했습니다. SSMS에 네트워크 전송 오류가 발생했다는 메시지가 표시됩니다 (연결이 bc에서 중단됨). 로그를 확인한 결과 SQL Server가 예기치 않게 닫히는 것 이상을 발견했습니다. 그런 다음 서비스를 다시 시작해야합니다.

GUI를 실행하려고하는 스크립트로 문제를 좁혔습니다. 문제는 테일 로그 백업을 수행 할 때 백업 파일 경로가 잘못되었다는 것입니다. 그것은해야한다D:\mapbenefits\...

BACKUP LOG [mapbenefits]
TO  DISK = N'D:mapbenefits_LogBackup_2019-02-21_13-58-24.bak'
WITH NOFORMAT, NOINIT,  NAME = N'mapbenefits_LogBackup_2019-02-21_13-58-24',
    NOSKIP, NOREWIND, NOUNLOAD,  NORECOVERY ,  STATS = 5

두 가지 질문이 있습니다.

  1. 이 경로를 어떻게 수정합니까? 서버 설정으로 들어 가려고했는데 백업 경로에 D:슬래시가 없습니다. 슬래시를 추가하면 GUI가 슬래시를 제거합니다. 이것이 SSMS v17.9.1입니다. 선택할 수 D:\mapbenefits\있고 작동하지만 원하는D:\DATABASE\...

  2. 이것이 버그입니까? 경로를 잘못 입력하여 SQL Server가 충돌해야합니까? 파일 경로를 수정하면 문제가 없습니다. 파일 경로를 정리하면 언제든지 재생할 수 있습니다.

버전을 확인하기 위해 쿼리를 실행하면 CU13이 표시되지만 설정으로 들어가면 버전 14.0.1000.169가 표시됩니다.

이것은 버그 인 것 같고 재현 가능하므로 여기에 게시했습니다 : https://feedback.azure.com/forums/908035-sql-server/suggestions/36920542-incorrect-filepath-with-backup-log-command- 원인

답변:


25

나는 이것을 재현 할 수 있었다.

2016 년에 잘못된 경로를 넣으면이 메시지가 나타납니다.

백업 장치 'D : mapbenefits_LogBackup_2019-02-21_13-58-24.bak'을 열 수 없습니다. 운영 체제 오류 3 (시스템이 지정된 경로를 찾을 수 없습니다.)

2017 CU 13 (14.0.3048.4)에서 서비스 충돌이 발생합니다. 최신 핫픽스 (14.0.3049.1)에서는 서비스가 중단되지 않지만 세션이 종료되었다고 이미 언급했습니다.

나는 똑같은 동작이 적용 확인했습니다 RESTORE DATABASE뿐만 아니라 - "D : 백업"와 같은 경로를 통과 (누락 된 백 슬래시) 또는 "D : \ 백업"(추가 콜론)는 SQL Server 인스턴스를 충돌 (감사 마이클 K 캠벨 이것을 키우기 위해).

존재하지 않는 "유효한"경로를 입력하면 2017 년에 올바른 동작 ( "지정된 경로를 찾을 수 없음")이 나타납니다.

CU 13 및 핫픽스 빌드 모두에서 버그입니다. BACKUP또는 매개 변수에 잘못된 매개 변수를 전달해도 RESTORE서비스가 중단 되거나 세션 이 종료되지 않아야 합니다. 피드백 사이트 에서이를보고 할 수 있습니다 .

참고 :이 버그의 서비스 충돌 버전은 SQL Server 2019의 공개 미리보기 버전에서 재현 할 수 있습니다 (CTP2.2-이를 지적한 Denis Rubashkin 덕분에 )


이것을 디버거에서 보면 경로 유효성 검사 코드가 단순히 고장난 것 같습니다. sqlmin!CheckFileStreamReserved제공된 경로에 대한 정상 (그리고 매우 광범위한) 검사가 의미를 이해하지 못하면 재귀 적으로 호출하여 스택 오버플 로가 발생합니다. 스택 오버플로는 빌드 3048에서 서비스를 중단시킵니다. 스택 오버플로를 처리하는 동안 일련의 액세스 위반을 제외하고는 전체 서버를 중지하는 대신 연결을 끊는 대신 3049에서 동일한 작업이 발생합니다.


이 버그에 대한 수정 프로그램은 SQL Server 2017 CU 15에서 릴리스되었습니다.

FIX : 데이터베이스 마스터를 디스크에 백업하려고하면 스택 오버플로로 인해 SQL Server 2017이 충돌 함

이 문제는 SQL Server 2019 CTP 3.0에서도 해결되었습니다.

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