Fehler beim Upgrade des Clusterknotens auf SQL Server 2012

Dieser Artikel enthält eine Lösung für das Problem, das auftritt, wenn Sie versuchen, eine SQL Server 2008- oder SQL Server 2008 R2-Instanz auf SQL Server 2012 auf einen Failovercluster zu aktualisieren.

Ursprüngliche Produktversion: SQL Server 2012
Ursprüngliche KB-Nummer: 2782511

Symptome

Betrachten Sie das folgende Szenario:

  • Sie verfügen über einen Microsoft SQL Server-Failovercluster mit zwei Knoten, der auf einem Windows Server 2012-Failovercluster ausgeführt wird. Der primäre Knoten ist z. B. Knoten A, und der passive Knoten ist Knoten B.

    Hinweis

    Die Instanz von SQL Server ist entweder eine SQL Server 2008- oder SQL Server 2008 R2-Instanz.

  • Sie versuchen, den primären Knoten (Knoten A) mithilfe des Prozesses, in dem dokumentiert ist, auf SQL Server 2012 zu aktualisieren: Aktualisieren einer Failoverclusterinstanz.

In diesem Szenario wird eine Fehlermeldung etwa folgenden Inhalts angezeigt:

Die allgemeinen Eigenschaften für die Ressource 'SQL-Netzwerkname (SQL Name)' konnten nicht gespeichert werden. Fehler: Fehler beim Aufrufen von Clustercode von einem Anbieter. Ausnahmemeldung: Mindestens ein Eigenschaftswert für diese Ressource steht in Konflikt mit einem oder mehreren Eigenschaftswerten, die den abhängigen Ressourcen zugeordnet sind.

Hinweis

  • DER SQL-Name ist ein Platzhalter für den SQL Server-Netzwerknamen.
  • Obwohl dieses Problem zu einem Upgradefehler auf Knoten A führt, schlägt die SQL Server-Ressourcengruppe erfolgreich zum aktualisierten Knoten B fehl. Da der Failovervorgang weniger als eine Minute dauert, sind alle Ressourcen online, ohne die Clientkonnektivität spürbar zu stören. Um den Upgradeprozess auf Knoten A abzuschließen, müssen Sie jedoch zusätzliche Schritte ausführen, die im Abschnitt "Lösung " erwähnt werden.

Ursache

Dieses Problem tritt aufgrund von Änderungen in Windows Server 2012-Failoverclustering auf.

Beschluss

In diesem Abschnitt werden die folgenden Aktionen behandelt:

  • Schließen Sie das Upgrade auf Knoten A ab.
  • Verhindern, dass sich das Problem auf neue Upgrades auswirkt.

Abschließen des Upgrades auf Knoten A

Bevor Sie mit diesem Vorgang beginnen, beachten Sie Folgendes:

  • Sie können Knoten A nicht mithilfe des Vorgangs "Knoten entfernen" entfernen. Dieser Vorgang löscht die SQL Server-Failoverclusterinstanz. Daher können Sie sie nicht reparieren.

  • Sie können die SQL Server-Failoverclusterinstanz nicht deinstallieren, indem Sie ein Programm deinstallieren. Dieser Vorgang funktioniert nicht.

  • Sie können keine falsche Edition der Setupmedien (z. B. SQL Server 2008 oder SQL Server 2008 R2) verwenden, um den Vorgang "Knoten entfernen" auszuführen. Dieser Vorgang beschädigt den Zustand des Computers.

