Adriano Tanaka
OCP Oracle Cloud, OCP 11g, 12c
Adriano Tanaka

Criando backups no OCI de hora em hora

Criando backups no OCI de hora em hora

Já se perguntou como gerar um backup de hora em hora dos seus boot/block volumes? Talvez você já tenha pensando em criar uma politica de backup customizada para isso e tenha se deparado com a seguinte limitação:

Caso na sua politica de backup já exista um agendamento diário, não é possível configurar um outro e um disco (até o momento) só pode ter uma politica atribuída a ele.

Sendo assim apresento aqui algumas opções usando o bom e velho oci cli.

Backup sob demanda

A sintaxe do comando é bem simples, bastando passar para o comando o ocid do disco a ser feito o backup:

oci bv backup create [OPTIONS]

E para boot volume você deve usar:

oci bv boot-volume-backup create [OPTIONS]

Além disso, vamos usar a opção –type com o valor INCREMENTAL para que sempre seja feito um backup da forma incremental, dessa forma economizamos o espaço consumido pelo nosso backup.

Daqui pra frente mostro como fazer backup de Block Volumes, caso deseje fazer de Boot Volumes, basta alterar o comando para bv boot-volume-backup XXXX.

#!/bin/bash
##This script creates an backup on demand
##How to use: ./bkp_on_demand.sh VOL_OCID BKP_NAME


export OCI_CLI_AUTH=instance_principal
export DATA=$(date +"%d-%m-%y")
export HORA=$(date +"%H%M")

oci bv backup create --volume-id $1 --type incremental --display-name $2-$DATA --freeform-tags '{"Hora": "'"$HORA"'"}'

A limitação desse método é que com ele (ainda) não é possível definir a retenção do backup, você precisa apagar os backups de forma “manual” executando o comando abaixo e passando o ocid do backup, o que torna seu gerenciamento um pouco mais chato:

oci bv boot-volume-backup delete OCID

Você pode fazer uma gambiarra solução de contorno que é listar todos os backups que possuam uma data X no nome e passar o ocid o para o comando delete:

#!/bin/bash
##This script delete an backup
##How to use: ./del_bkp_on_demand.sh COMPARTIMENT BKP_NAME


export OCI_CLI_AUTH=instance_principal
export RETENCAO=$(date +"%d-%m-%y" -d  "1 day ago")

oci bv backup list -c $1 --all --display-name $2-$RETENCAO --lifecycle-state AVAILABLE | jq -r '.data[]|.id' > del_bkp$2.txt

while IFS="" read -r p || [ -n "$p" ]
do
  oci bv backup delete  --volume-backup-id $p  --force
done < del_bkp$2.txt

Você também poderia usar o jq para filtrar o campo com a data de criação do backup (time-created) mas ai estaríamos complicando ainda mais o processo.

Uma luz no fim do túnel

Uma forma que encontrei de minimizar o nosso trabalho é fazendo a Oracle trabalhar por nós, crie diversas politicas de backup customizada da forma que desejar e execute um script para alterar a politica vinculada ao disco, dessa forma a nossa retenção vai ser aplicada de forma automática.

Aqui em meu ambiente tenho algumas politicas criadas conforme pode ser visto:


Cada uma delas tem um agendamento em um horário do dia como o nome indica e cada uma delas tem uma retenção diferente, o backup feito as 8am e 12am ficam armazenados por um dia, o backup feito as 10pm fica armazenado por 7 dias.

A ideia é bem simples, se você tem uma politica que executa um backup as 22h(tome cuidado com o timezone do agendamento), o seu disco precisa estar com ela um pouco antes, sendo assim, segue mais um script que nos ajuda com isso, bastando passar o ocid do volume e o ocid da politica desejada:

 #!/bin/bash
##This script changes the backup policy from block volume
##How to use: ./change_bkp_pol.sh VOL_OCID POLICY_OCID

oci bv volume-backup-policy-assignment create --asset-id $1 --policy-id $2

No fim você vai ter algo mais ou menos assim, para cada disco que deseja mudar a politica, basta fazer um agendamento no crontab:

E aqui podemos validar no OCI que a retenção foi aplicada com sucesso:

No mais é isso, acredito que tenha conseguido exemplificar uma forma de fazer essa automação que ainda não é possível fazer via interface web.

Opinions expressed are solely my own and do not express the views or opinions of my employer.

Adriano Tanaka

Criando backups no OCI de hora em hora
Já se perguntou como gerar um backup de hora em hora dos seus boot/block volumes? Talvez você já tenha pensando em criar uma politica de backup customizada para isso e tenha …
Scan QR code to continue reading
2020-12-05