sourcecode

SQL 스키마 비교 오류 "Target is unavailable"

codebag 2023. 7. 2. 19:27
반응형

SQL 스키마 비교 오류 "Target is unavailable"

Visual Studio 2015 업데이트 2의 SQL Server 프로젝트를 데이터베이스 SQL Server 2012와 비교하면 방향을 변경할 때 "Target is unavailable" 또는 "Source is unavailable" 오류가 표시됩니다.

몇 달 전만 해도 제대로 작동했습니다.해결 방법이 있습니까?나는 아무것도 찾을 수 없었어요.

연결을 위한 사용자 이름으로 username@servername을 사용하면 Azure 데이터베이스에서 발생할 때 문제를 해결할 수 있다는 것을 알게 되었습니다.저는 역사적으로 이런 갑작스러운 중단 없이 작동했던 연결고리들을 가지고 있었고, 이것이 저에게 그것을 해결해주었습니다.

예를 들어, mylogin 로그인을 사용하고 myserver.database에 연결하는 경우.windows.net , 만약 내가 login@myserver.dll을 대신 사용한다면.windows.net 의 사용자 이름으로 "Source is unavailable" 문제가 발생하지 않습니다.

SQL Server 인증을 사용하지만 암호를 저장하지 않을 때 Visual Studio 2017에서 이 오류가 발생합니다.Visual Studio 15.6.3 및 SQL Server 12.0.5000.0에서 이러한 단계를 테스트했습니다.

오류 수정

이렇게 하면 문제가 해결되지만 다음에 Visual Studio를 다시 시작할 때 문제가 다시 발생합니다.

  1. 도구 -> SQL 서버 -> 새 스키마 비교...로 이동합니다.
  2. 소스 선택 또는 대상 선택
  3. 연결 선택
  4. 최근 연결에서 이 오류를 제공한 모든 연결 찾기
  5. 각 연결에 대해 연결을 마우스 오른쪽 단추로 클릭하고 기록에서 제거를 선택합니다.
  6. Visual Studio 다시 시작

오류가 다시 발생하지 않도록 방지

  1. 위의 오류 수정 완료
  2. 연결 세부 정보를 설정할 때 암호 기억 확인란을 선택합니다.

오류 재현

이 오류를 해결하려면 다음과 같이 재생성했습니다.

  1. 도구 -> SQL 서버 -> 새 스키마 비교...로 이동합니다.
  2. 소스 및 대상 연결 선택
  3. 하나 이상의 연결에 대해 SQL Server 인증을 사용하지만 암호 기억을 선택하지 않음
  4. 비교를 누릅니다.
  5. 오류 없이 작동하는지 확인
  6. Visual Studio 다시 시작
  7. 동일한 연결 세부 정보를 사용하여 1-4단계를 반복합니다.

여기서 모든 것을 시도해 본 결과, 다음과 같은 이점이 있었습니다.

  1. VS 인스턴스를 닫습니다.

  2. 저장된 연결 키 삭제

HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0\ConnectionMruList

  1. VS를 다시 열고 다시 시도합니다.

Azure가 아닌 SQL Server를 직접 사용하고 있었는데 연결 문자열의 고급 속성을 확인한 결과 인증이 "지정되지 않음"으로 설정되어 있고 네트워크 라이브러리가 비어 있는 것을 확인할 수 있었습니다.

제가 그것들을 바꿨더니 다시 작동했습니다.연결할 데이터베이스를 선택할 수 있기 때문에 다소 이상합니다."Source is unavailable" 메시지를 표시하는 스키마를 비교할 수 없습니다.

Sql

나에게 그것은 그것이었습니다.\ IP 있기는에서 IP 에 있는 server name그것을 고친 필드.매우 이상합니다.

들어,▁of에 대신에10.10.10.10는 니다라고 씁니다.10.10.10.10\그리고 그것은 잘 연결됩니다.

참고: Visual Studio 2017을 사용하고 있습니다.

저는 여기에 있는 다른 답변들과 엇갈린 결과를 얻었습니다.저는 다른 개발자가 작성한 비교 저장 파일을 사용하고 있었습니다.이것은 독립 실행형 SQL Server이며 zero 데이터베이스가 아닙니다.비교는 때때로 작동하지만 다른 경우에는 작동하지 않습니다(대상을 지정하는 것은 사용할 수 없는 오류임).제 경우 저장된 비교는 서버 이름만 사용하고 FQDN은 사용하지 않았습니다.FQDN으로 변경했을 때 효과가 있었습니다.문제가 다시 발생할지는 모르겠지만 다른 사람들에게 도움이 될 경우를 대비해 이 정보를 추가하려고 생각했습니다.

