Aktualisierung der externen Replikationsports an der Db2 Warehouse

Beim erneuten Bereitstellen oder Wiederherstellen von Q Replication auf Ihrer Db2 -Instanz oder Ihrem Db2 -Cluster (für IBM Software Hub Versionen vor 5.2.0 ) ändert das Deaktivieren und erneute Aktivieren des Dienstes die vom Q Replication-Dienst verwendeten Portnummern. Dies führt zu Synchronisationsproblemen zwischen den Diensten von Kubernetes und den Diensten innerhalb des qrep Containers. Sie müssen Ihre Services resynchronisieren, indem Sie die externen Portnummern in den Replikationsmetadaten aktualisieren.

Informationen zu dieser Task

In dieser Prozedur wird ein Script verwendet, um die Portnummern für den externen REST-Server, IBM® MQ für den Erfassungsprozess und IBM® MQ für den Anwendungsprozess zu aktualisieren. In den folgenden Codebeispielen ist 1414 die interne Portnummer für die Erfassung und 1415 ist die interne Portnummer für die Anwendung. Die Beispielportnummer für den REST-API-Server lautet 9444.

Hinweis: Wenn Sie keine haproxy -Konfiguration verwenden, müssen Sie das Script qrep-expose-nodeports.sh , das in Schritt 3 dieser Prozedur beschrieben wird, nicht ausführen. Sie müssen jedoch Ihre eigenen Db2® -und Q Replication-Services verwalten.

Vorgehensweise

  1. Nachdem Sie die Replikation an der Quelle wieder aktiviert haben, überprüfen Sie eine Liste Ihrer bereitgestellten Db2uInstances oder Db2uClusters (für IBM Software Hub Versionen vor 5.2.0 ):
    oc get db2ucluster,db2uinstance -n <your_namespace>
    export DB2_CR_ID=<your_db2u_instance or your_db2u_cluster>
    Wählen Sie den Cluster aus, für den Sie die Db2 -und Q Replication-Services sichtbar machen wollen.
  2. Auflistung der Pods für die Db2uInstance oder Db2uCluster:
    oc get po -n <your_namespace> | grep $DB2_CR_ID
    Ermitteln Sie anhand der Ergebnisse das gemeinsame Präfix für die benutzerdefinierte Ressource Db2u.
  3. Kopieren Sie das Script qrep-expose-nodeports.sh aus dem Container qrep auf Ihren Infrastrukturknoten:
    qrep-expose-nodeports.sh <db2u_custom_resource_common_pod_prefix>
  4. Erfassen Sie die externen Portnummern auf der Quelle für qrep REST, erfassen Sie MQ, Ziel MQund Db2 SSL-Services:
    oc get svc -n <your_namespace> | grep $DB2_CR_ID
  5. Aktualisieren Sie im Db2 -Quellencontainer die Db2 -Datenbankkonfigurationsdatei, um den Protokollsatz für Anwendungsinformationen zu aktivieren, der zu Beginn jeder Aktualisierungstransaktion geschrieben wird:
    db2 update db cfg for bludb using LOG_APPL_INFO YES
  6. Listen Sie im Quellencontainer qrep den Quellenaliasnamen ohne das Suffix _CQM auf:
    dspmq | grep CQM
  7. Listen Sie im qrep -Zielcontainer den Zielaliasnamen ohne das _AQM-Suffix auf:
    dspmq | grep AQM
  8. Wechseln Sie im qrep -Quellencontainer zu /opt/ibm/bludr/scripts/bin und suchen Sie das Script bludr-change-ports.sh . Führen Sie das Script für die externen Ports aus, die Sie in Schritt 4erfasst haben, mit den folgenden Optionen:
    • Der REST-Port (-rp).
    • Erfassungsport (-cp)
    • Apply-Port (-ap)
    • db2 -Port (-dp)
    ./bludr-change-ports.sh -rt source -rd source -rp <rest-port-on-source> -cp <capture-port-on-source> -ap <apply-port-on-source> -dp <db2-port-on-source> -sa <source-db-alias> -ta <target-db-alias>
  9. Suchen Sie im qrep -Zielcontainer das Script und führen Sie es aus. Geben Sie dabei die Laufseite mit der Option -rd target an:
    ./bludr-change-ports.sh -rt source -rd target -rp <rest-port-on-source> -cp <capture-port-on-source> -ap <apply-port-on-source> -dp <db2-port-on-source> -sa <source-db-alias> -ta <target-db-alias
  10. Führen Sie in den Quellen-und Zielcontainern von qrep das Script bludr-restart.sh aus, um die Replikation erneut zu starten:
    /opt/ibm/bludr/scripts/bin/bludr-restart.sh

Beispiele

