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.
Pingback: Backup RMAN no ExaCS – Primeiros Passos Para Iniciantes em DBAASCLI – Blog do Dibiei