Symptômes
Dans Microsoft SQL Server 2019, vous essayez de restaurer une base de données volumineuse en exécutant la commande suivante :
USE [master]
RESTAURER LA BASE DE DONNÉES [DatabaseName]
FROM DISK = N'/var/opt/mssql/data/FileName'
WITH FILE = 1, MOVE N’Archive_HR' TO N'/var/opt/mssql/data/FileName', MOVE N’DatabaseName' TO N'/var/opt/mssql/data/FileName', NOUNLOAD, STATS = 5
Cette commande renvoie le message d’erreur suivant :
Début d’exécution de requête au niveau de Line LineNumber
Msg 42019, Niveau 16, État 4, Ligne LineNumber
L’opération de restauration de base de données managée a échoué. Erreur de service interne.
Msg 3013, Niveau 16, État 1, Ligne LineNumber
La base de données de restauration se termine anormalement.
Durée totale d’exécution : 00:01:51.093
État
Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».
Résolution
Ce problème est résolu dans la mise à jour cumulative suivante pour SQL Server :
À propos des mises à jour cumulatives pour SQL Server :
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Solution de contournement
Pour contourner le problème, vous pouvez utiliser l’adresse IP du service Kubernetes créé ci-dessous et vous connecter au SQL Server instance :
Exposez le port 1533 :
kubectl -n <namespaceName> expose pod <podName> --port=1533 --name=<serviceName> --type=NodePort
Vous pouvez ensuite exécuter manuellement les quatre instructions suivantes :
- Restaurer la base de données
- ALTER DATABASE <databaseName> DÉFINIR LA RÉCUPÉRATION COMME TERMINÉE
- SAUVEGARDER LA BASE DE DONNÉES <databaseName> TO DISK='NUL'
- ALTER AVAILABILITY GROUP containedag ADD DATABASE <databaseName>
Références
En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.