Smarter gleichzeitige Fixpackaktualisierungen für Db2 pureScale -Instanzen ausführen

Sie können mehrere Hosts in einer Db2 pureScale -Instanz aktualisieren, während die verbleibenden Member und Cluster-Caching-Funktionen weiterhin Transaktionen verarbeiten.

Vorbereitende Schritte

Das ist wichtig : Db2® 11.5.8 einführung der neuen Unterstützung für Db2 pureScale mit RDMA auf RHEL 8.6. Dies erfordert ein Offline-Update des ganzen Clusters, um auf Db2 11.5.8 und RHEL 8.6zu wechseln. Es ist nicht möglich, ein Online-Update von einer niedrigeren Db2 11.5 -Version auf Db2 11.5.8 auszuführen, wenn Sie mit RDMA auf RHEL 8.6 wechseln. Für einen vorhandenen Cluster-RDMA, auf dem Db2 11.5 unter RHEL 7 ausgeführt wird, kann mithilfe eines Online-Updates ein Upgrade auf Db2 11.5.8 unter RHEL 7 durchgeführt werden.
Achtung: Dieses Feature ist in Db2 11.5.8 und höher verfügbar.
Bevor Sie versuchen, das gleichzeitige Fixpack-Update in Ihrem Db2 pureScale -Cluster auszuführen, stellen Sie sicher, dass die folgenden Bedingungen erfüllt sind:
  • All prerequisites are met. Weitere Informationen finden Sie unter Installation eines Fixpacks vorbereiten.
  • Sie verfügen über Rootberechtigung und Instanzeignerberechtigung.
  • Online-Fixpack-Updates werden zwischen der Db2 -Version, die auf Ihrer Db2 pureScale -Instanz installiert ist, und der Db2 -Version des Fixpacks oder speziellen Builds, die Sie installieren möchten, unterstützt. Führen Sie den Befehl installFixPack mit der Option -show_level_info aus, um zu ermitteln, ob die Aktualisierung unterstützt wird. Führen Sie den Befehl an der Position des neuen Fixpacks oder des speziellen Build-Image aus.
    Das folgende Beispiel zeigt eine Beispielausgabe für die Ausführung von installFixPack -show_level_info:
        Code level         =  Version:11 Release:5 Modification:8 Fixpack:0 
        Architecture level =  Version:11 Release:5 Modification:8 Fixpack:0 
        Section level      =  Version:11 Release:5 Modification:8 Fixpack:0 
         
        Supports online update = Yes 
         
        Minimum committed code level required for online install = 
           Version:11 Release:5 Modification:6 Fixpack:0 
         
        The execution completed successfully. 
         
        For more information see the DB2 installation log at "/tmp/installFixPack.log.13369572". 
        DBI1070I  Program installFixPack completed successfully. 

Informationen zu dieser Task

Für den Befehl installFixPack sind Optionen verfügbar, die bis zur Hälfte der Hosts in einem Db2 pureScale -Cluster gleichzeitig aktualisieren können, ohne dass dies Auswirkungen auf die Ausführung von Transaktionen hat:
  • -concurrency: Aktualisiert automatisch alle Hosts in einem Cluster mit einem angegebenen Grad des gemeinsamen Zugriffs
  • -autoupdate: Aktualisiert automatisch alle Hosts in einem Cluster mit einem optimalen Grad des gemeinsamen Zugriffs.
Bei beiden Optionen führen Sie den Befehl von einem beliebigen Host in Ihrem Cluster aus und das Db2 -Installationsprogramm aktualisiert automatisch alle Hosts.
Einschränkung: Die folgenden Einschränkungen gelten, wenn Sie den Befehl mit einer der Optionen ausführen:
  • Alle Hosts müssen aktualisiert werden, bevor Sie Änderungen festschreiben und die Db2 pureScale -Instanz aktualisieren können.
  • Der Wert des Parameters -concurrency darf nicht mehr als die Hälfte der Mitglieder sein.
  • Diese Aktualisierungsmethode wird für geografisch verteilte Db2 pureScale Cluster (GDPC) nicht unterstützt.
  • Die sekundäre CF muss sich im Peerstatus befinden, nachdem sie aktualisiert wurde. Diese Statusänderung erfolgt automatisch, wenn eine Verbindung zu einer Datenbank hergestellt wird, nachdem die sekundäre CF aktualisiert wurde.