Um das Upgrade für Knoten A abzuschließen, gibt es zwei Phasen:

  • Phase 1: Bereinigen Sie nach dem fehlgeschlagenen Upgradeversuch auf Knoten A, um den Zustand vor dem Upgrade wiederherzustellen.

    1. Schließen Sie das Setupprogramm und das Fehlerdialogfeld, wenn sie noch nicht geschlossen sind, und lassen Sie das Upgradeprogramm abschließen und melden, dass der Upgradevorgang fehlgeschlagen ist.

    2. Entfernen Sie Knoten A aus der Liste der möglichen Besitzer, um zu verhindern, dass versehentlich ein Fehler auftritt. Gehen Sie wie folgt vor, um die Liste der möglichen Besitzer zu ändern:

      1. Starten Sie das Failovercluster-Manager-Snap-In auf einem beliebigen Failoverknoten.
      2. Wählen Sie unter "Rollen" die SQL Server-Failoverclusterinstanz im oberen Bereich aus.
      3. Klicken Sie im unteren Bereich auf "Ressourcen ", klicken Sie mit der rechten Maustaste auf die Servernamenressource , und wählen Sie dann "Eigenschaften" aus.
      4. Klicken Sie im Dialogfeld "Eigenschaften" auf "Erweiterte Richtlinien".
      5. Aktivieren oder deaktivieren Sie die erforderlichen Kontrollkästchen für jeden Knoten, um die Knoten hinzuzufügen oder zu entfernen.
    3. Öffnen Sie die dateisummary.txt am folgenden Speicherort %Program Dateien%\Microsoft SQL Server\110\Setup Bootstrap\Log.

      Suchen Sie den folgenden Befehl zur Problembehandlung in der dateisummary.txt : setup /q /action=uninstall /instanceid=FOOINST /features=AS

    4. Öffnen Sie eine Eingabeaufforderung als Administrator, und verwenden Sie den Problembehandlungsbefehl zusammen mit dem Pfad der SQL Server 2012-Setupdatei (setup.exe). Sie verwenden z. B. einen Befehl, der wie folgt aussieht:

      <SQL Server 2012 media path>\setup.exe /q /action=uninstall /instanceid=FOOINST /features=AS

      Hinweis

      • Der SQL Server 2012-Medienpfad ist ein Platzhalter für den Pfad der SQL Server 2012-Medien.
      • Dieser Befehl wird im Hintergrund ausgeführt und wird in der Regel innerhalb von fünf Minuten abgeschlossen.
      • Sie können die Befehlszeilenargumente aus der summary.txt Datei kopieren und einfügen, um Eingabefehler zu verhindern. Das AS-Feature muss jedoch als Parameter übergeben werden, der exakt so wie in der summary.txt-Datei angegeben ist. Falsche Eingaben dieses Befehls (insbesondere der instanceid Parameter) führen dazu, dass der Bereinigungsvorgang fehlschlägt und der Computer möglicherweise beschädigt bleibt.
      • Überprüfen Sie die summary.txt Datei, um zu bestätigen, dass der Bereinigungsvorgang erfolgreich abgeschlossen wurde.
  • Phase 2: Upgradeknoten A auf SQL Server 2012

    1. Starten Sie das SQL Server 2012-Setupmedium im Benutzeroberflächenmodus.

    2. Wählen Sie auf der Startseite die Option "Upgrade" im Menü "Installation " aus, und wechseln Sie dann zum Dialogfeld " Instanzkonfiguration ".

    3. Wählen Sie den richtigen Instanznamen aus, und geben Sie dann den richtigen Wert in das Feld "Instanz-ID " ein.

      Hinweis

      • Das Beispiel in Phase 1 wird fortgesetzt, der Instanz-ID-Wert ist FOOINST.
      • Das Setupprogramm bestimmt nicht automatisch die Instanz-ID. Daher können Sie die standardvorgefüllte Instanz-ID nicht im Feld "Instanz-ID " verwenden.
      • Sie können die summary.txt Datei überprüfen, um die richtige Instanz-ID zu finden.
    4. Führen Sie den Upgradevorgang aus.

    5. Nachdem Knoten A erfolgreich aktualisiert wurde, fügen Sie ihn wieder zur Liste der möglichen Besitzer in der Servernamenressource der SQL Server-Failoverclusterinstanz hinzu.

Verhindern, dass sich das Problem auf neue Upgrades auswirkt

