Ripristino point - in - time
IBM Cloud® Databases for MySQL offre Point - In - Time Recovery (PITR) per qualsiasi ora negli ultimi 7 giorni. La distribuzione si appoggia continuamente in modo incrementale e può riprodurre le transazioni per portare una nuova distribuzione che viene ripristinata da un backup a qualsiasi punto in quella finestra di 7 giorni di cui hai bisogno.
La scheda Backup dell'interfaccia utente dell'installazione client conserva tutte le informazioni PITR sotto il ripristino Point-in-Time.
Le informazioni incluse sono la prima volta per un PITR. Per scoprire il primo punto di recupero tramite CLI, utilizzare il comando cdb mysql earliest-pitr-timestamp.
ibmcloud cdb mysql earliest-pitr-timestamp <deployment name or CRN>
Per scoprire il primo punto di recupero tramite l'API, utilizzare l'endpoint /deployments/{id}/point_in_time_recovery_data per trovare il primo tempo PITR.
{
"point_in_time_recovery_data": {
"earliest_point_in_time_recovery_time": "2019-09-09T23:16:00Z"
}
}
Ripristino
I backup vengono ripristinati in una nuova distribuzione. Dopo che la nuova distribuzione finisce il provisioning, i tuoi dati nel file di backup vengono ripristinati nella nuova distribuzione. I backup sono anche ripristinabili su tutti gli account, ma solo utilizzando l'API e solo se l'utente che esegue il ripristino ha accesso sia agli account di origine che di destinazione.
Per impostazione predefinita la nuova distribuzione è auto - dimensionata allo stesso disco e allocazione di memoria come deployment di origine al momento del backup da cui si sta ripristinando. Soprattutto nel caso di PITR, potrebbe non essere la dimensione attuale del tuo schieramento. Se è necessario regolare le risorse assegnate alla nuova distribuzione, utilizzare i campi opzionali nella UI, CLI o API per ridimensionare la nuova distribuzione. Assicurati di allocare abbastanza per i tuoi dati e carichi di lavoro, se la distribuzione non è fornita di risorse sufficienti il ripristino fallisce.
Mentre la memoria e la memoria vengono ripristinate allo stesso modo della distribuzione di origine, le configurazioni di istanza specifiche non vengono impostate automaticamente per la nuova istanza. In questo caso, rieseguire la configurazione dopo un ripristino potrebbe essere necessario. Nota qualsiasi modifica di istanza prima di eseguire il ripristino (parametri come shared_buffers, max_connections, deadlock_timeout, archive_timeout e altri) per garantire un'impostazione accurata per l'istanza dopo il completamento del ripristino.
È fondamentale che non si cancella la distribuzione di origine mentre il backup sta ripristinando. Attendere il provisioning della nuova distribuzione e il backup viene ripristinato prima di cancellare la vecchia distribuzione. L'eliminazione di una distribuzione cancella anche i relativi backup, quindi non solo il ripristino avrà esito negativo, potrebbe non essere possibile recuperare il backup.
Nella UI
Per avviare un PITR, inserire il tempo che si desidera ripristinare in Coordinated Universal Time. Se si desidera ripristinare solo al momento disponibile più recente, selezionare quella opzione. Cliccando su Ripristina le opzioni per il tuo ripristino. Inserire un nome, selezionare la versione, la regione e le risorse assegnate per la nuova distribuzione. Fai clic su " Recupera " per avviare la procedura.
Se utilizzi Key Protect e hai una chiave, usa la CLI per recuperare. Viene fornito un comando per la vostra convenienza.
Nella CLI
Il Resource Controller supporta il provisioning delle distribuzioni di database, e il provisioning e il ripristino sono di competenza del Resource Controller CLI. Utilizzare il comando resource service-instance-create.
Per PITR, utilizzare i parametri point_in_time_recovery_time e point_in_time_recovery_deployment_id. point_in_time_recovery_deployment_id è l'ID della distribuzione di origine e point_in_time_recovery_time è la registrazione data / ora in Tempo universale coordinato a cui si desidera ripristinare. Se si desidera ripristinare l'ultimo utilizzo point - in - time disponibile "point_in_time_recovery_time":" ".
ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> <service-id> <region> -p '{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP"}'
Un comando pre - formattato per un backup specifico o PITR è disponibile in vista dettagliata del backup.
I parametri opzionali sono disponibili quando si esegue il ripristino tramite CLI. Utilizzarli se è necessario personalizzare le risorse oppure utilizzare un tasto Key Protect per la crittografia BYOK sulla nuova distribuzione.
ibmcloud resource service-instance-create <SERVICE_INSTANCE_NAME> <service-id> standard <region> <--service-endpoints SERVICE_ENDPOINTS_TYPE> -p
'{"point_in_time_recovery_deployment_id":"DEPLOYMENT_ID", "point_in_time_recovery_time":"TIMESTAMP","key_protect_key":"KEY_PROTECT_KEY_CRN", "members_disk_allocation_mb":"DESIRED_DISK_IN_MB", "members_memory_allocation_mb":"DESIRED_MEMORY_IN_MB", "members_cpu_allocation_count":"NUMBER_OF_CORES"}'
Nell'API
Il controller di risorse supporta il provisioning delle distribuzioni del database e il provisioning e il ripristino sono responsabilità dell'API del controller di risorse. Completare i passi necessari per utilizzare l'API del controller delle risorse prima di utilizzarla per il ripristino da un backup.
Una volta tutte le informazioni, la richiesta di creazione è una POST all'endpoint /resource_instances.
curl -X POST
https://resource-controller.cloud.ibm.com/v2/resource_instances
-H 'Authorization: Bearer <>'
-H 'Content-Type: application/json'
-d '{
"name": "<SERVICE_INSTANCE_NAME>",
"target": "<region>",
"resource_group": "<your-resource-group>",
"resource_plan_id": "<service-id>",
"parameters":{
"point_in_time_recovery_time":"<TIMESTAMP>",
"point_in_time_recovery_deployment_id":"<DEPLOYMENT_ID>"
}
}'
I parametri name, target, resource_group e resource_plan_id sono tutti obbligatori. Il target è la regione in cui si desidera che si trovi la nuova distribuzione, che può essere
una regione diversa dalla distribuzione di origine. I ripristini cross - region sono supportati, tranne il ripristino di un backup eu-de in un'altra regione.
Per PITR, utilizzare i parametri point_in_time_recovery_time e point_in_time_recovery_deployment_id. point_in_time_recovery_deployment_id è l'ID della distribuzione di origine e point_in_time_recovery_time è la data / ora in UTC a cui si desidera ripristinare. Se si desidera ripristinare l'ultimo utilizzo point - in - time disponibile "point_in_time_recovery_time":" ".
Se è necessario regolare le risorse o utilizzare un tasto Key Protect, aggiungere i parametri facoltativi key_protect_key, members_disk_allocation_mb, members_memory_allocation_mb e / o members_cpu_allocation_count e i relativi valori al corpo della richiesta.
Verifica di PITR
Per verificare il tempo di ripristino corretto, controllare i log del database. Il controllo dei registri del database richiede l'impostazione dell'integrazione Logging sulla distribuzione.
Quando si esegue un recupero, i dati vengono ripristinati dal backup incrementale più recente. Eventuali operazioni in sospeso dal log WAL vengono utilizzate per catturare il proprio database fino al momento in cui è stato recuperato. Una volta terminata la ripresa e le transazioni vengono eseguite, i log visualizzano un messaggio. È possibile verificare che i log riportino il seguente messaggio.
LOG: last completed transaction was at log time 2019-09-03 19:40:48.997696+00
Ci sono due scenari in cui il recupero non si presenta nei log.
- La tua distribuzione ha un backup completo recente e non c'è attività dopo che il backup è stato preso che deve essere risuonato.
- Se è stato inserito un tempo per recuperare a quello è dopo il tempo corrente o è passato ultimo punto di recupero orario disponibile.
In entrambi i casi la ripresa è di solito ancora vincente, ma non ci sarà una voce nei log per verificare l'orario esatto in cui il database è stato ripristinato.