Customizando a Configuração do Backup Automático no Exadata Cloud Service (ExaCS)

Quando habilitamos o backup automático de um banco de dados no ExaCS pela console OCI, temos apenas as opções de especificar a retenção do backup e o período do dia no qual o backup deve ser iniciado. Este post apresenta como alterar algumas opções mais avançadas do backup automático OCI, utilizando a ferramenta de linha de comando dbaascli.

Como Alterar a Configuração

O dbaascli vem sendo atualizado para incluir as tarefas de administração de backup e esse é o utilitário recomendado atualmente pela Oracle desde a versão 22.1.1.0.1, em substituição ao antigo bkup_api. Então este post se baseia nos comandos com dbaascli, apesar que este acaba sendo uma interface mais amigável para o bkup_api, já que os comandos de backup que executamos no dbaascli acabam sendo repassados para o bkup_api em background.

  • Release 22.1.1.0.1 (220223)
  • Database Backup And Recovery
    • Internal update to metadata repository for backup metadata
    • Introduced deprecation messages for bkup_api commands as they are now replaced with dbaascli commands. For details, see ‘dbaascli database backup –help’ and ‘dbaascli database recover –help’

Atualizando a Configuração com o ResponseFile

Em todos os exemplos estamos usando um banco de dados com nome “orcl” e o ResponseFile sendo gerado como “/tmp/orcl-backup.cfg”.

1) Gerando um response file contendo a configuração atual do backup com a opção –-getConfig:

dbaascli database backup --dbName orcl --getConfig --configFile /tmp/orcl-backup.cfg

2) Ao gerar o arquivo de configuração, podemos editá-lo com um editor de textos do Linux:

vi /tmp/orcl-backup.cfg

Após editar o ResponseFile com os novos valores, podemos atualizar a configuração com a opção –configure

dbaascli database backup --dbName orcl --configure --configFile /tmp/orcl-backup.cfg

A operação deve gerar um resultado similar a este:

DBAAS CLI version 22.3.1.0.1
Executing command database backup --dbName orcl --configure --configFile /tmp/orcl-backup.cfg
DBaaS Backup API V1.5 @2022 Multi-Oracle home
-> Action : set_config
-> logfile: /var/opt/oracle/log/orcl/bkup_api_log/bkup_api_99ca190d_20220823195649.644622.log
cfgfile : /tmp/orcl-backup.cfg
Using configuration file: /tmp/orcl-backup.cfg
API::Parameters validated.
UUID dfcd2fda233611eda2aa020017006821 for this set_config(configure-backup)
** process started with PID: 135661
** see log file for monitor progress
-------------------------------------
dbaascli execution completed

O arquivo de log pode ser consultado para obter mais detalhes da operação:

[root@ociexa]# cat /var/opt/oracle/log/orcl/bkup_api_log/bkup_api_99ca190d_20220823195649.644622.log
23 Aug 2022 19:56:49 bkup_api.misc Line-358 [INFO] :  DBaaS Backup API V1.5 @2022 Multi-Oracle home
23 Aug 2022 19:56:49 bkup_api.rac Line-161 [INFO] :  running on node: ociexa

23 Aug 2022 19:56:49 bkup_api.database.database_exa.dbcommons Line-204 [INFO] :  Database Type: RAC
23 Aug 2022 19:56:50 bkup_api.misc Line-358 [INFO] :  -> Action : set_config
23 Aug 2022 19:56:50 bkup_api.misc Line-358 [INFO] :  -> logfile: /var/opt/oracle/log/orcl/bkup_api_log/bkup_api_99ca190d_20220823195649.644622.log
23 Aug 2022 19:56:50 bkup_api.misc Line-358 [INFO] :  Using configuration file: /tmp/orcl-backup.cfg
23 Aug 2022 19:56:50 bkup_api.misc Line-358 [INFO] :  API::Parameters validated.
23 Aug 2022 19:56:52 bkup_api.misc Line-358 [INFO] :  UUID dfcd2fda233611eda2aa020017006821 for this set_config(configure-backup)
23 Aug 2022 19:56:52 bkup_api.misc Line-863 [INFO] :  ** process started with PID: 135661
23 Aug 2022 19:56:52 bkup_api.misc Line-865 [INFO] :  ** see log file for monitor progress
23 Aug 2022 19:56:52 bkup_api.misc Line-867 [INFO] :  -------------------------------------
23 Aug 2022 19:56:52 bkup_api.misc Line-868 [INFO] :  UUID dfcd2fda233611eda2aa020017006821 written with PID 135661
23 Aug 2022 19:56:52 bkup_api.misc Line-893 [INFO] :  dfcd2fda233611eda2aa020017006821 -> Starting execution of backup log in background
23 Aug 2022 19:56:52 bkup_api.misc.apiv2 Line-2111 [INFO] :  Start configure backup
23 Aug 2022 19:56:52 bkup_api.misc.apiv2 Line-2127 [INFO] :  dfcd2fda233611eda2aa020017006821 Checking if orcl resource is available
23 Aug 2022 19:56:53 bkup_api.misc.apiv2 Line-2145 [INFO] :  dfcd2fda233611eda2aa020017006821 registering request into the database
23 Aug 2022 19:56:53 bkup_api.misc.apiv2 Line-2170 [INFO] :  EUID: 0
23 Aug 2022 19:58:58 bkup_api.misc.apiv2 Line-2184 [INFO] :  Automatic backups configuration completed.
23 Aug 2022 19:58:58 bkup_api.misc Line-911 [INFO] :  Function call configure_backup completed.

Caso tenha algum JOB de backup em andamento, a operação de –configure irá falhar, sendo necessário tentar novamente quando não tiver nenhum backup em execução.

Após executar o comando com a opção –configure com sucesso, o ResponseFile usado na operação é deletado automaticamente, caso precise realizar uma nova alteração, é necessário gerar um novo ResponseFile com a opção –getConfig.

Exemplos Com os Parâmetros Mais Comuns

Uma vez apresentado como funciona a alteração da configuração, demonstrarei alguns exemplos de parâmetros mais comuns para controlar o comportamento do backup automático para ObjectStorage (padrão).

Intervalo de Execução do Backup Archivelog

Por padrão, os backups de Archivelog são executados a cada 30 minutos.

Podemos alterar esse intervalo através do parâmetro bkup_archlog_frequency.

Exemplo para execução a cada 15 minutos:

bkup_archlog_frequency=15

Deve ser informado um dos valores suportados (15,20,30,60,120), caso contrário, a ação de configure retorna o seguinte erro:

[DBAAS-10015] - The provided value for the parameter archive log frequency in minutes is invalid

No caso de ocorrer falha na alteração devido ao valor inválido, a configuração permanece com o valor original anterior a tentativa de alteração.

Retenção dos Archives no Disco

Logo após executar o backup archivelog, um script de limpeza é executado com a seguinte síntaxe:

DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO SBT_TAPE COMPLETED BEFORE 'SYSDATE - 1';

Ou seja, são deletados todos os archives que já foram para backup e que tenham sido gerados a mais de 24 horas. Podemos alterar esse período mínimo de retenção através do parâmetro bkup_archlog_fra_retention, especificando um valor em dias.

Exemplo para reter 3 dias de archives:

bkup_archlog_fra_retention=3

Com essa configuração, o JOB de backup deve emitir o seguinte comando:

DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO SBT_TAPE COMPLETED BEFORE 'SYSDATE - 3';

Se precisar de um período menor, temos a flexibilidade de passar valores fracionados:

bkup_archlog_fra_retention=3/24

O valor acima representa uma retenção de 3 horas e resulta no seguinte comando RMAN:

DELETE NOPROMPT ARCHIVELOG ALL BACKED UP 1 TIMES TO SBT_TAPE COMPLETED BEFORE 'SYSDATE - 3/24';

A menor retenção que testei com sucesso foi de 1h (1/24). Uma tentativa de usar fração em minutos (30/1440) falhou com o erro “[DBAAS-10015] – The provided value for the parameter param is invalid: bkup_archlog_fra_retention”

