문제

네트워크 공유에있는 데이터베이스 백업을 로컬 컴퓨터에서 실행중인 SQL Server 인스턴스에 복원하려면 SQL-DMO를 사용합니다.

코드는 내 컴퓨터에서 잘 작동합니다. 그러나 테스트 VM에서는 백업을 로컬 경로에 넣으면 작동합니다. 네트워크에서 시도하면 실패합니다.

VM의 SQL Server가 시스템 사용자로 실행 중이 었으며 네트워크 액세스의 문제라고 생각하는 네트워크 서비스 으로 실행되도록 변경했습니다. 그러나 그것은 문제를 해결하지 못했습니다.

ReadFileList 호출이 빈 결과 집합을 반환하기 때문에이 코드가 실패합니다.

Dim restore As New SQLDMO.Restore With {
  .Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database,
  .ReplaceDatabase = True,
  .Database = dbName,
  .Files = "[" + backupFile + "]",
  .Devices = ""}
Dim fileList = restore.ReadFileList(sqlserver)
Dim dataLogicalName = fileList.GetColumnString(1, 1)
Dim dataPhysicalName = Path.GetFileName(fileList.GetColumnString(1, 2))
Dim logLogicalName = fileList.GetColumnString(2, 1)
Dim logPhysicalName = Path.GetFileName(fileList.GetColumnString(2, 2))
.

[SQL-DMO]이 캐시에는 결과 집합이 없거나 현재 결과 집합이 포함되어 있습니다. 행이 없습니다.

이 코드 전에 File.Exists(backupFile)에 대한 검사를 수행하고 패스합니다. 그러나이 검사 (내 프로그램)를 실행하는 프로세스가 복원 (SQL Server)을 실행하는 것과 동일하지 않으므로

이 동작의 원인이 될 수 있습니까? 서버가 백업 파일을 볼 수 없습니까? 이유를 알아낼 수 있습니다.

도움이 되었습니까?

해결책

START -> RUN-> SERVICES.MSC를 찾아 SQL Server로 스크롤하십시오.로그온 탭의 사용자는 공유에 대한 권한이 없을 가능성이 높습니다.

SQL Server가 도메인 리소스에 액세스 할 필요가있는 경우 서비스가 낮은 권한 도메인 사용자로 로그온 할 수 있으므로 이러한 리소스에 대한 사용 권한을 할당 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top