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 BereitstellungWenn 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
- Exec in den Pod „ Db2 Warehouse ” mit Katalogpartition.
- Führen Sie den folgenden Befehl aus:
wvcli system disable - 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
Sie finden die richtige Datei „ StatefulSet “ (cp c-<db2_instance_id>-db2u.sts.bak c-<db2_instance_id>-db2u.stssts) im Projekt, indem Sie den folgenden Befehl ausführen:
wobei „ <db2_instance_id> “ der Name Ihrer Bereitstellung ist, den Sie durch Ausführen des folgenden Befehls ermitteln können:oc get sts | grep <db2_instance_id>oc get db2ucluster,db2unstance - 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 - 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
Löschen Sie alle Pods „ Db2 “. Der folgende Beispielbefehl enthält nur den Pod „ Db2 “ mit dem Suffix „ -0 “:oc create -f c-<db2_instance_id>-db2u.stsoc delete pod c-<db2_instance_id>-db2u-0 - Bearbeiten Sie die Datei „ ConfigMapc-<db2_instance>-db2dbconfig“. Ändern Sie
LOGARCHMETH1 DISK:/mnt/bludata0/db2/archive_loginLOGARCHMETH1 DISK:/mnt/logs/archive. - 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/
Wenn Sie LOGARCHMETH1 abfragen,su - db2inst1 -c "/db2u/scripts/apply-db2cfg-settings.sh"
Sie werden sehen, dass es Ihr neues persistentes Volume-Mount verwendet:db2 get db cfg | grep -i logarchmeth1First log archive method (LOGARCHMETH1) = DISK:/mnt/logs/archive/