J'utilise SQL-DMO pour restaurer une sauvegarde de base de données située sur un partage réseau dans une instance de SQL Server s'exécutant sur la machine locale.Qu'est-ce qui peut provoquer l'échec de la restauration de la base de données à partir d'un partage réseau?
Le code fonctionne très bien sur ma machine. Mais sur une machine virtuelle de test, cela ne fonctionne que si je place la sauvegarde dans un chemin local. Si je l'essaie sur le réseau, il échoue.
J'ai trouvé sur le serveur SQL sur la machine virtuelle a été exécuté sous le système utilisateur et changé pour fonctionner comme Network Service pensant que cela était un problème d'accès au réseau. Mais cela n'a pas résolu le problème.
Ce code échoue car l'appel à ReadFileList renvoie un jeu de résultats vide.
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] Ce cache ne contient pas de jeux de résultats, ou le jeu de résultat actuel contient aucune ligne.
Avant ce code, je fais une vérification pour File.Exists(backupFile)
et ça passe. Cependant, je suis conscient que le processus qui exécute cette vérification (mon programme) n'est pas le même qui exécute la restauration (SQL Server), donc ce n'est pas quelque chose à faire.
Ce qui pourrait causer ce problème? Que puis-je faire pour comprendre pourquoi le serveur ne peut pas voir le fichier de sauvegarde?
Pour ce qui vaut la peine, je cours SQL Server 2008 R2. –