비록 이 페이지의 몇몇 해결책들이 때때로 저에게 효과가 있었지만, 항상 그런 것은 아니었습니다.하지만 제가 설명하고 있는 이 방법은 대부분 저에게 효과가 있습니다.

서버 이름을 지정할 때 프로토콜 및 포트를 다음과 같이 지정합니다.

서버 이름: tcp: my-server-name, 1443

제 서버 이름은 Azure BTW입니다.

이전에 저장한 .scmp 파일을 열었을 때 이 오류가 발생했습니다. 이 파일은 처음 생성되었을 때 성공적으로 작동했습니다.

저장된 연결 문자열에 암호가 없어서 문제가 발생했습니다.소스가 통합 인증을 사용했기 때문에 VS는 이에 대해 불평하지 않았습니다.

VS가 캐시된 연결 문자열을 사용했기 때문에 대상 연결을 다시 선택해도 도움이 되지 않았습니다.

저는 문제를 해결하기 위해 다음을 추가했습니다.Password파일의 연결 문자열에 인수를 입력합니다.대상 연결 문자열이 지정된 두 위치(아래에 표시된 XPath)가 있습니다.

  • /SchemaComparison/TargetModelProvider/ConnectionBasedModelProvider/ConnectionString
  • /SchemaComparison/SchemaCompareSettingsService/ConfigurationOptionsElement/PropertyElementName[Name='TargetConnectionString']

이러한 편집 후에 .scmp 파일을 다시 열었고 비교가 성공적으로 실행되었습니다.

2015 Visual Studio Professional 버전을 사용해 본 적이 있으며 SQL 데이터 비교 시 이 문제가 발생했으며 데이터베이스의 IP 주소 대신 호스트 이름을 사용하면 문제가 해결되었습니다.이 문제가 해결되기를 바랍니다.

프로세스가 데이터베이스를 차단하고 있습니다.[스파이더] 킬을 실행한 후 다시 작동했습니다.

사용자에게 스키마 비교 작업 https://msdn.microsoft.com/en-us/library/jj889462(v=vs.103).aspx 을 수행하는 데 필요한 사용 권한이 없을 때도 동일한 문제가 나타납니다.

나는 IP를 통해 SQL 서버를 참조하다가 이 문제를 내게 주었습니다.DNS 이름으로 조회했더니 문제가 해결되었습니다!

왜 그런지 모르겠어요!하지만, 이렇게 작동했습니다 :)

SQL Server Object Explorer 창에서 데이터베이스 이름을 마우스 오른쪽 버튼으로 클릭하고 거기서 Schema Compare(스키마 비교)를 선택하면 작동할 수 있습니다.도구 메뉴에서 열리는 스키마 비교 창을 사용하려고 하면 작동하지 않습니다.

사실 VS 스튜디오 2015에서도 같은 문제가 있었습니다.하지만 데이터베이스가 제 PC에 있었기 때문에 저는 컴퓨터의 실제 이름 대신 localhost를 사용하고 있었습니다.저는 비주얼 스튜디오 자체의 제안대로 컴퓨터 서버를 간신히 선택했고 작동했습니다.

SQL Server 및 Visual Studio 2017을 사용하고 있기 때문에 여기에 제공된 답변 중 어떤 것도 도움이 되지 않았습니다.서버의 IP 주소를 호스트 파일에 추가한 다음 연결 상자에서 해당 호스트 이름을 사용하여 강제로 비교할 수 있었습니다.

저의 경우, 저는 방금 기계를 다시 시작했고, 잘 작동했습니다.

screenshot

내 OS: Windows 11

제 컴퓨터에서 (첨부된) 다음 프로그램을 보고 마우스 오른쪽 버튼을 클릭하여 "SQL server (SQLEXPRESS)"의 복제가 현재 실행 중인 것을 "정지"했습니다.

그리고 나서 다시 열려고 시도했는데, 이전과 같은 오류가 발생했습니다.비록 그렇게 한 지 1분도 안 되었지만, 그 프로그램은 이전처럼 정상적으로 시작되었습니다.

다른 사람들이 같은 문제에 부딪힐 경우 제 "해결책"을 알려드리려고 합니다.

언급URL : https://stackoverflow.com/questions/37463279/sql-schema-comparison-error-target-is-unavailable

반응형