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
- Imposta una variabile d'ambiente per il tuo Db2uCluster.
- Esegui il seguente comando per ottenere il nome del tuo Db2uCluster :
oc get db2ucluster - Sostituisci <db2ucluster_id> con il nome del tuo Db2uCluster :
DB2_CR_ID=<db2ucluster_id>
- Esegui il seguente comando per ottenere il nome del tuo Db2uCluster :
- 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 - 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_STSNUM_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_STSoc scale sts ${DB2U_STS} --replicas=0oc scale sts ${ETCD_STS} --replicas=0 - 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 - Imposta la politica di recupero dei tuoi PV esistenti su
retainnel 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\"}}" ; doneImportante: verificare manualmente che ogni PV sia impostato suretainaltrimenti si rischia di perdere i dati. - 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 suretain. Se non sei sicuro, prova invece il passaggio successivo ripristinando prima le istantanee dei volumi su PVC fittizi con nomi diversi. - Ripristina il tuo snapshot del volume su PVC con lo stesso nome e namespace che hai copiato nel passaggio 4.I passaggi variano a seconda del provider:
- 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} - 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 - Esci dalla modalità manutenzione.
oc annotate db2ucluster $DB2_CR_ID db2u.databases.ibm.com/maintenance-pause-reconcile=false --overwrite