Domanda

Sto usando SQL-DMO per ripristinare un backup del database che si trova su una condivisione di rete in un'istanza di SQL Server in esecuzione sul computer locale.

Il codice funziona bene sulla mia macchina. Ma su una VM di prova funziona solo se metto il backup in un percorso locale. Se lo provo sulla rete, fallisce.

Ho scoperto che il server SQL sulla VM era in esecuzione sotto il Sistema utente e lo ha cambiato in esecuzione come Servizio di rete Pensando che questo fosse un problema di accesso alla rete. Ma non ha risolto il problema.

Questo codice fallisce perché la chiamata a ReadFileList restituisce un set di risultati vuoto.

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] Questa cache non contiene set di risultati o il set di risultati correnti non contiene righe.

Prima di questo codice faccio un controllo File.Exists(backupFile) E passa. Tuttavia, sono consapevole che il processo che esegue questo controllo (il mio programma) non è lo stesso che esegue il ripristino (SQL Server), quindi non è qualcosa da fare.

Cosa potrebbe causare questo comportamento? Cosa posso fare per capire perché il server non può vedere il file di backup?

È stato utile?

Soluzione

Guarda in Services (start-> run-> Services.msc) e scorrere verso il basso su SQL Server. L'utente nella scheda di accesso molto probabilmente non ha l'autorizzazione alla condivisione.

Se SQL Server avrà bisogno di accedere alle risorse del dominio, consiglierei di modificare il servizio per accedere come utente di dominio privilegiato a basso contenuto, in modo che possa essere assegnato le autorizzazioni a queste risorse.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top