Nível de Compressão do RMAN

Por padrão, todos os backups são realizados com compressão do tipo “low”.

Podemos desabilitar ou alterar a compressão através do parâmetro bkup_rman_compression.

Desabilitando compressão do backup:

bkup_rman_compression=none

Veja como o dbaascli configura o RMAN após aplicar essa alteração (repare a ausência da palavra chave COMPRESSED antes de BACKUPSET):

CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 6 BACKUP TYPE TO BACKUPSET;

Alterando o nível de compressão para medium:

bkup_rman_compression=medium

Veja como o dbaascli configura o RMAN após aplicar essa alteração (repare a presença da palavra chave COMPRESSED antes de BACKUPSET e de COMPRESSION ALGORITHM setado para ‘MEDIUM’):

CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 4 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE;

Section Size (Paralelismo por Datafile)

Para controlar o uso de Section Size, temos dois parâmetros: bkup_set_section_size controla se essa opção será usada ou não (padrão é yes), e bkup_section_size define o valor em GB para cada Section Size (padrão é 64 GB).

Exemplo desabilitando Section Size:

bkup_set_section_size=no

Exemplo, permitindo Section Size e customizando um tamanho de 32 GB:

bkup_set_section_size=yes
bkup_section_size=32G

Número de Canais RMAN – Backup Database

Tentar alterar essa configuração diretamente no RMAN não terá efeito porque o agente de backup atualiza a definição do RMAN de acordo ao que está na configuração do dbaascli.

Para realizar a alteração via dbaascli, usamos o parâmetro bkup_channels_node, o qual tem o valor padrão igual a 4. No entanto, vale destacar um detalhe: Ele especifica o número de canais por DB Node, então em um ExaCS mínimo com 2 DB Nodes e com “bkup_channels_node=4”, o resultado é um total de 8 canais RMAN.

Exemplo de configuração para usar 6 canais RMAN, valor setado no dbaascli em um Exadata com 2 DB nodes:

bkup_channels_node=3

Veja como ele é passado para a configuração do RMAN no controlfile:

CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 6 BACKUP TYPE TO COMPRESSED BACKUPSET;

Número de Canais RMAN – Backup Archivelog

Os jobs de backup e limpeza dos Archivelogs usam um parâmetro independente para controlar o número de canais alocados no RMAN: rmanArchiveLogChannels. A configuração deste parâmetro também tem relação com a quantidade de DB Nodes no Exadata, assim configurando um valor igual a 2, o dbaascli irá alocar um total de 4 canais no RMAN.

Exemplo informando o valor de 2 canais por DB Node:

rmanArchiveLogChannels=2

O efeito da configuração deste parâmetro não pode ser visualizado diretamente executando um “show all” no RMAN, ao invés disso, podemos consultar o log do backup pra ver o script executado pelo dbaascli.

Acesse o diretório de log (exemplo com DB Name orcl):

cd /var/opt/oracle/log/orcl/obkup

Identifique o arquivo de log mais recente dentro do diretório e execute o seguinte comando (exemplo onde o nome do arquivo de log mais recente é obkup_2022-08-24.log):

sed -n '/Executing rman instructions/,/-> }/p' obkup_2022-08-24.log

Script resultanente em um Exadata com 2 DB Nodes (um total de 4 canais alocados):

O mesmo ocorre para o JOB de limpeza dos Archivelogs:

Conclusão

Este post apresentou como alterar as configurações do backup automático OCI no ExaCS utilizando o dbaascli, assim como alguns exemplos básicos de opções que podem ser úteis na maioria dos ambientes. Algumas opções não foram exploradas por não ter como testar efetivamente neste ambiente, como a integração com ZDLRA e Recovery Catalog.

1 thought on “Customizando a Configuração do Backup Automático no Exadata Cloud Service (ExaCS)”

  1. Pingback: Backup RMAN no ExaCS – Primeiros Passos Para Iniciantes em DBAASCLI – Blog do Dibiei

Leave a Reply

Scroll to Top

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading