Fehler beim Versuch, den Clusterknoten auf SQL Server 2012 zu aktualisieren

Dieser Artikel bietet eine Lösung für das Problem, das auftritt, wenn Sie versuchen, ein SQL Server 2008 oder SQL Server 2008 R2-instance auf SQL Server 2012 in einem Failovercluster zu aktualisieren.

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

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • 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

    Der instance von SQL Server ist entweder ein SQL Server 2008 oder SQL Server 2008 R2 instance.

  • Sie versuchen, den primären Knoten (Knoten A) auf SQL Server 2012 zu aktualisieren, indem Sie den Prozess verwenden, der unter Aktualisieren eines Failoverclusters instance dokumentiert ist.

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: Ein oder mehrere Eigenschaftswerte für diese Ressource stehen in Konflikt mit einem oder mehreren Eigenschaftswerten, die ihren abhängigen Ressourcen zugeordnet sind.

Hinweis

  • SQL-Name ist ein Platzhalter für den SQL Server Netzwerknamen.
  • Obwohl dieses Problem einen Upgradefehler auf Knoten A verursacht, führt die SQL Server Ressourcengruppe erfolgreich ein Failover auf den aktualisierten Knoten B durch. Da der Failovervorgang weniger als eine Minute dauert, sind alle Ressourcen online, ohne die Clientkonnektivität spürbar zu beeinträchtigen. Um den Upgradevorgang auf Knoten A abzuschließen, müssen Sie jedoch zusätzliche Schritte ausführen, die im Abschnitt Lösung beschrieben werden.

Ursache

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

Lösung

In diesem Abschnitt werden die folgenden Aktionen behandelt:

  • Führen Sie das Upgrade auf Knoten A durch.
  • Verhindern Sie, dass sich das Problem auf neue Upgrades auswirkt.

Durchführen des Upgrades auf Knoten A

Bevor Sie mit diesem Prozess beginnen, beachten Sie Folgendes:

  • Knoten A kann nicht mithilfe des Vorgangs Knoten entfernen entfernt werden. Dieser Vorgang löscht die instance des SQL Server-Failoverclusters. Daher können Sie es nicht reparieren.

  • Sie können den SQL Server-Failovercluster instance nicht deinstallieren, indem Sie Programm deinstallieren verwenden. Dieser Vorgang funktioniert nicht.

  • Sie können keine falsche Edition des Setupmediums (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, falls 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 Failover darauf ausgeführt wird. 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 im oberen Bereich den instance SQL Server Failovercluster aus.
      3. Klicken Sie im unteren Bereich auf Ressourcen , klicken Sie mit der rechten Maustaste auf die Ressource Servername , 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 summary.txt Datei am folgenden Speicherort %Programme%\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 Befehl zur Problembehandlung zusammen mit dem Pfad der SQL Server 2012-Setupdatei (setup.exe). Sie verwenden beispielsweise einen Befehl, der dem folgenden ähnelt:

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

      Hinweis

      • SQL Server 2012-Medienpfad ist ein Platzhalter für den Pfad des SQL Server 2012-Mediums.
      • Dieser Befehl wird im Hintergrund ausgeführt und ist 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 vermeiden. Das Feature muss jedoch als Parameter übergeben werden, AS der genau wie in der summary.txt-Datei vorgeschlagen ist. Eine falsche Eingabe dieses Befehls (insbesondere des instanceid Parameters) führt dazu, dass der Bereinigungsvorgang fehlschlägt und den Computer möglicherweise in einem beschädigten Zustand zurücklässt.
      • Überprüfen Sie die summary.txt Datei, um zu bestätigen, dass der Bereinigungsvorgang erfolgreich abgeschlossen wurde.
  • Phase 2: Upgrade von Knoten A auf SQL Server 2012

    1. Starten Sie die SQL Server 2012-Setupmedien im Benutzeroberflächenmodus.

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

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

      Hinweis

      • Wenn Sie das Beispiel in Phase 1 fortsetzen, lautet der instance ID-Wert FOOINST.
      • Das Setupprogramm bestimmt nicht automatisch die instance-ID. Aus diesem Grund können Sie die standardmäßige instance-ID im Feld Instanz-ID nicht verwenden.
      • Sie können die summary.txt-Datei überprüfen, um die richtige instance-ID zu finden.
    4. Schließen Sie den Upgradevorgang ab.

    5. Nachdem knoten A erfolgreich aktualisiert wurde, fügen Sie ihn der Liste der möglichen Besitzer in der Servernamenressource des SQL Server Failoverclusters instance hinzu.

Verhindern, dass sich das Problem auf neue Upgrades auswirkt

Verwenden Sie eine der folgenden Optionen, um dieses Problem zu verhindern:

  • Option 1

    1. Führen Sie zuerst ein Upgrade von maximal 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 über eine ungerade Anzahl von Clusterknoten verfügen, stellen Sie sicher, dass Sie weniger als die Hälfte der Knoten im Cluster aktualisieren. Wenn die Meisten Knoten im Cluster aktualisiert werden, tritt dieses Problem auf, wenn für die Clusterressourcengruppe ein Failover ausgeführt wird.
    2. Fügen Sie die aktualisierten passiven Knoten manuell der 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 ein manuelles Failover der SQL Server Clustergruppe auf einen der aktualisierten Knoten aus.

    5. Aktualisieren Sie die verbleibenden Knoten, die nicht aktualisiert wurden.

    6. Wenn alle nicht aktualisierten Knoten aktualisiert wurden, fügen Sie sie manuell wieder der 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 Upgradevorgang auf jedem Clusterknoten mithilfe von Binärdateien des Setupprogramms aus dem Service Pack durchführen. 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 alle Knoten zugreifen können.

      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 überprüfen, ob das Upgrade SQL Server 2012 SP1-Setupbinärdateien verwendet, indem Sie die datei detail.log 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, zeigen, dass die SQL Server 2012-Version höher als 11.0.2100.60 ist. Die Protokolldatei kann beispielsweise 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 alle Knoten zugreifen können.

      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
        

        Dieser Befehl patcht den Knoten vorab mit SQL Server 2012 SP1-Setupbinärdateien.

        Hinweis

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

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

Weitere Informationen

Herunterladen von Service Pack 1 für SQL Server 2012

Gilt für

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