Um dieses Problem zu verhindern, verwenden Sie eine der folgenden Optionen:

  • Option 1:

    1. Führen Sie zuerst ein Upgrade von nicht mehr als der Hälfte der passiven Knoten durch, um das Überschreiten des Mehrheitsschwellenwerts zu vermeiden.

      Hinweis

      • Wenn Sie über eine gerade Anzahl von Clusterknoten verfügen, aktualisieren Sie nicht mehr als die Hälfte der passiven Knoten.
      • Wenn Sie eine ungerade Anzahl von Clusterknoten haben, stellen Sie sicher, dass Sie weniger als die Hälfte der Knoten im Cluster aktualisieren. Wenn der Großteil der Knoten im Cluster aktualisiert wird, tritt dieses Problem auf, wenn die Clusterressourcengruppe fehlschlägt.
    2. Fügen Sie die aktualisierten passiven Knoten manuell wieder zur Liste der möglichen Besitzer für die Servernamenressource hinzu.

    3. Entfernen Sie die nicht aktualisierten Knoten aus der Liste der möglichen Besitzer.

    4. Führen Sie manuell einen Failover der SQL Server-Clustergruppe auf einen der aktualisierten Knoten durch.

    5. Aktualisieren Sie die verbleibenden nicht aktualisierten Knoten.

    6. Wenn alle nicht aktualisierten Knoten aktualisiert werden, fügen Sie sie manuell wieder zur Liste der möglichen Besitzer in der Servernamenressource hinzu.

  • Option 2:

    Dieses Problem wurde in SQL Server 2012 Service Pack 1 (SP1) behoben. Sie können den Upgradeprozess auf jedem Clusterknoten vornehmen, indem Sie Setupprogramm-Binärdateien aus dem Service Pack verwenden. Dazu gibt es zwei Methoden.

    • Methode A

      1. Laden Sie SQL Server 2012 SP1 auf eine lokale Festplatte (z. B. auf c:\sp1) oder auf eine Netzwerkfreigabe (z. B. ) herunter, \\share name\sp1auf die von allen Knoten zugegriffen werden kann.

      2. Starten Sie eine Eingabeaufforderung als Administrator, und führen Sie einen der folgenden Befehle aus:

        • <Download path>\setup.exe /action=upgrade /updatesource=c:\sp1
        • <Download path>\setup.exe /action=upgrade /updatesource=\\share name\sp1
      3. Führen Sie alle Schritte im Setupprogramm aus.

        Hinweis

        Sie können bestätigen, ob das Upgrade SQL Server 2012 SP1 Setup-Binärdateien verwendet, indem Sie die detail.log Datei am folgenden Speicherort überprüfen: %Program Files%\Microsoft SQL Server\110\Setup Bootstrap\Log\<Time stamped folder>

        Vergewissern Sie sich, dass die Versionsinformationen, die sich am Anfang der Protokolldatei befinden, sehen, dass die SQL Server 2012-Version höher als 11.0.2100.60 ist. Die Protokolldatei kann z. B. Folgendes enthalten:

    • Methode B

      1. Laden Sie SQL Server 2012 SP1 auf eine lokale Festplatte (z. B. auf c:\sp1) oder auf eine Netzwerkfreigabe (z. B. ) herunter, \\share name\sp1auf die von allen Knoten zugegriffen werden kann.

      2. Starten Sie eine Eingabeaufforderung als Administrator, und führen Sie den folgenden Befehl aus:

        Download path\SQL Server 2012 Service Pack 1 Package Name.exe/Q
        

        Mit diesem Befehl wird der Knoten vorab mit SQL Server 2012 SP1-Setup-Binärdateien gepatcht.

        Hinweis

        Sie können die SqlSupport.msi Datei nicht selbst installieren, da der SQL Server 2012-Setupvorgang fehlschlägt, und es wird ein Fehler angezeigt, wenn der MSVCR100.dll nicht angezeigt wird. Verwenden Sie den/Q Parameter, um diesen Fehler zu vermeiden. Dieser Parameter installiert sowohl die Sqlsupport.msi-Datei als auch die Visual C++-Laufzeitkomponenten.

      3. Führen Sie alle Schritte im Setupprogramm aus.

Mehr Informationen

Herunterladen von Service Pack 1 für SQL Server 2012

Gilt für:

  • SQL Server 2012 Entwickler
  • SQL Server 2012 Enterprise
  • SQL Server 2012 Express
  • SQL Server 2012 Standard
  • SQL Server 2012 Web
  • SQL Server 2012 Enterprise Core