Что может привести к сбою восстановления базы данных из сетевой папки - PullRequest
0 голосов
/ 28 марта 2011

Я использую SQL-DMO для восстановления резервной копии базы данных, расположенной на сетевом ресурсе, в экземпляр SQL Server, работающий на локальном компьютере.

Код отлично работает на моей машине. Но на тестовой ВМ это работает, только если я помещаю резервную копию в локальный путь. Если я попробую его в сети, произойдет сбой.

Я обнаружил, что SQL-сервер на виртуальной машине работает под пользователем System и изменил его на Network Service , думая, что это проблема сетевого доступа. Но это не решило проблему.

Этот код не выполняется, потому что вызов 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), поэтому это не то, что нужно.

Что может вызвать такое поведение? Что я могу сделать, чтобы выяснить, почему сервер не видит файл резервной копии?

1 Ответ

1 голос
/ 28 марта 2011

Найдите службы (Пуск-> Выполнить-> services.msc) и прокрутите вниз до SQL Server.Пользователь на вкладке входа в систему, скорее всего, не имеет прав доступа к общему ресурсу.

Если Sql Server понадобится доступ к ресурсам домена, я бы рекомендовал изменить службу для входа в систему как пользователь домена с низким уровнем привилегий,так что ему могут быть назначены разрешения для этих ресурсов.

...