Prozedur

  1. Extrahieren Sie das Fixpack-Image oder das spezielle Build-Image in ein Verzeichnis, auf das alle Hosts zugreifen können.
    Hinweis : Verwenden Sie kein General Parallel File System wie IBM, um das Bild zu speichern. Ein GPFS wechselt möglicherweise während der Aktualisierung in den Wartungsmodus und macht das Image unzugänglich. Unerwartete Fehler können dazu führen, dass die Wiederherstellung schwierig ist. Richten Sie stattdessen NFS ein, um das Image für die Hosts freizugeben, oder erstellen Sie auf jedem Host ein Verzeichnis, z. B. /db2_images/db2_update001, und extrahieren Sie das Image separat in diese Verzeichnisse.
  2. Führen Sie den folgenden Befehl aus, um zu ermitteln, ob alle Member online sind und ob sich die sekundäre CF im PEER-Zustand befindet:
    db2instance –list
  3. Wenn die Ausgabe zeigt, dass sich die sekundäre CF im Status CATCHUP befindet, können Sie den Catch-up-Fortschritt in Prozent überprüfen, indem Sie die DB2_CF -Verwaltungssicht abfragen:
    db2 "SELECT ID as CF_ID, varchar(CURRENT_HOST,21) AS HOST, varchar(STATE,14) AS CF_STATE FROM SYSIBMADM.DB2_CF" 
    Die folgende Beispielausgabe zeigt, dass cfserver56 zu 79% abgeschlossen ist und sich in einem Peerstatus mit dem primären Server befindet:
    CF_ID  HOST             CF_STATE 
    ------ ---------------  -------------- 
       128 cfserver56       CATCHUP(79%) 
       129 cfserver54       PRIMARY 
    
      2 record(s) selected.
  4. Führen Sie den Befehl installFixPack mit der Option -show_update_order aus, um die Reihenfolge zu drucken, in der das Installationsprogramm die Zielhosts aktualisiert. Während der Befehl keine Aktualisierungsoperation auf diesen Hosts ausführt, führt er einige vorläufige Prüfungen durch, um sicherzustellen, dass der Cluster für die Aktualisierung bereit ist.
    Das folgende Beispiel zeigt die Syntax für die Ausführung des Befehls mit der Option -show_update_order und der Einstellung 2für gemeinsamen Zugriff:
    <media-dir>/installFixPack –p <FP-install-path> -I <instance-name> -concurrency 2 –show_update_order
    Dabei gilt Folgendes:
    • <media-dir> ist die Position des Fixpackpakets.
    • <FP-install-path> ist der Pfad zum zu aktualisierenden Zielmember oder zur zu aktualisierenden CF.
    • <instance-name> ist der Name Ihrer Db2 pureScale -Instanz.
    Das folgende Beispiel zeigt die Syntax für den Befehl mit der Option -show_update_order und der Option autoupdate :
    <media-dir>/installFixPack –p <FP-install-path> -I <instance-name> -autoupdate –show_update_order 
  5. Führen Sie den Befehl installFixPack erneut aus, jedoch ohne -show_update_order, um alle Hosts in Ihrem Db2 pureScale -Cluster zu aktualisieren.
    Das folgende Beispiel zeigt die Syntax für die Ausführung des Befehls installFixPack mit der Einstellung 2für gemeinsamen Zugriff:
    :<media-dir>/installFixPack –p <FP-install-path> -I <instance-name> -concurrency 2 
    Das folgende Beispiel zeigt die Syntax für den Befehl mit der Option autoupdate :
    Example with -autoupdate: <media-dir>/installFixPack –p <FP-install-path> -I <instance-name> -autoupdate 
    Hinweis: Der Wert von FP-install-path muss auf allen Hosts identisch sein und sich vom Pfad zur aktuell installierten Db2 -Instanz unterscheiden.
  6. Wenn es einen Tiebreaker-Host für den Cluster gibt, führen Sie die folgenden Schritte aus:
    1. Geben Sie den CM-Wartungsmodus ab der alten Codeversion ein:
      export DB2INSTANE=<instance_name>; <OLD-FP-install-path>/bin/db2cluster -cm -enter -maintenance
    2. Geben Sie den cfs-Wartungsmodus ab der alten Codeversion ein:
      export DB2INSTANCE=<instance_name>; <OLD-FP-install-path>/bin/db2cluster -cfs -enter -maintenance 
    3. Aktualisieren Sie den Tiebreaker-Host, indem Sie den Befehl installFixPack im Ziel-Fixpack-Image ausführen:
      <media-dir>/installFixPack -b <OLD-FP-install-path> -p <FP-install-path> -L
      Hinweis: Der Wert von FP-install-path muss auf allen Hosts identisch sein:
      <media-dir>/installFixPack -b /opt/ibm/db2/V11.5 -p /opt/ibm/db2/V11.5M5FP0 -L 
    4. Beenden Sie den CM-Wartungsmodus von der neuen Codeversion:
      export DB2INSTANCE=<instance_name>; <FP-install-path>/bin/db2cluster -cm -exit -maintenance 
    5. Verlassen Sie den Wartungsmodus cfs von der neuen Codeversion:
      export DB2INSTANCE=<instance_name>; <FP-install-path>/bin/db2cluster -cfs -exit -maintenance 
    6. Aktualisieren Sie den Pfad für IBM Global Security Kit (GSKit) auf die Position des neueren Fixpacks:
      /var/db2/db2ssh/db2locssh set_gskit_path <FP-install-path>/lib64/gskit/Copy code
    7. Stellen Sie sicher, dass db2locssh korrekt ausgeführt wird. Wenn der Hostname Ihres Systems zum Beispiel ' "hostT", lautet, führen Sie den Befehl hostname über ' db2locssh: aus
       root@hostT>/var/db2/db2ssh/db2locssh root@hostT hostname hostT
    Wenn alle Schritte erfolgreich sind, haben Sie das Fixpack erfolgreich auf den Tiebreaker-Host angewendet.
  7. Schreiben Sie das Online-Fixpack-Update fest, sodass Ihre Db2 pureScale -Instanz auf die neue Fixpackstufe aktualisiert wird:
    <media-dir>/installFixPack -commit_level -I <instance-name> -l <log-file-name> -t <trace-file-name>
  8. Überprüfen Sie als Instanzbenutzer, ob Ihre Instanz und Ihre Datenbanken die neue festgeschriebene Fixpackstufe anzeigen:
    db2pd -ruStatus
  9. Wenn Sie die für das Fixpack spezifische Funktionalität nutzen möchten, müssen Sie die Systemkatalogobjekte in Ihren Datenbanken aktualisieren:
    1. Melden Sie sich als Instanzeigner an.
    2. Setzen Sie für jede Datenbank in der Instanz den Befehl db2updv115 ab:
      db2updv115 -d db-name

