- Some scripts are a compilation of several other scripts I've created.
- Some scripts are based on and adapted from existing scripts. Those that I found reference to the author I obviously identify in the script.
- So, if there's a script that you're the author of and I've adapted to my reality and it's not mentioned, please let me know and I'll be happy to reference it.
- Because they're my scripts, they have my logic and help me in my day-to-day work, it doesn't mean that they're the best or that they're always the most refined and concerned with good practices. They can help you, but that's all.
- Feel free to make changes, but please keep the reference to the authors.
- If you find any mistakes, please let me know.
terça-feira, 4 de fevereiro de 2025
[ORACLE] Useful scripts for the day-to-day life of a DBA (Part 1) - RMAN & SGA
quinta-feira, 1 de setembro de 2022
Você sabe o que é o Block Change Tracking?
Fala pessoal, beleza?
Tenho falado com vários DBA's sobre backup's e políticas de melhores práticas e quase 100% deles tem comentado sobre a dificuldade em cumprir as janelas definidas já que temos bancos cada dia mais enormes.
E percebi que quase todos eles não usam uma opção muito legal que se chama Block Change Tracking (ou BCT) para os mais chegados, que poderia ajudar bastante nessa tarefa.
Basicamente e muito resumidamente falando, mesmo quando você faz um backup incremental, o Oracle precisa percorrer todos os blocos dos seus datafiles - sejam eles novos ou não, para saber o que foi alterado desde o último backup e inserir esses blocos em seus backup pieces.
É ai que mora a beleza do BCT.
Se o BCT estiver ativo na sua produção ou em um StandBy físico, o Oracle vai registrar bitmaps que marcam as alterações nos datafiles entre os backups. Ele vai criar um índice (ou um arquivo de rastreamento como o próprio nome já diz) e vai registrar todos os blocos alterados ali.
O RMAN então usará este rastreamento para identificar esses blocos alterados na execução dos backups incrementais, salvando muito tempo nessa operação e evitando a necessidade de leitura de todos os blocos dos datafiles.
O mais bacana é que o uso do BCT não altera os comandos usados para realizar os backups incrementais. Além disso o BCT file não requer manutenção após a configuração inicial.
Outro ponto legal demais é que o DBA não precisa se preocupar com o gerenciamento desse arquivo. O Oracle gerencia automaticamente o espaço no BCT.
Aqui temos um ponto de atenção quanto a retenção, como destacado no exemplo dado no manual:
É importante considerar o limite de oito bitmaps na sua estratégia de backup incremental. Por exemplo, se você fizer um backup nível 0 seguido por sete backups incrementais diferenciais, o BCT file chegará a 8 bitmaps. O próximo backup irá descartar o bitmap mais antigo
Então, se você fizer um backup incremental de nível 1 cumulativo na próxima operação, o RMAN não poderá otimizar o backup, porque o bitmap correspondente ao backup nível 0 será substituído. Então ess eé um ponto de atenção.
Para criar um BCT é mega fácil:
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+BCT/BCTrk.F';
Abaixo eu deixo 3 pontos ue devem ser considerados antes de adotar o que eu falei acima:
1) Se você não passar onde o BCT deve ser criado, por default ele será inciado no DB_CREATE_FILE_DEST.
2) Eu sempre crio um DG exclusivo para o BCT. Devido a ele ter uma gravação intensa, ele pode afetar a performance do banco de dados caso você o coloque juntamente com a área de FRA, por exemplo. Ou no seu DG de Redos.
3) Infelizmente você só pode habilitar o BCT em um StandBy físico se você possuir a licença do Active Data Guard.
Claro, antes de sair habilitando quaquer coisa em seu banco de dados, por favor, teste muito bem e veja se é adequado a seu ambiente.
"Lembre-se que o que é bom para o meu ambiente pode não ser bom para o seu." - By Ricardo Portilho Proni
É ou não é show? Você acha que seu backup vai ser mais rápido com isso?
Backup and Recovery User's Guide
Grande abraço e espero que tenha ajudado.
Mario
sexta-feira, 27 de maio de 2022
DD Boost for Oracle
Fala pessoal, beleza?
Coloquei mais um vídeo lá no canal.
Nesse vídeo vou falar como o DD Boost funciona e qual a diferença de uso dessa feature para uma Deduplicação típica.
O que vc vai ver por lá:
- O que é o DD Boost e como ele funciona.
O que você não vai ver lá:
- Deep Dive técnico sobre o PowerProtect.
- Recomendações para políticas de proteção de dados.
Lembrando que são apenas sugestões e que qualquer alteração de ambientes devem ser testadas e validadas pelo seu time.
Se quiserem conferir, fiquem a vontade!!!
Só clicar: O-Tips - DD Boost with PowerProtect
Qualquer dúvida, crítica ou sugestão será muito bem vinda!!!
Abraço
Mario
segunda-feira, 10 de outubro de 2016
Duplicate sem acessar o Target e o Catalog
RUN
{
ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK
FORMAT '/nfbackup/rman/BANCO49/%d_%Y%M%D_%U.dat';
ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK
FORMAT '/nfbackup/rman/BANCO49/%d_%Y%M%D_%U.dat';
ALLOCATE AUXILIARY CHANNEL aux3 DEVICE TYPE DISK
FORMAT '/nfbackup/rman/BANCO49/%d_%Y%M%D_%U.dat';
ALLOCATE AUXILIARY CHANNEL aux4 DEVICE TYPE DISK
FORMAT '/nfbackup/rman/BANCO49/%d_%Y%M%D_%U.dat';
set newname for datafile 1 to new;
set newname for datafile 2 to new;
set newname for datafile 3 to new;
set newname for datafile 4 to new;
set newname for datafile 5 to new;
set newname for datafile 6 to new;
set newname for datafile 7 to new;
set newname for tempfile 1 to new;
set newname for tempfile 2 to new;
DUPLICATE DATABASE TO banco49
UNTIL TIME "TO_DATE('02/10/2016 10:00:00','DD/MM/YYYY HH24:MI:SS')"
LOGFILE
GROUP 1 ('/BANCO49/oradata/sml49/redo01.log') SIZE 300M REUSE,
GROUP 2 ('/BANCO49/oradata/sml49/redo02.log') SIZE 300M REUSE,
GROUP 3 ('/BANCO49/oradata/sml49/redo03.log') SIZE 300M REUSE
BACKUP LOCATION '/nfbackup/rman/BANCO49';
}
EXIT;
EOF
É isso, agora basta criar um arquivo dup.sh e deixar rodando em nohup.
Pode parecer besteira, mas já quebrou alguns galhos....
Grande abraço.
Mario
quinta-feira, 20 de junho de 2013
Backup RMAN - Alguns scripts
Vou postar aqui um script de backup (e suas variações) que está mais que testado e que me ajuda bastante quando preciso fazer algo rápido e manual.
==================
-- Backup
==================
rman target / << EOF
allocate channel d1 type disk MAXPIECESIZE 8G;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
SQL 'ALTER SYSTEM CHECKPOINT';
backup AS COMPRESSED BACKUPSET format '/backups/PROD/%d_%Y%M%D_%I_%s_%U.dat' database;
sql 'alter system archive log current';
backup AS COMPRESSED BACKUPSET format '/backups/PROD/%d_%Y%M%D_%I_%s_%U.dat' archivelog all;
release channel d1;
}
exit;
EOF
==================
-- Backup deletando archives e backupsets
==================
rman target / <
allocate channel d1 type disk MAXPIECESIZE 8G;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
SQL 'ALTER SYSTEM CHECKPOINT';
backup AS COMPRESSED BACKUPSET format '/backups/PROD/%d_%Y%M%D_%I_%s_%U.dat' database;
sql 'alter system archive log current';
backup AS COMPRESSED BACKUPSET format '/backups/PROD/%d_%Y%M%D_%I_%s_%U.dat' archivelog all;
DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-5';
DELETE NOPROMPT OBSOLETE DEVICE TYPE DISK;
release channel d1;
}
exit;
EOF
========================
-- Backup somente de archives
========================
rman target / <
allocate channel d1 type disk MAXPIECESIZE 8G;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
SQL 'ALTER SYSTEM CHECKPOINT';
backup AS COMPRESSED BACKUPSET format '/backups/PROD/%d_%Y%M%D_%I_%s_%U.dat' archivelog all;
release channel d1;
}
exit;
EOF
Simples e objetivo caso precise rodar algo manualmente.
Abraço
Mario
Formatação de nome de backuppieces do RMAN
Postagem em destaque
[ORACLE] Useful scripts for the day-to-day life of a DBA (Part 3) - System metrics
Hello everyone. Hope you're doing well! As I said here , I've created a repository on GITHUB to share some scripts that I like t...
