Partager via


L’agent ASR ou une autre sauvegarde VSS non composant échoue pour un serveur hébergeant SQL Server 2008 R2

Cet article vous aide à contourner le problème dans lequel une sauvegarde VSS non composant, telle que l’agent ASR, échoue pour un serveur qui héberge SQL Server 2008 R2.

Version du produit d’origine : SQL Server 2008, SQL Server 2008 R2
Numéro de base de connaissances d’origine : 4504103

Symptômes

Considérez le scénario suivant :

  • Vous utilisez Microsoft SQL Server 2008 ou SQL Server 2008 R2.
  • Vous démarrez une sauvegarde VSS non composant d’un volume qui héberge des fichiers SQL Server. Par exemple, vous utilisez Microsoft Azure Site Recovery Agent.

Dans ce cas, vous remarquez que la sauvegarde VSS échoue en raison d’une erreur SQLServerWriter, même si le journal des erreurs SQL Server signale une sauvegarde réussie.

SQLServerWriter signale le résultat suivant dans la sortie « enregistreurs de listes vssadmin » :

Nom de l’enregistreur : « SqlServerWriter »
ID de l’enregistreur : {ID}
ID d’instance de l’enregistreur : {ID}
État : [11] Échec
Dernière erreur : erreur non retenable

Remarque

L’état ou l’erreur précédent est très générique. Par conséquent, il ne fournit pas suffisamment d’informations pour vous permettre d’identifier de manière sélective un scénario donné. Cette situation est importante dans le contexte des sauvegardes non-composants sur SQL Server 2008 ou R2.

En outre, une trace SQLServerWriter signale les éléments suivants :

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqllib\FileName(LineNumber) : FrozenDatabase ::GetNextPartialInfo : VDI ::GetCommand failed with error 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] EXIT {DatabaseName ::GetNextPartialInfo} : hr : 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber) : CSqlWriter ::P ickupDifferentialInfo : Base de données master of server instance CGLONCSQL01 n’a pas pu énumérer les informations de fichier. hr = 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber) : CSqlWriter ::P ickupDifferentialInfo : Throwing HRESULT code 0x8077000e. Code HRESULT précédent = 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\fileName(LineNumber) : CSqlWriter ::P ickupDifferentialInfo : HRESULT EXCEPTION CAUGHT : hr : 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] EXIT {CSqlWriter ::P ickupDifferentialInfo} : hr : 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber) : STDMETHODCALLTYPE CSqlWriter ::OnPostSnapshot : Failed to pick up file information from database servers . hr = 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber) : STDMETHODCALLTYPE CSqlWriter ::OnPostSnapshot : Throwing HRESULT code 0x8077000e. Code HRESULT précédent = 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] sqlwriter.yukon\sqlwriter\FileName(LineNumber) : STDMETHODCALLTYPE CSqlWriter ::OnPostSnapshot : HRESULT EXCEPTION CAUGHT : hr : 0x8077000e

[-,0x00c390:0xbb80:0x0eba42eb] ENTREZ {Snapshot ::~Snapshot} :

Contournement

Il n’existe aucun correctif pour SQL Server 2008 ou SQL Server 2008 R2. Ce problème a été résolu dans la version initiale (RTM) de SQL Server 2012. Étant donné que SQLServerWriter est un composant partagé, la mise à niveau des composants partagés avec une version majeure ultérieure de SQL Server remplace SQL Server 2008 ou SQL Server 2008 R2 SQLServerWriter par une version plus récente qui contient le correctif.

Dans les cas où SQL Server 2008 ou SQL Server 2008 R2 rencontre ce problème, nous vous suggérons d’installer une édition gratuite d’une version récente de SQL Server, telle que SQL Server Express Edition. (Voir le Section Informations supplémentaires sur la version exacte à utiliser, en fonction de la version du système d’exploitation). Pour ce faire, sélectionnez Mettre à niveau les fonctionnalités partagées uniquement dans la page Sélectionner une instance de l’Assistant Installation de SQL Server Express.

Capture d’écran de l’option Mettre à niveau à partir de SQL Server 2005, SQL Server 2008, SQL Server 2008 R2 ou SQL Server 2012 dans la fenêtre Centre d’installation.

Capture d’écran de l’option Mettre à niveau les fonctionnalités partagées uniquement dans la page Sélectionner une instance.

Cette méthode met à niveau tous les composants partagés vers la version de SQL Server utilisée. Cela signifie que le même service d’enregistreur VSS SQL Server qui exécutait précédemment la version 2008 ou 2008 R2 de l’enregistreur exécute désormais la version SQL Server la plus récente de SQL Express. La version la plus récente est rétrocompatible.

Cette méthode vous permet également d’installer des mises à jour cumulatives SQL Server pertinentes pour la version de mise à niveau de SQL Express. Par exemple, vous pouvez installer des mises à jour cumulatives SQL Server 2014 ou SQL Server 2017 pour conserver SQLServerWriter mise à jour en fonction des besoins. Pour plus d’informations, consultez CORRECTIF : La sauvegarde d’une base de données SQL Server à l’aide d’une application de sauvegarde VSS peut échouer après l’installation de SQL Server

Plus d’informations

  • SQL Server 2016 et SQL Server 2017 Express Edition nécessitent Windows Server 2012 ou version ultérieure, ou Windows 8 ou version ultérieure.

  • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 avec SQL Server 2008 ou SQL Server 2008 R2, vous pouvez utiliser SQL Server 2014 Service Pack 3 (SP3) Express Edition pour mettre à niveau les composants partagés : Téléchargez Microsoft SQL Server 2014 SP3 Express.

  • Lorsque vous mettez à niveau les composants partagés, tous les sous-composants sont mis à niveau en plus de SQLServerWriter. Par exemple : Integration Services, Master Data Services (MDS), SQL Server Management Studio (SSMS), SQL Server Data Tools (SSDT) et SQL Server Documentation en ligne sont mis à niveau.

  • Une autre solution de contournement consiste à mettre à niveau les composants partagés et à éviter le problème pour installer une dummy instance SQL Express d’une version majeure ultérieure. Lorsque vous installez une version majeure ultérieure de l’instance SQL Server, elle met également à niveau les composants partagés. Vous pouvez désactiver ou désinstaller ultérieurement l’instance factice. Toutefois, l’approche la plus propre consiste à mettre à niveau les composants partagés.

références

Découvrez la description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft.