{"id":8123,"date":"2020-01-31T00:54:44","date_gmt":"2020-01-31T08:54:44","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8123"},"modified":"2025-06-13T17:14:27","modified_gmt":"2025-06-14T00:14:27","slug":"backup-restore-of-couchbase-cluster-in-a-kubernetes-environment","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","title":{"rendered":"Backup\/restaura\u00e7\u00e3o do Couchbase no ambiente K8s"},"content":{"rendered":"<h2 class=\"wp-block-heading\">1. Introdu\u00e7\u00e3o<\/h2>\r\n\r\n\r\n\r\n<p>O backup peri\u00f3dico dos dados \u00e9 uma parte importante de qualquer implanta\u00e7\u00e3o de banco de dados de produ\u00e7\u00e3o, o que ajuda a garantir a recupera\u00e7\u00e3o dos dados em caso de desastre e tamb\u00e9m minimiza a inconsist\u00eancia dos dados quando uma restaura\u00e7\u00e3o \u00e9 necess\u00e1ria.<\/p>\r\n\r\n\r\n\r\n<p>O Couchbase fornece <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr.html\">cbbackupmgr<\/a> que foi aprimorado ao longo dos anos para se tornar uma ferramenta de backup e restaura\u00e7\u00e3o de n\u00edvel empresarial para fazer backup de grandes conjuntos de dados com desempenho muito mais alto; portanto, recomendamos que essa ferramenta seja usada na produ\u00e7\u00e3o. Vale a pena mencionar que, em <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/enhanced-data-protection-with-couchbase-6-5\/\">Servidor Couchbase 6.5<\/a> reformulamos completamente o mecanismo de armazenamento de backup e introduzimos uma taxa de compacta\u00e7\u00e3o mais alta, o que resultou em um desempenho de backup-restaura\u00e7\u00e3o muito melhor e reduziu os requisitos de armazenamento para cada instant\u00e2neo de backup, resultando em economia de custos.<\/p>\r\n\r\n\r\n<hr class=\"wp-block-separator\" \/>\r\n\r\n\r\n<h2 class=\"wp-block-heading\">2. Melhores pr\u00e1ticas<\/h2>\r\n\r\n\r\n\r\n<p>Embora <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr.html\">cbbackupmgr<\/a> existe em Couchbase_HOME, ele \u00e9 <strong>n\u00e3o<\/strong> Recomenda-se executar esse utilit\u00e1rio em qualquer um dos n\u00f3s ativos do cluster. Como ele estaria competindo por recursos de solicita\u00e7\u00f5es ativas, poderia prejudicar o desempenho do seu sistema de banco de dados.<\/p>\r\n\r\n\r\n\r\n<p>Portanto, \u00e9 uma pr\u00e1tica recomendada fornecer uma inst\u00e2ncia separada (para necessidades de backup e restaura\u00e7\u00e3o) com apenas os bin\u00e1rios do Couchbase instalados, mas sem servi\u00e7os do Couchbase em execu\u00e7\u00e3o, para que os recursos possam ser mais bem gerenciados para o cluster do banco de dados e o n\u00f3 de backup.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1512\" height=\"681\" class=\"wp-image-8124\" src=\"https:\/\/i0.wp.com\/blog.couchbase.com\/wp-content\/uploads\/2020\/01\/backup-setup.png?fit=900%2C405&amp;ssl=1\" alt=\"Backup Manager\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png 1512w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-300x135.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-1024x461.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-768x346.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-1320x595.png 1320w\" sizes=\"auto, (max-width: 1512px) 100vw, 1512px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Como pode ser visto na figura acima, um n\u00f3 de backup\/restaura\u00e7\u00e3o separado \u00e9 provisionado al\u00e9m de um cluster do Couchbase de cinco n\u00f3s. Outra pr\u00e1tica recomendada \u00e9 alocar armazenamento suficiente para manter pelo menos 5x o tamanho do conjunto de dados do Couchbase, de modo que haja espa\u00e7o suficiente para armazenar os snapshots necess\u00e1rios do banco de dados para atender aos requisitos de <a href=\"https:\/\/en.wikipedia.org\/wiki\/Recovery_point_objective\">Objetivo do ponto de recupera\u00e7\u00e3o<\/a> (RPO) da empresa.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">3. Estrat\u00e9gia de backup<\/h2>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr.html\">cbbackupmgr<\/a> fornece um conjunto de comandos que permite que os DBAs implementem uma estrat\u00e9gia de backup que atenda melhor \u00e0s suas necessidades comerciais. Veja a seguir alguns dos comandos:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>cbbackupmgr backup<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-backup.html\">Faz o backup dos dados de um cluster do Couchbase<\/a>.<\/li>\r\n<li><strong>cbbackupmgr compact<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-compact.html\">Compacta um backup<\/a><\/li>\r\n<li><strong>cbbackupmgr merge<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-merge.html\">Mescla backups<\/a><\/li>\r\n<li><strong>Configura\u00e7\u00e3o do cbbackupmgr<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-config.html\">Cria um novo reposit\u00f3rio de backup<\/a><\/li>\r\n<li><strong>Lista cbbackupmgr<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-info.html\">Lista os backups no arquivo<\/a><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Usando esses comandos, \u00e9 poss\u00edvel implementar qualquer uma das tr\u00eas estrat\u00e9gias de backup mencionadas na se\u00e7\u00e3o <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-strategies.html\">documenta\u00e7\u00e3o<\/a>. No exemplo abaixo, descreveremos <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-strategies.html#periodic-merge\">Mesclagem peri\u00f3dica<\/a> no contexto do Couchbase Cluster em execu\u00e7\u00e3o no ambiente Kubernetes.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">4. Mesclagem peri\u00f3dica<\/h3>\r\n\r\n\r\n\r\n<p>Essa estrat\u00e9gia de backup deve ter a menor sobrecarga de banco de dados, pois requer o menor tempo poss\u00edvel para fazer o backup das altera\u00e7\u00f5es e praticamente nenhum consumo de recursos do cluster do banco de dados para consolidar os dados durante o processo de compacta\u00e7\u00e3o e mesclagem (como ocorre no n\u00f3 de backup).<\/p>\r\n\r\n\r\n\r\n<p>Em um n\u00edvel elevado, veja como <em>Mesclagem peri\u00f3dica<\/em> estrat\u00e9gia funciona:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Configurar o reposit\u00f3rio de backup usando <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-config.html\">Configura\u00e7\u00e3o do cbbackupmgr<\/a><\/li>\r\n<li>Fa\u00e7a um backup incremental do banco de dados (no reposit\u00f3rio) usando <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-backup.html\">cbbackupmgr backup<\/a><\/li>\r\n<li>Executar a compacta\u00e7\u00e3o de backup usando <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-compact.html\">cbbackupmgr compact<\/a> para que o espa\u00e7o em disco possa ser usado com efici\u00eancia.<\/li>\r\n<li>Mesclar os backups mais antigos usando <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-merge.html\">cbbackupmgr merge<\/a> para que o n\u00famero de backups no reposit\u00f3rio n\u00e3o cres\u00e7a infinitamente e os requisitos de espa\u00e7o permane\u00e7am sob controle.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p>Observa\u00e7\u00e3o: As etapas acima s\u00e3o capturadas no <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/sh\/backup-with-periodic-merge.sh\">backup-com-periodic-merge.sh<\/a> que usaremos posteriormente em nossa configura\u00e7\u00e3o do Kubernetes para fazer backups peri\u00f3dicos.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">5. Backup dos dados do Couchbase<\/h2>\r\n\r\n\r\n\r\n<p>No meu \u00faltimo blog sobre o Couchbase Autonomous Operator, descrevi passo a passo como <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/deploy-self-healing-highly-available-couchbase-cluster-on-kubernetes-using-persistent-volumes\/\">como implantar um cluster do Couchbase com autocorre\u00e7\u00e3o e alta disponibilidade usando Persistent Volumes<\/a>. Supondo que voc\u00ea tenha seguido essas etapas e j\u00e1 tenha implantado o cluster, as etapas abaixo descrever\u00e3o como voc\u00ea pode configurar o recurso de backup autom\u00e1tico usando o <code>cronjob<\/code>. \u00c9 considerada uma pr\u00e1tica recomendada fazer backups regulares dos dados e tamb\u00e9m testar a restaura\u00e7\u00e3o de backups para confirmar o processo de restaura\u00e7\u00e3o antes que a recupera\u00e7\u00e3o de desastres seja realmente necess\u00e1ria.<\/p>\r\n\r\n\r\n\r\n<p>Essa funcionalidade n\u00e3o \u00e9 fornecida pelo Operador e \u00e9 deixada para o administrador do cluster definir pol\u00edticas de backup e testar a restaura\u00e7\u00e3o de dados. Esta se\u00e7\u00e3o descreve alguns padr\u00f5es comuns que podem ser empregados para executar as fun\u00e7\u00f5es necess\u00e1rias.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.1. Criar classe de armazenamento<\/h3>\r\n\r\n\r\n\r\n<p>As defini\u00e7\u00f5es de recursos do Kubernetes abaixo ilustram um arranjo t\u00edpico para backup que salva o estado de todo o cluster. Primeiro, precisar\u00edamos definir o recurso <code>Classe de armazenamento<\/code> que ser\u00e1 formatado usando <code>xfs<\/code> para obter o melhor desempenho poss\u00edvel.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># Create storage class for backup\/restore operations\r\napiVersion: storage.k8s.io\/v1\r\nkind: StorageClass\r\nmetadata:\r\n  labels:\r\n    k8s-addon: storage-aws.addons.k8s.io\r\n  name: gp2-backup-storage\r\nparameters:\r\n  type: gp2\r\n  fsType: xfs\r\nprovisioner: kubernetes.io\/aws-ebs\r\nreclaimPolicy: Retain\r\nvolumeBindingMode: WaitForFirstConsumer<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Usando a defini\u00e7\u00e3o acima em <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/backup-sc.yaml\">backup-sc.yaml<\/a> podemos criar uma classe de armazenamento como esta:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl create -f backup-sc.yaml -n emart<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.2. Criar volume persistente<\/h3>\r\n\r\n\r\n\r\n<p>Um volume persistente \u00e9 reivindicado para manter os dados seguros no caso de uma interrup\u00e7\u00e3o. Voc\u00ea precisar\u00e1 planejar o tamanho da reivindica\u00e7\u00e3o com base no tamanho esperado do conjunto de dados, no n\u00famero de dias de reten\u00e7\u00e3o de dados e se os backups incrementais s\u00e3o usados.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># Define backup storage volume\r\nkind: PersistentVolumeClaim\r\napiVersion: v1\r\nmetadata:\r\n  name: backup-pvc\r\nspec:\r\n  storageClassName: gp2-backup-storage\r\n  resources:\r\n    requests:\r\n      storage: 50Gi\r\n  accessModes:\r\n    - ReadWriteOnce<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Salvar a defini\u00e7\u00e3o acima em <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/backup-pvc.yaml\">backup-pvc.yaml<\/a> e criar a reivindica\u00e7\u00e3o:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl create -f backup-pvc.yaml -n emart<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.3. Configurar o reposit\u00f3rio de backup<\/h3>\r\n\r\n\r\n\r\n<p>Antes de come\u00e7armos a tirar instant\u00e2neos de nossos dados periodicamente, precisamos configurar o local do arquivo de backup. \u00c9 criado um trabalho para montar o volume persistente e inicializar um reposit\u00f3rio de backup. O reposit\u00f3rio \u00e9 denominado <code>couchbase<\/code> que ser\u00e1 mapeado para o nome do cluster em especifica\u00e7\u00f5es posteriores.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># Create a backup repository\r\nkind: Job\r\napiVersion: batch\/v1\r\nmetadata:\r\n  name: couchbase-cluster-backup-config\r\nspec:\r\n  template:\r\n    spec:\r\n      containers:\r\n        - name: backup-config\r\n          image: couchbase\/server:enterprise-6.5.0\r\n          command: [\"cbbackupmgr\", \"config\", \"--archive\", \"\/backups\", \"--repo\", \"couchbase\"]\r\n          volumeMounts:\r\n            - name: \"couchbase-cluster-backup-volume\"\r\n              mountPath: \"\/backups\"\r\n      volumes:\r\n        - name: couchbase-cluster-backup-volume\r\n          persistentVolumeClaim:\r\n            claimName: backup-pvc\r\n      restartPolicy: Never<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Salvar a defini\u00e7\u00e3o acima em <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/config.yaml\">config.yaml<\/a> e criar um reposit\u00f3rio de backup:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl create -f config.yaml -n emart<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.3. Executar backup como CronJob<\/h3>\r\n\r\n\r\n\r\n<p>Crie um cronjob conforme descrito na se\u00e7\u00e3o <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/periodic-backup.yaml\">periodic-backup.yaml<\/a> que faz um backup do cluster do Couchbase: a) baixando o script de backup no pod; b) executando o script e fazendo o backup dos dados do cluster usando o volume de armazenamento persistente.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>kind: CronJob\r\napiVersion: batch\/v1beta1\r\nmetadata:\r\n  name: couchbase-cluster-backup-create\r\nspec:\r\n  schedule: \"*\/5 * * * *\"\r\n  jobTemplate:\r\n    spec:\r\n      template:\r\n        spec:\r\n          containers:\r\n            #Delete backup-with-periodic-merge script so that new one can be pulled with each run\r\n            - name: delete-script\r\n              image: couchbase\/server:enterprise-6.5.0\r\n              command: [\"rm\", \"\/backups\/backup-with-periodic-merge.sh\"]\r\n              volumeMounts:\r\n                - name: \"couchbase-cluster-backup-volume\"\r\n                  mountPath: \"\/backups\"\r\n          initContainers:\r\n            #Download the backup script from the git repo\r\n            - name: wget-backup-script\r\n              image: couchbase\/server:enterprise-6.5.0\r\n              command: [\"wget\", \"https:\/\/raw.githubusercontent.com\/couchbaselabs\/cboperator-hol\/master\/eks\/cb-operator-guide\/files\/sh\/backup-with-periodic-merge.sh\", \"-P\", \"\/backups\/.\"]\r\n              volumeMounts:\r\n                - name: \"couchbase-cluster-backup-volume\"\r\n                  mountPath: \"\/backups\"\r\n            #Change the mod of the backup script to execution\r\n            - name: chmod-script\r\n              image: couchbase\/server:enterprise-6.5.0\r\n              command: [\"chmod\", \"700\", \"\/backups\/backup-with-periodic-merge.sh\"]\r\n              volumeMounts:\r\n                - name: \"couchbase-cluster-backup-volume\"\r\n                  mountPath: \"\/backups\"\r\n            #Run the script so it can do a) Backup b) Compaction c) Merge with each snapshot\r\n            - name: periodic-merge\r\n              image: couchbase\/server:enterprise-6.5.0\r\n              command: [\"sh\", \"-c\" ,\"\/backups\/backup-with-periodic-merge.sh --cluster cbdemo-srv.emart.svc\"]\r\n              volumeMounts:\r\n                - name: \"couchbase-cluster-backup-volume\"\r\n                  mountPath: \"\/backups\"\r\n          volumes:\r\n            - name: couchbase-cluster-backup-volume\r\n              persistentVolumeClaim:\r\n                claimName: backup-pvc\r\n          restartPolicy: Never<\/code><\/pre>\r\n\r\n\r\n\r\n<p>No YAML acima, estamos executando o backup a cada 5 minutos, mas voc\u00ea pode alterar a frequ\u00eancia para que ele possa atender ao RPO da sua empresa. Como nosso cluster do Couchbase est\u00e1 implantado no namespace <code>emart<\/code> portanto, implantaremos o cronjob de backup no mesmo namespace:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl apply -f periodic-backup.yaml -n emart\r\n\r\ncronjob.batch\/couchbase-cluster-backup-create created<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.4 Validar trabalho de backup peri\u00f3dico<\/h3>\r\n\r\n\r\n\r\n<p>Nesse ponto, voc\u00ea pode come\u00e7ar a observar o cronjob entrando em a\u00e7\u00e3o a cada 5 minutos. E assim que ele se tornar ativo, executar\u00e1 tr\u00eas <code>initContainers<\/code> (wget-backup-script, chmod-script, periodic-merge) em ordem sequencial, seguidos pelos comandos <code>cont\u00eaineres<\/code> (script de exclus\u00e3o):<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl get pods -n emart -w\r\n\r\nNAME                                            READY     STATUS    RESTARTS   AGE\r\nbackup-node                                     1\/1       Running   0          1d\r\ncbdemo-0000                                     1\/1       Running   0          5d\r\ncbdemo-0001                                     1\/1       Running   0          5d\r\ncbdemo-0002                                     1\/1       Running   0          5d\r\ncbdemo-0003                                     1\/1       Running   0          5d\r\ncbdemo-0004                                     1\/1       Running   0          5d\r\ncouchbase-operator-7654d844cb-gn4bw             1\/1       Running   0          5d\r\ncouchbase-operator-admission-7ff868f54c-5pklx   1\/1       Running   0          5d\r\n\r\ncouchbase-cluster-backup-create-1580357820-tz2hg   0\/1       Pending   0         2s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg   0\/1       Pending   0         2s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg   0\/1       Init:0\/3   0         2s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg   0\/1       Init:1\/3   0         3s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg   0\/1       Init:2\/3   0         4s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg   0\/1       Init:2\/3   0         6s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg   0\/1       PodInitializing   0         27s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg   0\/1       Completed   0         30s<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Voc\u00ea pode visualizar os registros de cada <code>initContainers<\/code> depois que o pod exibir o status <strong>Conclu\u00eddo<\/strong>. O <code>initContainers<\/code> em que estamos interessados \u00e9 chamado de <code>mesclagem peri\u00f3dica<\/code>:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl logs couchbase-cluster-backup-create-1580357820-tz2hg -n emart -c periodic-merge\r\n\r\n\r\n---------------------------------------------------------\r\nBEGIN STEP 1: BACKUP : Thu Jan 30 04:17:12 UTC 2020\r\nRunning backup...\r\n Command:  cbbackupmgr backup  --archive \/backups --repo couchbase --cluster couchbase:\/\/cbdemo-srv.emart.svc --username Administrator --password password --threads 2\r\nWarning: Progress bar disabled because terminal width is less than 80 characters\r\nBackup successfully completed\r\nBacked up bucket \"gamesim-sample\" succeeded\r\nMutations backedup; 586, Mutations failed to backup: 0\r\nDeletions backedup: 0, Deletions failed to backup: 0\r\nBacked up bucket \"travel-sample\" succeeded\r\nMutations backedup; 0, Mutations failed to backup: 0\r\nDeletions backedup: 0, Deletions failed to backup: 0\r\n---------------------------------------------------------\r\nBEGIN STEP 2: COMPACTION : Thu Jan 30 04:17:20 UTC 2020\r\nList of backup snapshots ...\r\n\r\n2020-01-28T23_01_37.592188562Z\r\n2020-01-28T23_03_34.160387835Z\r\n2020-01-28T23_05_08.103740281Z\r\n2020-01-30T04_17_12.702824188Z\r\nLast backup name is: 2020-01-30T04_17_12.702824188Z\r\nCompacting the backup...\r\n Command: cbbackupmgr compact --archive \/backups --repo couchbase --backup 2020-01-30T04_17_12.702824188Z\r\nCompaction succeeded, 0 bytes freed\r\n---------------------------------------------------------\r\nBEGIN STEP 3: Merging old backup : Thu Jan 30 04:17:24 UTC 2020\r\n\r\n Size      Items          Name\r\n 604.93MB  -              + couchbase\r\n 192.00MB  -                  + 2020-01-28T23_01_37.592188562Z\r\n 192.00MB  -                      + beer-sample\r\n 37B       0                          analytics.json\r\n 414B      0                          bucket-config.json\r\n 192.00MB  7303                       + data\r\n 192.00MB  7303                           1024 Shards\r\n 2B        0                          full-text.json\r\n 1.94KB    1                          gsi.json\r\n 784B      1                          views.json\r\n 192.02MB  -                  + 2020-01-28T23_03_34.160387835Z\r\n 192.02MB  -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 192.00MB  31591                      + data\r\n 192.00MB  31591                          1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\n 64.02MB   -                  + 2020-01-28T23_05_08.103740281Z\r\n 64.02MB   -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 64.00MB   0                          + data\r\n 64.00MB   0                              1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\n 156.89MB  -                  + 2020-01-30T04_17_12.702824188Z\r\n 92.88MB   -                      + gamesim-sample\r\n 0B        0                          analytics.json\r\n 417B      0                          bucket-config.json\r\n 92.88MB   586                        + data\r\n 92.88MB   586                            1024 Shards\r\n 2B        0                          full-text.json\r\n 1.95KB    1                          gsi.json\r\n 501B      1                          views.json\r\n 64.02MB   -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 64.00MB   0                          + data\r\n 64.00MB   0                              1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\nStart 2020-01-28T23_01_37.592188562Z, END 2020-01-28T23_03_34.160387835Z\r\nMerging old backups...\r\n Command: cbbackupmgr merge --archive \/backups --repo couchbase --start 2020-01-28T23_01_37.592188562Z --end 2020-01-28T23_03_34.160387835Z\r\n\r\nMerge completed successfully\r\n\r\nSize      Items          Name\r\n 412.92MB  -              + couchbase\r\n 192.02MB  -                  + 2020-01-28T23_03_34.160387835Z\r\n 192.02MB  -                      + travel-sample\r\n 37B       0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 192.00MB  31591                      + data\r\n 192.00MB  31591                          1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\n 64.02MB   -                  + 2020-01-28T23_05_08.103740281Z\r\n 64.02MB   -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 64.00MB   0                          + data\r\n 64.00MB   0                              1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\n 156.89MB  -                  + 2020-01-30T04_17_12.702824188Z\r\n 92.88MB   -                      + gamesim-sample\r\n 0B        0                          analytics.json\r\n 417B      0                          bucket-config.json\r\n 92.88MB   586                        + data\r\n 92.88MB   586                            1024 Shards\r\n 2B        0                          full-text.json\r\n 1.95KB    1                          gsi.json\r\n 501B      1                          views.json\r\n 64.02MB   -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 64.00MB   0                          + data\r\n 64.00MB   0                              1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Observa\u00e7\u00e3o: como pode ser visto nos registros acima, antes da etapa de mesclagem, havia quatro backups dispon\u00edveis e, ap\u00f3s a mesclagem, h\u00e1 tr\u00eas instant\u00e2neos de backup que s\u00e3o chamados de <code>PONTOS DE RESTAURA\u00c7\u00c3O<\/code> em <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/sh\/backup-with-periodic-merge.sh\">backup-com-periodic-merge.sh<\/a> roteiro.<\/p>\r\n\r\n\r\n\r\n<p>Isso conclui a se\u00e7\u00e3o de backup.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">6. Restaura\u00e7\u00e3o<\/h2>\r\n\r\n\r\n\r\n<p>Assim como em um backup, podemos restaurar os dados em um novo cluster do Couchbase com um Kubernetes Job.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>kind: Job\r\napiVersion: batch\/v1\r\nmetadata:\r\n  name: couchbase-cluster-restore\r\nspec:\r\n  template:\r\n    spec:\r\n      containers:\r\n        - name: couchbase-cluster-restore\r\n          image: couchbase\/server:enterprise-6.0.2\r\n          command: [\"cbbackupmgr\", \"restore\", \"--archive\", \"\/backups\", \"--repo\", \"couchbase\", \"--cluster\", \"couchbase:\/\/cbdemo-srv.emart.svc\", \"--username\", \"Administrator\", \"--password\", \"password\"]\r\n          volumeMounts:\r\n            - name: \"couchbase-cluster-backup-volume\"\r\n              mountPath: \"\/backups\"\r\n      volumes:\r\n        - name: couchbase-cluster-backup-volume\r\n          persistentVolumeClaim:\r\n            claimName: backup-pvc\r\n      restartPolicy: Never<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Se preferir criar um pod de backup-restaura\u00e7\u00e3o tempor\u00e1rio para ver quais backups est\u00e3o dispon\u00edveis ou para solucionar um problema, voc\u00ea pode montar o mesmo pod <code>persistentVolumeClaim<\/code> para um novo pod. Aqui est\u00e1 a defini\u00e7\u00e3o do pod que pode ser armazenada em <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/backup-pod.yaml\">backup-pod.yaml<\/a>:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>apiVersion: v1\r\nkind: Pod\r\nmetadata:\r\n  name: backup-node\r\nspec:  # specification of the pod's contents\r\n  containers:\r\n    - name: backup-pod\r\n      image: couchbase\/server:enterprise-6.5.0\r\n      # Just spin &amp; wait forever\r\n      command: [ \"\/bin\/bash\", \"-c\", \"--\" ]\r\n      args: [ \"while true; do sleep 30; done;\" ]\r\n      volumeMounts:\r\n        - name: \"couchbase-cluster-backup-volume\"\r\n          mountPath: \"\/backups\"\r\n  volumes:\r\n    - name: couchbase-cluster-backup-volume\r\n      persistentVolumeClaim:\r\n        claimName: backup-pvc\r\n  restartPolicy: Never<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Execute o kubectl para abrir o pod temporariamente:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl apply -f br\/backup-pod.yaml -n emart\r\n$ kubectl get pods -n emart\r\n\r\nNAME                                            READY     STATUS    RESTARTS   AGE\r\nbackup-node                                     1\/1       Running   0          3d1h\r\ncbdemo-0000                                     1\/1       Running   0          7d1h\r\ncbdemo-0001                                     1\/1       Running   0          7d1h\r\ncbdemo-0002                                     1\/1       Running   0          7d1h\r\ncbdemo-0003                                     1\/1       Running   0          7d1h\r\ncbdemo-0004                                     1\/1       Running   0          7d1h\r\ncouchbase-operator-7654d844cb-gn4bw             1\/1       Running   0          7d2h\r\ncouchbase-operator-admission-7ff868f54c-5pklx   1\/1       Running   0          7d2h<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Quando o n\u00f3 de backup estiver em execu\u00e7\u00e3o, poderemos fazer login nesse pod:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl exec -it backup-node -n emart -- \/bin\/bash\r\n\r\nroot@backup-node:\/<\/code><\/pre>\r\n\r\n\r\n\r\n<p>E executar <code>Lista cbbackupmgr<\/code> para visualizar os backups existentes:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># cbbackupmgr list --repo couchbase --archive \/backups\r\n\r\nSize      Items          Name\r\n256.04MB  -              + couchbase\r\n0B        -                  + 2020-01-30T04_17_12.702824188Z\r\n0B        -                      + gamesim-sample\r\n0B        0                          analytics.json\r\n0B        0                          + data\r\n0B        0                              Error: no data shards were found\r\n0B        0                          full-text.json\r\n0B        0                          gsi.json\r\n0B        0                          views.json\r\n128.02MB  -                  + 2020-01-30T04_18_13.021340423Z\r\n....<\/code><\/pre>\r\n\r\n\r\n\r\n<p>E voc\u00ea tamb\u00e9m pode executar <code>cbbackupmgr restore<\/code> manualmente:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># cbbackupmgr restore --archive \/backups --repo couchbase --cluster couchbase:\/\/cbdemo-srv.emart.svc --username Administrator --password password<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Quando terminar de restaurar, basta excluir o pod:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl delete -f backup-pod.yaml -n emart<\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">7. Conclus\u00e3o<\/h2>\r\n\r\n\r\n\r\n<p>Explicamos passo a passo como \u00e9 poss\u00edvel configurar um cronjob de backup, que automatiza o processo de fazer o backup peri\u00f3dico em um intervalo predefinido. Usamos um <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/sh\/backup-with-periodic-merge.sh\">backup-com-periodic-merge.sh<\/a> que executa a) backup, b) compacta\u00e7\u00e3o e c) mesclagem em um \u00fanico script. Esse script foi ent\u00e3o usado no <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/periodic-backup.yaml\">periodic-backup.yaml<\/a> que automatizou o processo de fazer backup no ambiente do Kubernetes. Esperamos que voc\u00ea use as pr\u00e1ticas recomendadas descritas neste blog e planeje fazer backups regulares, bem como validar esses backups usando o comando restore regularmente.<\/p>","protected":false},"excerpt":{"rendered":"<p>1. Introduction Periodic backup of data is an important part of any production database deployment, which helps ensure data recovery in the event of a disaster and it also minimizes data inconsistency when a restore is required. Couchbase provides cbbackupmgr [&hellip;]<\/p>","protected":false},"author":33279,"featured_media":8124,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9416,1821,2225,1816,2322],"tags":[10124,1933,1245,2341,2339,2354,1545,2138],"ppma_author":[9090],"class_list":["post-8123","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-backup","category-couchbase-architecture","category-cloud","category-couchbase-server","category-kubernetes","tag-amazon-web-services-aws","tag-backup","tag-cloud","tag-cncf","tag-eks","tag-k8","tag-kubernetes","tag-kubernetes-operator"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Backup: Restore in K8s (Kubernetes) Environment<\/title>\n<meta name=\"description\" content=\"Couchbase\u2019s high-performance backup tool for large datasets will help you ensure data safety with improved compression for cost-effective storage.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Backup \/ Restore in K8s Environment\" \/>\n<meta property=\"og:description\" content=\"Couchbase\u2019s high-performance backup tool for large datasets will help you ensure data safety with improved compression for cost-effective storage.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-31T08:54:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:14:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1512\" \/>\n\t<meta property=\"og:image:height\" content=\"681\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\"},\"author\":{\"name\":\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/21c735da109667147c580bb2cb351c1c\"},\"headline\":\"Couchbase Backup \/ Restore in K8s Environment\",\"datePublished\":\"2020-01-31T08:54:44+00:00\",\"dateModified\":\"2025-06-14T00:14:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\"},\"wordCount\":1185,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\",\"keywords\":[\"Amazon Web Services (AWS)\",\"backup\",\"cloud\",\"CNCF\",\"EKS\",\"K8\",\"kubernetes\",\"kubernetes operator\"],\"articleSection\":[\"Backup\",\"Couchbase Architecture\",\"Couchbase Capella\",\"Couchbase Server\",\"Kubernetes\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\",\"name\":\"Couchbase Backup: Restore in K8s (Kubernetes) Environment\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\",\"datePublished\":\"2020-01-31T08:54:44+00:00\",\"dateModified\":\"2025-06-14T00:14:27+00:00\",\"description\":\"Couchbase\u2019s high-performance backup tool for large datasets will help you ensure data safety with improved compression for cost-effective storage.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\",\"width\":1512,\"height\":681},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Backup \/ Restore in K8s Environment\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/21c735da109667147c580bb2cb351c1c\",\"name\":\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5e9708314822fac560c43a5fbdc9b74f\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g\",\"caption\":\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\"},\"description\":\"Anuj Sahni is a seasoned cloud and solutions architecture leader with over two decades of experience designing scalable, high-performance enterprise applications across AWS, Azure, and GCP. Currently part of the Capella team at Couchbase, he helps organizations modernize their applications and navigate cloud migration using cloud-native technologies. Prior to Couchbase, Anuj was Principal Product Manager at Oracle, where he led strategic initiatives for Oracle NoSQL Database and Oracle Service Cloud, focusing on distributed, always-available data platforms. He holds a Master\u2019s in Electrical and Computer Engineering from the University of Florida\u00a0and is an active thought leader in the data architecture space.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/anuj-sahni-6a80b617\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/anujsahni\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Backup: Restore in K8s (Kubernetes) Environment","description":"A ferramenta de backup de alto desempenho do Couchbase para grandes conjuntos de dados o ajudar\u00e1 a garantir a seguran\u00e7a dos dados com compacta\u00e7\u00e3o aprimorada para um armazenamento econ\u00f4mico.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","og_locale":"pt_BR","og_type":"article","og_title":"Couchbase Backup \/ Restore in K8s Environment","og_description":"Couchbase\u2019s high-performance backup tool for large datasets will help you ensure data safety with improved compression for cost-effective storage.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-01-31T08:54:44+00:00","article_modified_time":"2025-06-14T00:14:27+00:00","og_image":[{"width":1512,"height":681,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","type":"image\/png"}],"author":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/"},"author":{"name":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/21c735da109667147c580bb2cb351c1c"},"headline":"Couchbase Backup \/ Restore in K8s Environment","datePublished":"2020-01-31T08:54:44+00:00","dateModified":"2025-06-14T00:14:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/"},"wordCount":1185,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","keywords":["Amazon Web Services (AWS)","backup","cloud","CNCF","EKS","K8","kubernetes","kubernetes operator"],"articleSection":["Backup","Couchbase Architecture","Couchbase Capella","Couchbase Server","Kubernetes"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","url":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","name":"Couchbase Backup: Restore in K8s (Kubernetes) Environment","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","datePublished":"2020-01-31T08:54:44+00:00","dateModified":"2025-06-14T00:14:27+00:00","description":"A ferramenta de backup de alto desempenho do Couchbase para grandes conjuntos de dados o ajudar\u00e1 a garantir a seguran\u00e7a dos dados com compacta\u00e7\u00e3o aprimorada para um armazenamento econ\u00f4mico.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","width":1512,"height":681},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Backup \/ Restore in K8s Environment"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/21c735da109667147c580bb2cb351c1c","name":"Anuj Sahni, L\u00edder de Arquitetura de Nuvem e Solu\u00e7\u00f5es, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5e9708314822fac560c43a5fbdc9b74f","url":"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g","caption":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase"},"description":"Anuj Sahni is a seasoned cloud and solutions architecture leader with over two decades of experience designing scalable, high-performance enterprise applications across AWS, Azure, and GCP. Currently part of the Capella team at Couchbase, he helps organizations modernize their applications and navigate cloud migration using cloud-native technologies. Prior to Couchbase, Anuj was Principal Product Manager at Oracle, where he led strategic initiatives for Oracle NoSQL Database and Oracle Service Cloud, focusing on distributed, always-available data platforms. He holds a Master\u2019s in Electrical and Computer Engineering from the University of Florida\u00a0and is an active thought leader in the data architecture space.","sameAs":["https:\/\/www.linkedin.com\/in\/anuj-sahni-6a80b617"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/anujsahni\/"}]}},"authors":[{"term_id":9090,"user_id":33279,"is_guest":0,"slug":"anujsahni","display_name":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g","author_category":"1","last_name":"Sahni, Cloud and Solutions Architecture Leader, Couchbase","first_name":"Anuj","job_title":"","user_url":"https:\/\/www.linkedin.com\/in\/anuj-sahni-6a80b617","description":"<p data-start=\"231\" data-end=\"963\"><strong>Anuj Sahni<\/strong> is a seasoned cloud and solutions architecture leader with over two decades of experience designing scalable, high-performance enterprise applications across AWS, Azure, and GCP. Currently part of the <strong>Capella team at Couchbase<\/strong>, he helps organizations modernize their applications and navigate cloud migration using cloud-native technologies.<\/p>\r\n<p data-start=\"231\" data-end=\"963\">Prior to Couchbase, Anuj was <strong>Principal Product Manager at Oracle<\/strong>, where he led strategic initiatives for Oracle NoSQL Database and Oracle Service Cloud, focusing on distributed, always-available data platforms. He holds a <strong>Master\u2019s in Electrical and Computer Engineering<\/strong> do <strong>University of Florida<\/strong>\u00a0and is an active thought leader in the data architecture space.<\/p>"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/33279"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=8123"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8123\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/8124"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=8123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=8123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=8123"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=8123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}