Beispiel

Beispiel 1: Aktualisierung mit der Option -autoupdate für maximalen gemeinsamen Zugriff.
Führen Sie den Befehl installFixPack mit der Option -autoupdate aus, schließen Sie aber auch die Option -show_update_order ein. Das folgende Beispiel zeigt, wie das Installationsprogramm plant, die Hosts zu aktualisieren:
# installFixPack -p /opt/ibm/db2/V11.5FP -I db2inst1 -autoupdate -show_update_order -y
DBI1961I  The installFixPack command was run with -show_update_order. This option is informational and no update operation will occur.

The installFixPack command will update the hosts with concurrency "3".

The installFixPack command will update the hosts in the following order:
host1.ibm.com,host2.ibm.com,host3.ibm.com,
host4.ibm.com,
host5.ibm.com,
host6.ibm.com
Wenn der Befehl -show_update_order erfolgreich ausgeführt wird, führen Sie die reale Aktualisierung aus. Das folgende Beispiel zeigt die Befehlssyntax und Ausgabe der Ausführung des Befehls installFixPack mit der Option -autoupdate :
# installFixPack -p /opt/ibm/db2/V11.5FP -I db2inst1 -autoupdate -y
Performing online fixpack update on host: "host1.ibm.com".
 
Performing online fixpack update on host: "host2.ibm.com".
 
Performing online fixpack update on host: "host3.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host1.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host1.ibm.com" for details.
 
Performing online fixpack update on host: "host4.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host2.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host2.ibm.com" for details.
 
Performing online fixpack update on host: "host5.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host3.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host3.ibm.com" for details.
 
Performing online fixpack update on host: "host6.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host4.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host4.ibm.com" for details.
 
DBI1964I  The online fixpack update operation succeeded on "host5.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host5.ibm.com" for details.
 
DBI1964I  The online fixpack update operation succeeded on "host6.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host6.ibm.com" for details.

Beispiel 2: Halten Sie weitere Hosts während der Aktualisierung online, indem Sie die Option -concurrency < Anzahl Hosts > verwenden.

Führen Sie den Befehl installFixPack mit dem Wert 2für -concurrency aus, aber geben Sie auch die Option -show_update_order an. Das folgende Beispiel zeigt, wie das Installationsprogramm plant, die Hosts zu aktualisieren:
# installFixPack -p /opt/ibm/db2/V11.5FP -I db2inst1 -concurrency 2 -show_update_order -y
DBI1961I  The installFixPack command was run with -show_update_order. This option is informational and no update operation will occur.

The installFixPack command will update the hosts with concurrency "2".

The installFixPack command will update the hosts in the following order:
host1.ibm.com,host2.ibm.com,
host3.ibm.com,
host4.ibm.com,
host5.ibm.com,
host6.ibm.com
Wenn der Befehl -show_update_order erfolgreich ausgeführt wird, führen Sie die reale Aktualisierung aus. Das folgende Beispiel zeigt die Befehlssyntax und die Ausgabe der Ausführung des Befehls installFixPack mit der Option -concurrency auf 2:
# installFixPack -p /opt/ibm/db2/V11.5FP -I db2inst1 -concurrency 2 -y
Performing online fixpack update on host: "host1.ibm.com".
 
Performing online fixpack update on host: "host2.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host1.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host1.ibm.com" for details.
 
Performing online fixpack update on host: "host3.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host2.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host2.ibm.com" for details.
 
Performing online fixpack update on host: "host4.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host3.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host3.ibm.com" for details.
 
Performing online fixpack update on host: "host5.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host4.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host4.ibm.com" for details.

Performing online fixpack update on host: "host6.ibm.com".
 
DBI1964I  The online fixpack update operation succeeded on "host5.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host5.ibm.com" for details.
 
DBI1964I  The online fixpack update operation succeeded on "host6.ibm.com". Refer to /tmp/installFixPack_Concurrent.log.841135 on host "host6.ibm.com" for details.

Nächste Schritte

Sie können die Aktualisierung auf einem einzelnen Host überwachen, indem Sie eine separate Sitzung auf diesem Host öffnen. Überprüfen Sie nach der Anmeldung den Inhalt von /tmp/installFixPack_Concurrent.log.<pid> , um den Status der Aktualisierung zu überwachen.

Wenn während des gleichzeitigen Fixpack-Updates ein Fehler auftritt, überprüfen Sie die Protokolle auf Details. Wenn das Problem behoben ist, können Sie den Rest des Cluster manuell aktualisieren oder die Anweisungen ab Schritt 2 befolgen. Das Installationsprogramm überwacht die Hosts, die aktualisiert wurden, sodass Aktualisierungen nur auf die Hosts angewendet werden, die sie benötigen.