Erstellen eines separaten Speichers für Archivprotokolle in Db2 Warehouse

Sie können ein persistentes Volume erstellen, um die Archivprotokolle vom Datenbankdateisystem zu trennen.

Informationen zu dieser Task

Hinweis: Aus 5.2 geht hervor, dass Archivprotokolle für neue Bereitstellungen für Db2uInstance benutzerdefinierte Ressourcen obligatorisch sind. Daher ist die Einrichtung eines separaten Speichers für Archivprotokolle in einer bestehenden Bereitstellung nur für Db2uCluster benutzerdefinierte Ressourcen möglich.

Standardmäßig werden die Archivprotokolle der Datenbank im selben Dateisystem wie die Datenbank gespeichert. Infolgedessen kann es vorkommen, dass das Dateisystem nicht mehr über genügend Speicherplatz verfügt, da die Datenbank und die Archivprotokolle ständig wachsen.

Um die Archivprotokolle vom Datenbankdateisystem zu trennen, erstellen Sie ein persistentes Volume, indem Sie die Schritte für eine vorhandene Bereitstellung ausführen.

Vorgehensweise

Wenn Sie verwenden Db2uCluster, befolgen Sie die Schritte in der bestehenden Bereitstellung:
  • Neue Bereitstellung
    Wenn Sie den Db2 Warehouse Dienst bereitstellen, geben Sie auf der Seite „Archivprotokollspeicher“ der Webkonsole die folgenden Werte an:
    • Neuen Speicher erstellen
    • Speichervorlage verwenden
    • Speicherklasse: Wählen Sie manage-nfs-storage, ocs-storagecluster-ceph-rbd oder portworx-db2-rwo-sc aus.
    • Größe: Ihr ausgewählter Wert zwischen 1 und 1.000 GiB.
  • Vorhandene Bereitstellung
    1. Exec in den Pod „ Db2 Warehouse ” mit Katalogpartition.
    2. Führen Sie den folgenden Befehl aus:
      wvcli system disable
    3. Erstellen Sie eine Kopie der Datei „ Db2 WarehouseStatefulSet “, indem Sie die folgenden Befehle ausführen:
      oc get sts c-<db2_instance_id-db2u> -o yaml > c-<db2_instance_id>-db2u.sts.bak
      cp c-<db2_instance_id>-db2u.sts.bak c-<db2_instance_id>-db2u.sts
      Sie finden die richtige Datei „ StatefulSet “ (sts) im Projekt, indem Sie den folgenden Befehl ausführen:
      oc get sts | grep <db2_instance_id>
      wobei „ <db2_instance_id> “ der Name Ihrer Bereitstellung ist, den Sie durch Ausführen des folgenden Befehls ermitteln können:
      oc get db2ucluster,db2unstance
    4. Bearbeiten Sie die c-<db2_instance_id>-db2u.sts Datei, indem Sie zwei neue Abschnitte hinzufügen: volumeMounts und volumeClaimTemplates. Ersetzen Sie „size“ und „storageclass_name“ durch die entsprechenden Werte.
      volumeMounts:
       - mountPath: /mnt/logs/archive
         name: archivelogs
      
      volumeClaimTemplates:
      - apiVersion: v1
        kind: PersistentVolumeClaim
        metadata:
          name: archivelogs
        spec:
          accessModes:
          - ReadWriteOnce
          resources:
            requests:
              storage: <size>
          storageClassName: <storageclass_name>
          volumeMode: Filesystem
    5. Löschen Sie die Db2 Warehouse Datei „ StatefulSet “ und erstellen Sie sie mit der aktualisierten c-<db2_instance_id>-db2u.sts Datei neu. Löschen Sie anschließend die Db2U Pods, damit sie recycelt werden und die neue Definition „ StatefulSet “ übernehmen.
      oc delete sts c-<db2_instance_id>-db2u --cascade=false
      oc create -f c-<db2_instance_id>-db2u.sts
      Löschen Sie alle Pods „ Db2 “. Der folgende Beispielbefehl enthält nur den Pod „ Db2 “ mit dem Suffix „ -0 “:
      oc delete pod c-<db2_instance_id>-db2u-0
    6. Bearbeiten Sie die Datei „ ConfigMapc-<db2_instance>-db2dbconfig“. Ändern Sie LOGARCHMETH1 DISK:/mnt/bludata0/db2/archive_log in LOGARCHMETH1 DISK:/mnt/logs/archive.
    7. Wenn sich der Pod „ db2u-0 “ und alle anderen Pods „ db2u “ im Status „1/1 ready“ befinden, führen Sie den exec Befehl „command“ auf dem Db2 Warehouse Pod aus und führen Sie anschließend die folgenden Befehle aus:
      chown -R db2inst1:db2iadm1 /mnt/logs/archive/
      su - db2inst1 -c "/db2u/scripts/apply-db2cfg-settings.sh"
      Wenn Sie LOGARCHMETH1 abfragen,
      db2 get db cfg | grep -i logarchmeth1
      Sie werden sehen, dass es Ihr neues persistentes Volume-Mount verwendet:
       First log archive method                 (LOGARCHMETH1) = DISK:/mnt/logs/archive/