Realizar copias de seguridad y restaurar Db2 Warehouse por separado de IBM Software Hub con la OADP utilidad
Puede crear una copia de seguridad sin conexión de una Db2 Warehouse instancia por separado de IBM Software Hub y restaurarla en el mismo clúster con la utilidad de copia de seguridad IBM Software HubOpenShift® API for Data Protection y restauración (OADP).
Realice copias de seguridad y restaure una Db2 Warehouse instancia por separado de IBM Software Hub cuando Db2 Warehouse las copias de seguridad sean muy grandes o desee realizar copias de seguridad Db2 Warehouse con más frecuencia que IBM Software Hub.
La copia de seguridad y la restauración Db2 Warehouse por IBM Software Hub separado implican las siguientes tareas:
- Prepárese para realizar una copia de seguridad IBM Software Hub y Db2 Warehouse.
- Copia de seguridad IBM Software Hub, excluyendo Db2 Warehouse.
- Hacer una copia de seguridad Db2 Warehouse.
- Restaurar IBM Software Hub y Db2 Warehouse.
Asegúrese de obtener las variables de entorno antes de ejecutar los comandos de esta tarea.
Preparación para la copia de seguridad
Para preparar la copia de seguridad, compruebe el estado de los nodos, los pods y los recursos personalizados. A continuación, prepárese para excluir Db2 Warehouse de una IBM Software Hub copia de seguridad etiquetando PVC, PV, instantáneas y plantillas de pod en StatefulSets.
- Inicie sesión en Red Hat® OpenShift Container Platform como administrador del clúster.
${OC_LOGIN}Recuerda:OC_LOGINes un alias deloc logincomando. - Comprueba que todos los nodos estén en estado
Ready:oc get nodes - Comprueba que todos Db2 Warehouse los pods se están ejecutando en
1/1:oc get pod | grep c-db2wh - Comprueba el estado del Db2 Warehouse servicio.
- Identifique la db2ucluster instancia:
oc get db2ucluster | grep db2whAnote el db2ucluster ID, ya que se utiliza en algunos de los siguientes pasos.
- Abre un shell remoto al contenedor.
oc rsh c-db2wh-<xxxxxxxxxxxxx>-db2u-0 - Cambiar al propietario de la instancia de
db2inst1la base de datos:su - db2inst1 - Comprueba que todas las particiones estén funcionando:
rah 'ps -fea' 2>&1 | grep db2sysc | grep -v grep - Conectarse a la base de datos:
db2 connect to mydb - Comprueba si puedes seleccionar desde una tabla ejecutando una consulta sencilla:
db2 select name from sysibm.systables
- Identifique la db2ucluster instancia:
- Comprueba que el estado de los recursos personalizados sea
CompletedoReady.- Comprueba que el estado del recurso IBM Software
Hubcontrol plane personalizado sea
Completedestado:oc describe ZenService lite-cr | grep "Zen Status" - Comprueba que los
STATEde los recursos db2ucluster personalizados se encuentren en estadoReady:oc get db2uclusterNota: Si alguno de los recursos personalizados se encuentra enInMaintenanceestado y el db2ucluster funciona (por ejemplo, puede conectarse a las bases de datos y estas no están en modo de suspensión de escritura), elimine la siguiente línea del archivo yaml:db2u.databases.ibm.com/maintenance-pause-reconcile: 'true' - Comprueba que el estado de los recursos personalizados en el IBM Software
Hub proyecto sea
Completed:cpd-cli manage get-cr-status \ --cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS}
- Comprueba que el estado del recurso IBM Software
Hubcontrol plane personalizado sea
- Etiqueta Db2 Warehouse los PVC, PV y instantáneas para excluirlos de la IBM Software
Hub copia de seguridad.
- Etiquetas de PVC:
oc label pvc `oc get pvc --show-labels | grep db2wh | awk '{print $1}'` velero.io/exclude-from-backup=true - Etiquetas PV:
oc label pv `oc get pv --show-labels | grep db2wh | awk '{print $1}'` velero.io/exclude-from-backup=true - Instantáneas de etiquetas:
oc label volumesnapshots `oc get volumesnapshots --show-labels | grep db2wh | awk '{print $1}'` velero.io/exclude-from-backup=true
- Etiquetas de PVC:
- Etiqueta las plantillas de pod en StatefulSets.
- Identificar StatefulSets:
oc get sts -l app=${DB2UCLUSTER} - Tome nota de las réplicas originales y reduzca la escala db2ucluster:
oc scale sts c-${DB2UCLUSTER}-db2u --replicas=0 - Revisar el estado del pod:
watch "oc get pod |grep c-db2wh-<xxxxxxxxxxx>" - Tome nota de las réplicas originales y reduzca la escala etcd:
oc scale sts c-${DB2UCLUSTER}-etcd --replicas=0 - Revisar el estado del pod:
watch "oc get pod |grep c-db2wh-<xxxxxxxxxxx>" - Tome nota de las réplicas originales y reduzca la escala tools:
oc scale deploy c-${DB2UCLUSTER}-tools --replicas=0 - Revisar el estado del pod:
watch "oc get pod |grep c-db2wh-<xxxxxxxxxxx>" - Cuando Db2 Warehouse se reduzca, etiquete las plantillas de pod en StatefulSets y Deployments:
oc patch StatefulSet c-db2wh-xxxxxxxxxxxxx-db2u --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}' oc patch StatefulSet c-db2wh-xxxxxxxxxxxxx-etcd --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}' oc patch deploy c-db2wh-xxxxxxxxxxx-tools --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}'oc patch StatefulSet c-db2wh-xxxxxxxxxxxxx-etcd --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}'oc patch deploy c-db2wh-xxxxxxxxxxx-tools --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}' - Amplíe hasta obtener réplicas originales:
oc scale deploy c-${DB2UCLUSTER}-tools --replicas=1oc scale sts c-${DB2UCLUSTER}-etcd --replicas=<original-number-of-replicas>oc scale sts c-${DB2UCLUSTER}-db2u --replicas=<original-number-of-replicas> - Revisar el estado del pod:
watch "oc get pod |grep c-db2wh-<xxxxxxxxxxx>" - Repita el paso 3 para comprobar el estado del Db2 Warehouse servicio.
- Identificar StatefulSets:
Haciendo copia de seguridad IBM Software Hub
Realice una copia de seguridad IBM Software Hub con Db2 Warehouse excluido siguiendo estos pasos.
- Inicie sesión en Red Hat
OpenShift Container Platform como administrador del clúster.
${OC_LOGIN}Recuerda:OC_LOGINes un alias deloc logincomando. - Calma el IBM Software
Hub control plane.
cpd-cli oadp backup prehooks \ --include-namespaces=${PROJECT_CPD_INST_OPERANDS} - Cree la copia de seguridad.
- Para revisar el estado de la copia de seguridad, ejecute el siguiente comando.
cpd-cli oadp backup status <cpd_backup-name> \ --details - Para revisar el registro de copia de seguridad, ejecute el siguiente comando.
cpd-cli oadp backup logs <cpd_backup-name> - Si la copia de seguridad ha fallado, elimínela y vuelva a iniciarla.
cpd-cli oadp backup delete <cpd_backup-name> - Desactivar el IBM Software
Hub control plane.
cpd-cli oadp backup posthooks \ --include-namespaces=${PROJECT_CPD_INST_OPERANDS}Nota: Si el wkc-job-unquiesce trabajo tarda mucho tiempo en completarse, revise los registros del pod. Si el pod wkf-workflow de servicio está en0/1, reinícielo. Entonces el wkc-job-unquiesce trabajo continúa.
Haciendo copia de seguridad Db2 Warehouse
Realice una copia de seguridad Db2 Warehouse creando una instantánea Container Storage Interface de volumen (CSI).
- Inicie sesión en Red Hat
OpenShift Container Platform como administrador del clúster.
${OC_LOGIN}Recuerda:OC_LOGINes un alias deloc logincomando. - Ejecuta el gancho previo Db2 Warehouse a la copia de seguridad que invoca Db2 write-suspend.
- Identificar el db2ucluster:
oc get db2ucluster | grep db2whEl comando devuelve
DB2UCLUSTER=db2wh-<xxxxxxxxxxxxxxxx> - Identifique el nodo del catálogo:
CATALOG_POD=$(oc get po -l name=dashmpp-head-0,app=${DB2UCLUSTER} --no-headers | awk '{print $1}') - Suspenda la Db2 Warehouse base de datos en el pod que se identificó en el paso anterior:
oc rsh ${CATALOG_POD} bashsu - db2inst1cd /db2u/scripts./manage_snapshots.sh --action suspend
- Identificar el db2ucluster:
- Aplicar etiquetas de recursos Db2 Warehouse específicas de la instancia Db2 a PVC de instancia y recursos (las PVC meta y de respaldo no están etiquetadas actualmente).
INSTANCE_ID=$(echo ${DB2UCLUSTER} | cut -d "-" -f2)oc label pvc c-${DB2UCLUSTER}-meta app=${DB2UCLUSTER} component=db2wh db2u/cpdbr=db2u formation_id=${DB2UCLUSTER} cpdsupport/addOnId=db2wh icpdsupport/app=${DB2UCLUSTER} icpdsupport/createdBy=1000330999 icpdsupport/podSelector=db2u-log icpdsupport/serviceInstanceId=${INSTANCE_ID} role=db type=engineoc label pvc c-${DB2UCLUSTER}-backup app=${DB2UCLUSTER} component=db2wh db2u/cpdbr=db2u formation_id=${DB2UCLUSTER} icpdsupport/addOnId=db2wh icpdsupport/app=${DB2UCLUSTER} icpdsupport/createdBy=1000330999 icpdsupport/podSelector=db2u-log icpdsupport/serviceInstanceId=${INSTANCE_ID} role=db type=engine - Cree la copia de seguridad ejecutando uno de los siguientes comandos.
El clúster extrae imágenes del Registro de Títulos de Propiedad ( IBM Entitled Registry)
Restricción: esta opción solo está disponible si el clúster puede conectarse a Internet.cpd-cli oadp backup create <db2wh_backup-name> \ --include-namespaces=${PROJECT_CPD_INST_OPERANDS} \ --skip-hooks \ --snapshot-volumes \ --include-resources='ns,pvc,pv,volumesnapshot,volumesnapshotcontent' \ --selector="app=${DB2UCLUSTER}" --image-prefix=registry.redhat.io/ubi9 \ --log-level=debug \ --verbose
El clúster extrae imágenes de un registro de contenedores privado
Restricción: esta opción solo está disponible si un administrador ha trasladado las imágenes de copia de seguridad y restauración al registro de contenedores privado. Para más detalles, véase el punto 2. Imágenes móviles para realizar copias de seguridad y restaurarlas en un registro de contenedores privado.cpd-cli oadp backup create <db2wh_backup-name> \ --include-namespaces=${PROJECT_CPD_INST_OPERANDS} \ --skip-hooks \ --snapshot-volumes \ --include-resources='ns,pvc,pv,volumesnapshot,volumesnapshotcontent' \ --selector="app=${DB2UCLUSTER}" \ --image-prefix=${PRIVATE_REGISTRY_LOCATION}/ubi9 \ --log-level=debug \ --verbose
- Reanude la Db2 Warehouse base de datos en el pod (el mismo pod que en el paso 1):
oc rsh ${CATALOG_POD} bashsu - db2inst1cd /db2u/scripts./manage_snapshots.sh --action resume - Comprueba el estado de Db2 Warehouse.
Restaurar IBM Software Hub y Db2 Warehouse
Restaure IBM Software Hub y Db2 Warehouse siguiendo los siguientes pasos.
- Anote los siguientes valores en el proyecto IBM Software
Hub original (espacio de nombres) yaml:
openshift.io/sa.scc.supplemental-groups: <xxxxxxxxxx/xxxxx>openshift.io/sa.scc.uid-range: <xxxxxxxxxx/xxxxx>openshift.io/requester: <requester_id>openshift.io/sa.scc.mcs: '<xx>:<xxx>,<xxx>'
- Inicie sesión en Red Hat
OpenShift Container Platform como administrador del clúster.
${OC_LOGIN}Recuerda:OC_LOGINes un alias deloc logincomando. - Elimine la IBM Software Hub instancia.
- Restaurar los Db2 Warehouse volúmenes:
cpd-cli oadp restore create <db2wh_restore-name> \ --from-backup=<db2wh_backup-name> \ --skip-hooks - Comprueba que la restauración se ha completado:
cpd-cli oadp restore list - Cambiar el identificador único del proyecto.
- Editar el IBM Software
Hub proyecto:
oc edit namespace ${PROJECT_CPD_INST_OPERANDS} - Cambia los siguientes valores a los valores originales del paso 1:
openshift.io/sa.scc.supplemental-groups: <xxxxxxxxxx/xxxxx>openshift.io/sa.scc.uid-range: <xxxxxxxxxx/xxxxx>openshift.io/requester: <requester_id>openshift.io/sa.scc.mcs: '<xx>:<xxx>,<xxx>'
Importante: Si no cambia estos valores, IBM Software Hub los pods no se inicializarán correctamente.
- Editar el IBM Software
Hub proyecto:
- Repita el paso anterior en el proyecto ${PROJECT_CPD_INST_OPERATORS}.
- Restaurar los control plane y servicios.
- Ver el estado de la restauración:
cpd-cli oadp restore status <cpd-restore-name> \ --details