How to initialize a new cluster from a S3 backup?

Hi,

How do I create a new cluster and restore it from a S3 backup? I can only find how to restore a cluster from a previously saved backup (https://www.percona.com/doc/kubernetes-operator-for-pxc/backups.html#restore-the-cluster-from-a-previously-saved-backup).

I can not find how to restore a new cluster from a S3 backup on a new k8s cluster. How can I restore if somehow a “perconaxtradbclusterbackups.pxc.percona.com” resource object is lost?

I want to create a new pxc cluster and point it to a S3 backup to restore from. Is that possible?

Best regards,

Rickard

1 Like

After some more research I found a “restore-backup.sh” script in the repository. (https://github.com/percona/percona-xtradb-cluster-operator/blob/master/deploy/backup/restore-backup.sh) . However, this script seem to be outdated. The restore fails when trying to restore a pxc cluster using a s3 url. The script is using a old version of the backup image: percona/percona-xtradb-cluster-operator:0.3.0-backup. The current is percona/percona-xtradb-cluster-operator:1.5.0-pxc8.0-backup.

The script fails on this line: https://github.com/percona/percona-xtradb-cluster-operator/blob/master/deploy/backup/restore-backup.sh#L245

mc -C /tmp/mc cat dest/$backup_bucket/$backup_key. “$backup_bucket/$backup_key” does not exist in the backups that current version of the operator creates.

Are there any plans to update this script to be compatible with the current version of the operator?

1 Like

Hi Rickard,
Yes, you can restore data on newly created cluster.
All you need is a kubenetes pxc-backup object existing inside target namespace with backup path specified in status field like in https://raw.githubusercontent.com/percona/percona-xtradb-cluster-operator/master/e2e-tests/big-data/conf/backup.yml.

Than you need to create a pxc-restore object with reference to backup object like in https://raw.githubusercontent.com/percona/percona-xtradb-cluster-operator/master/e2e-tests/big-data/conf/restore-backup.yml
If everything is correct, pxc cluster will be restored from backup object.

1 Like

Thank you @IvanPylypenko! This is what I was looking for.   
Maybe this should be included in the manual?  

1 Like

@rckrd
Could you please create a ticket for that on https://jira.percona.com ?

1 Like

I was unable to restore a backup from S3, a new backup job was created instead overwriting the values for the s3 url. I have created an issue here: https://jira.percona.com/browse/K8SPXC-437

1 Like

Hi @IvanPylypenko- followed those two links in solution and it restored and 3 pods of pxc are up but it was missing my databases that i have in backup. could you please help me here? thank you so much in advance.

1 Like

Hi Ajay

We need some details about your setup.

  1. Could you please provide logs from operator and the actual restore process?
  2. Is your restore result reproducible? Like you’ve been trying to restore more than once from your backup and the target database does not come up.
1 Like

Hi @IvanPylypenko -below is my back.yaml file and i checked the logs for the backup job and it is taking the latest backup from s3 and creating a backup in cluster.
`apiVersion: pxc.percona.com/v1
kind: PerconaXtraDBClusterBackup
metadata:

finalizers:

- delete-s3-backup

name: backup5
spec:
pxcCluster: pxc-db
storageName: s3-us-east
status:
completed: “2022-03-14T-00:00:00Z”
destination: s3://percona-backups-release-ops/backups/pxc-db-2022-03-14-00:00:00-full
s3:
bucket: s3://percona-backups-release-ops/backups
credentialsSecret: pxc-db-s3-s3-us-east
endpointUrl: https://s3.amazonaws.com
region: us-east-1
state: Succeeded
storageName: s3-us-east`

and upon apply this backup is creating with latest “backup5 pxc-db s3-us-east s3://percona-backups-release-ops/backups/pxc-db-2022-03-29-15:49:28-full Starting 3s”.

so, how can i point it to a specific date since it is creating the backup with latest ? please suggest me here. Thank you.
backuppodlogs.txt (73.0 KB)

1 Like

Hello,

I’ve same result, from new pxc cluster, when I create pxc-backup object with backup path specified in status and object in state “Succeeded” instead of a backup object with
state “Succeeded” a new backup job is created.

backup object :

apiVersion: pxc.percona.com/v1
kind: PerconaXtraDBClusterBackup
metadata:
  name: backup1
spec:
  pxcCluster: pxc-restored
  storageName: s3-my
status:
  completed: "2022-04-04T08:58:28Z"
  destination: s3://s3-my/pxc-restored-2022-04-04-08:58:00-full
  s3:
    bucket: s3-my
    credentialsSecret: s3-my-cred
    endpointUrl: https://s3-my.net/
    region: s3my
  state: Succeeded
  storageName: s3-my
1 Like