Buenas a todos!

Este post pode ser um pouco passado para muitos DBAs, mas para quem está começando e planeja automatizar algumas tarefas, as dicas aqui pode ser de extrema utilidade!

Antes de começar, atente-se que o post é dividido em duas partes:
– Criando scripts sqlplus e rman para Windows;
– Criando scripts sqlplus e rman para Linux;

Dividimos desta maneira devido a limitações de cada ambiente.
Vamos começar!

CRIANDO SCRIPTS SQL*PLUS E RMAN PARA WINDOWS

Veja o exemplo de script que montei abaixo

Neste script, escrevemos uma série de comando SQL agrupados por ‘()’ e os enviamos por pipe ( ‘|’ ) para o sqlplus.
Com isto teremos um resultado como:

Simples não?

OMITINDO E EXIBINDO APENAS AS INFORMAÇÕES IMPORTANTES

No exemplo acima, observe a série de textos exibidos pelo SQLPLUS. As vezes estes textos podem atrapalhar o fluxo de seu script ou mesmo inviabilizá-lo.
Que tal reformularmos?

E como resultado, omitiremos todas as informações exibidas pelo SQLPLUS ( observe o -s ) e omitiremos o header da coluna selecionada ( observe o set pagesize 0; )

Resultado:

SE VOCÊ QUISER USAR UM SCRIPT PARA RMAN, SIGA O MESMO PRINCÍPIO E SUBSTITUA O SQLPLUS -S /NOLOG POR ALGO COMO RMAN TARGET /.

 

CRIANDO SCRIPTS SQLPLUS E RMAN PARA LINUX

Vamos nos inspirar no exemplo anterior e montar um sql que exiba “1“:

Explicando a extrutura:

Todo o bloco agrupado dentro das tags _EOF será digitado ao abrir o comando SQLPLUS. Inclusive as quebras de linha e caracteres especiais.
No exemplo acima usei _EOF mas poderia ser algo como HOUHOUHOU

Observe:

Como já usei -s e set pagesize 0; o resultado deste script será apenas:

Simples não?

POR QUE USAR ESTA MODELAGEM DE SCRIPT E NÃO USAR O @<SCRIPT.SQL>?

Com a abordagem proposta acima, podemos usar variáveis de ambiente ou personalizar o script dinamicamente.
Observe um exemplo de uso de scripts:

Dropando usuário por parametro

Observe o uso de variáveis dentro do script. Com isto, podemos fazer scripts que busquem archives via ftp de outros servidores e os apliquem num ambiente, que façamos backups customizados ou replicação de usuários para bases de testes.

Bem, espero que este artigo possa ajudar muitos administradores nesse mundão 🙂

Forte abraço a todos.
Dartanghan.