Utilizzo dei Db2 Warehouse comandi container - Db2uCluster

È possibile ripristinare un backup snapshot del database Db2 Warehouse mettendo il database in modalità manutenzione e ripristinando gli snapshot del volume.

Informazioni su questa attività

Importante: quando esegui questi passaggi, potresti rischiare di perdere i tuoi dati se non prendi le precauzioni indicate.

Procedura

  1. Imposta una variabile d'ambiente per il tuo Db2uCluster.
    1. Esegui il seguente comando per ottenere il nome del tuo Db2uCluster :
      oc get db2ucluster
    2. Sostituisci <db2ucluster_id> con il nome del tuo Db2uCluster :
      DB2_CR_ID=<db2ucluster_id>
  2. Esegui i seguenti comandi per mettere i tuoi cluster in modalità manutenzione:
    oc annotate db2ucluster $DB2_CR_ID db2u.databases.ibm.com/maintenance-pause-reconcile=true --overwrite
  3. Ridimensiona la tua distribuzione.
    Attenzione: il pod degli strumenti viene utilizzato solo nei casi Db2 Warehouse in cui per una distribuzione vengono utilizzati più nodi. Se si utilizza una distribuzione a Db2 Warehouse nodo singolo, non è necessario eseguire alcun comando che utilizzi TOOLS_DEPLOY.
    DB2U_STS=$(oc get sts --selector="app=${DB2_CR_ID},type=engine" --no-headers | awk '{print $1}'); echo $DB2U_STS
    NUM_REPLICAS=$(oc get sts ${DB2U_STS} -ojsonpath={.spec.replicas})
    ETCD_STS=$(oc get sts --selector="app=${DB2_CR_ID},component=etcd" --no-headers | awk '{print $1}'); echo $ETCD_STS
    oc scale sts ${DB2U_STS} --replicas=0
    oc scale sts ${ETCD_STS} --replicas=0
  4. Copia le definizioni PVC esistenti:
    oc label pvc c-${DB2_CR_ID}-meta app=${DB2_CR_ID}
    oc label pvc c-${DB2_CR_ID}-backup app=${DB2_CR_ID}
    oc label pvc c-${DB2_CR_ID}-share app=${DB2_CR_ID}
    for PVC in $(oc get pvc -l app=$DB2_CR_ID --no-headers | awk '{print $1}'); do oc get pvc $PVC -oyaml > ${PVC}_copy.yaml ; done
  5. Imposta la politica di recupero dei tuoi PV esistenti su retain nel caso in cui qualcosa vada storto:
    for PV in $(oc get pv --no-headers | grep $DB2_CR_ID | awk '{print $1}'); do oc patch pv $PV -p "{\"spec\":{\"persistentVolumeReclaimPolicy\":\"Retain\"}}" ; done
    Importante: verificare manualmente che ogni PV sia impostato su retain altrimenti si rischia di perdere i dati.
  6. Elimina i PVC esistenti:
    oc delete pvc -l app=${DB2_CR_ID}
    ATTENZIONE:
    Eseguire questo passaggio solo se si è certi di poter ripristinare le istantanee dei volumi e se le politiche di recupero PV sono impostate su retain. Se non sei sicuro, prova invece il passaggio successivo ripristinando prima le istantanee dei volumi su PVC fittizi con nomi diversi.
  7. Ripristina il tuo snapshot del volume su PVC con lo stesso nome e namespace che hai copiato nel passaggio 4.
  8. Ampliate la vostra implementazione:
    Attenzione: il pod degli strumenti viene utilizzato solo nei casi Db2 Warehouse in cui per una distribuzione vengono utilizzati più nodi. Se si utilizza una distribuzione a Db2 Warehouse nodo singolo, non è necessario eseguire alcun comando che utilizzi TOOLS_DEPLOY.
    oc scale sts ${ETCD_STS} --replicas=${NUM_REPLICAS}
    oc scale sts ${DB2U_STS} --replicas=${NUM_REPLICAS}
  9. Dopo aver ripristinato il database, disattiva la sospensione della scrittura.
    CATALOG_POD=$(oc get po -l name=dashmpp-head-0,app=${DB2_CR_ID} --no-headers | awk '{print $1}')
    oc exec -it ${CATALOG_POD} -- manage_snapshots --action restore
  10. Esci dalla modalità manutenzione.
    oc annotate db2ucluster $DB2_CR_ID db2u.databases.ibm.com/maintenance-pause-reconcile=false --overwrite