Das folgende Beispiel zeigt die Befehlssyntax und -ausgabe für das Abrufen des allgemeinen Präfix für den Cluster whmpp1. siehe Schritt 2:
oc get po | grep whmpp1
c-whmpp1-db2u-0                                    1/1     Running     0              43d
c-whmpp1-db2u-1                                    1/1     Running     0              42d
c-whmpp1-etcd-0                                    1/1     Running     0              43d
c-whmpp1-instdb-tc7dd                              0/1     Completed   0              43d
c-whmpp1-ldap-5799978b-wwkpf                       1/1     Running     0              43d
c-whmpp1-qrep-67944f5899-hn5q2                     1/1     Running     0              43d
c-whmpp1-restore-morph-jdd4g                       0/1     Completed   0              43d
Das folgende Beispiel zeigt die Befehlssyntax und -ausgabe für die Erfassung der externen Portnummern für Services im Cluster whmpp1. siehe Schritt 4:
oc get svc | grep whmpp1 
NAME                             TYPE        CLUSTER-IP       EXTERNAL-IP     PORT(S)                                          AGE
c-whmpp1-db2u                    ClusterIP   172.30.194.248   <none>          50000/TCP,50001/TCP,25000/TCP,25001/TCP,25002/
                                                                                     TCP,25003/TCP,25004/TCP,25005/TCP         44d

c-whmpp1-db2u-engn-svc           NodePort    172.30.152.30    <none>        50001:31576/TCP,50000:31397/TCP                  44d
c-whmpp1-db2u-head-engn-svc      NodePort    172.30.46.162    <none>        50001:30678/TCP,50000:32065/TCP                  44d
c-whmpp1-db2u-internal           ClusterIP   None             <none>        50000/TCP,9443/TCP,50052/TCP                     44d
c-whmpp1-etcd                    ClusterIP   None             <none>        2379/TCP,2380/TCP                                44d 
c-whmpp1-ldap                    ClusterIP   172.30.89.227    <none>        50389/TCP                                        44d
c-whmpp1-qrep-mq-svc             NodePort    172.30.200.249   <none>        1414:30827/TCP,1415:32409/TCP                    44d
c-whmpp1-qrep-rest-svc           NodePort    172.30.192.96    <none>        9444:31023/TCP                                   44d
c-whmpp1-tools                   ClusterIP   172.30.70.78     <none>        53/TCP,53/UDP                                    44d
c-whmpp2-db2u                    ClusterIP   172.30.38.90     <none>        50000/TCP,50001/TCP,25000/TCP,25001/TCP,25002/
                                                                               TCP,25003/TCP,25004/TCP,25005/TCP             43d
c-whmpp2-db2u-engn-svc           NodePort    172.30.181.123   <none>        50001:30138/TCP,50000:30526/TCP                  43d
c-whmpp2-db2u-head-engn-svc      NodePort    172.30.203.11    <none>        50001:30831/TCP,50000:31430/TCP                  43d
c-whmpp2-db2u-internal           ClusterIP   None             <none>        50000/TCP,9443/TCP,50052/TCP                     43d
c-whmpp2-etcd                    ClusterIP   None             <none>        2379/TCP,2380/TCP                                43d
c-whmpp2-ldap                    ClusterIP   172.30.185.158   <none>        50389/TCP                                        43d
c-whmpp2-qrep-mq-svc             NodePort    172.30.147.231   <none>        1414:31496/TCP,1415:31139/TCP                    43d
c-whmpp2-qrep-rest-svc           NodePort    172.30.247.204   <none>        9444:32483/TCP                                   43d
c-whmpp2-tools                   ClusterIP   172.30.168.83    <none>        53/TCP,53/UDP                                    43d
db2u-day2-ops-controller-
manager-metrics-service          ClusterIP   172.30.106.68    <none>        8443/TCP                                         44d
Das folgende Beispiel zeigt die Befehlssyntax zum Abrufen der Portnummer für den Db2 -SSL-Service im Cluster whmpp1:
oc get svc | grep "whmpp1" | grep "db2u-eng-svc"
NAME                          TYPE        CLUSTER-IP       EXTERNAL-IP      PORT(S)                              AGE
c-whmpp1-db2u-engn-svc        NodePort    172.30.152.30     <none>          50001:31576/TCP,50000:31397/TCP      44d
Das folgende Beispiel zeigt die Befehlssyntax zum Abrufen der Portnummern für den Q Replication-REST-API-Server, zum Erfassen des MQ -Service und zum Anwenden des MQ -Service auf Db2 im Cluster whmpp1.
oc get svc | grep "whmpp1" | grep "qrep"
c-whmpp1-qrep-mq-svc           NodePort    172.30.200.249   <none>        1414:30827/TCP,1415:32409/TCP       q       44d
c-whmpp1-qrep-rest-svc         NodePort    172.30.192.96    <none>        9444:31023/TCP                              44d