Como comentei, vou escrever sobre algumas das palestras que vi no GUOB Tech Day de 2011.

Vou iniciar por uma das mais interessantes e por o cara é fera!!

Real WorldDBA Best Practices
Arup Nanda

Dentro das melhores praticas colocadas pelo Arup, vale a pena ressaltar algo:
“Ele pode não ter certeza, como ele mesmo disse, as melhores práticas dele podem não ser as suas melhores práticas”

Eu vou comentar das que eu achei que caem bem no meu dia-a-dia, umas que utilizo e outras que valem a pena.
Mudar o Oracle Home para aplicação de patches
Copiar o Oracle Home (ex.: /u01/app/oracle/10.2/bd1) para um novo Oracle Home (ex.: /u01/app/oracle/10.2/bd2)
Aplicar o patch no novo Oracle Home
Vantagens:
Problemas? Volta a usar o Oracle Home antigo intacto, perfeito. Essa eu vou testar em breve e com certeza vou escrever como foi.
Pode ver o que tem de diferenças entre eles.
Tabela apresentada sobre essa opção:

ASM HOME DB HOME CRS HOME
Sim, acredito que muitos já usem dessa forma no 10g, seguindo a mesma linha para o 11g, que separaria somente ASM HOME e DB HOME, essa já usavamos!

Iniciar o banco com o parametro habilitado audit_trail = db [or, db_extended]
Vantagem significante:
Caso seja necessário usar a auditoria, somente habilitar no que deseja (ex.: SQL> AUDIT SELECT ON test;) pois ele não inicia até que demos o comando de AUDIT. Não precisa parar e iniciar a instância.

Não usar .LOG como extenção para os Redos
Essa achei bem interessante, pois é muito fácil percebermos o motivo: executamos manutenção em dois arquivos de LOG (alert_DB1.log e listener.log) frequentemente, com essa alteração para .redo ou .rdo (sugestão do Arup) evitamos acidentes.

Create a Controlfile on Trace
Isso auxilia na recuperação do controlfile, pois ele fica armazenado nos traces do banco, ele coloca isso para executar uma vez por dia, com o comando:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”U1FMPiBhbHRlciBkYXRhYmFzZSBiYWNrdXAgY29udHJvbGZpbGUgdG8gdHJhY2UgYXMg4oCYL3BhdGgvY3JfZGIuc3Fs4oCZIHJldXNlOw==” hover_enabled=”0″]U1FMPiBhbHRlciBkYXRhYmFzZSBiYWNrdXAgY29udHJvbGZpbGUgdG8gdHJhY2UgYXMg4oCYL3BhdGgvY3JfZGIuc3Fs4oCZIHJldXNlOw==[/et_pb_dmb_code_snippet]

Faz um controle de mudanças para diferenciar novos arquivos, redos logs etc

Criar um repositório de Metadados
Essa também é boa, ainda mais para quem tem muito desenvolvimento de packages, procedures e functions, usando o Data Pump executar o comando abaixo:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”JCBleHBkcCB1L3AgY29udGVudD1tZXRhZGF0YV9vbmx5IGZ1bGw9eSBkaWVjdG9yeT10bXBfZGlyIGR1bXBmaWxlPW1kLmRtcA==” hover_enabled=”0″]JCBleHBkcCB1L3AgY29udGVudD1tZXRhZGF0YV9vbmx5IGZ1bGw9eSBkaWVjdG9yeT10bXBfZGlyIGR1bXBmaWxlPW1kLmRtcA==[/et_pb_dmb_code_snippet]

Após isso pode converter/importar para .sql

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”JCBpbXBkcCB1L3AgZGllY3Rvcnk9dG1wX2RpciBkdW1wZmlsZT1tZC5kbXAgc3FsZmlsZT1tZC5zcWw=” hover_enabled=”0″]JCBpbXBkcCB1L3AgZGllY3Rvcnk9dG1wX2RpciBkdW1wZmlsZT1tZC5kbXAgc3FsZmlsZT1tZC5zcWw=[/et_pb_dmb_code_snippet]

Já utilizei isso algumas vezes e pode auxiliar recuperar algo rapido em etapa de desenvolvimento.
Para quem quiser mais detalhes: Datapump: Not Just for Data Movement

RMAN
Validate Database
Para quem não tem como fazer o restore, com certeza já conhece, utilizo com frequência para validar os meus backups, não estou tão mal! ehehe

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Uk1BTj4gYmFja3VwIHZhbGlkYXRlIGRhdGFiYXNlIGFyY2hpdmVsb2cgYWxsOw==” hover_enabled=”0″]Uk1BTj4gYmFja3VwIHZhbGlkYXRlIGRhdGFiYXNlIGFyY2hpdmVsb2cgYWxsOw==[/et_pb_dmb_code_snippet]

Pode ver se tem blocos corrompidos na view:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”diRkYXRhYmFzZV9ibG9ja19jb3JydXB0aW9u” hover_enabled=”0″]diRkYXRhYmFzZV9ibG9ja19jb3JydXB0aW9u[/et_pb_dmb_code_snippet]

Pode validar um backupset

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Uk1BTj4gdmFsaWRhdGUgYmFja3Vwc2V0IDY7″ hover_enabled=”0″]Uk1BTj4gdmFsaWRhdGUgYmFja3Vwc2V0IDY7[/et_pb_dmb_code_snippet]

Verificar se existe corrupção lógica:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Uk1BTj4gYmFja3VwIHZhbGlkYXRlIGNoZWNrIGxvZ2ljYWwgZGF0YWJhc2UgYXJjaGl2ZWxvZyBhbGw7″ hover_enabled=”0″]Uk1BTj4gYmFja3VwIHZhbGlkYXRlIGNoZWNrIGxvZ2ljYWwgZGF0YWJhc2UgYXJjaGl2ZWxvZyBhbGw7[/et_pb_dmb_code_snippet]

RMAN Restore
Pode ser executado uma vizualição do restore:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”Uk1BTj4gcmVzdG9yZSB0YWJsZXNwYWNlIHVzZXJzIHByZXZpZXc7″ hover_enabled=”0″]Uk1BTj4gcmVzdG9yZSB0YWJsZXNwYWNlIHVzZXJzIHByZXZpZXc7[/et_pb_dmb_code_snippet]

Ele não é uma validação, ele verifica se tudo o que ele precisa para fazer o restore está acessivel.

RMAN Log
Sempre salvar o Log do RMAN, sempre ajuda.
Os logs contém informações dos backups pieces, nomes, localização, data execução, tempo …

Salvar o DBID (importante para o RMAN)
Podemos esquecer de gravar isso, copiar em algo seguro e certamente vamos esquecer, palavras do Arup, por isso ele usa a técnica de salvar isso dentro do AlertLog do banco, e poe para gerar todos os dias, com isso está sempre por ali.
Faz dessa forma:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”ZGVjbGFyZQpsX2RiaWQgbnVtYmVyOwpiZWdpbgpzZWxlY3QgZGJpZCBpbnRvIGxfZGJpZApmcm9tIHYkZGF0YWJhc2U7CmRibXNfc3lzdGVtLmtzZHdydCgyLOKAmURCSUQ94oCZfHxsX2RiaWQpOwplbmQ7″ hover_enabled=”0″]ZGVjbGFyZQpsX2RiaWQgbnVtYmVyOwpiZWdpbgpzZWxlY3QgZGJpZCBpbnRvIGxfZGJpZApmcm9tIHYkZGF0YWJhc2U7CmRibXNfc3lzdGVtLmtzZHdydCgyLOKAmURCSUQ94oCZfHxsX2RiaWQpOwplbmQ7[/et_pb_dmb_code_snippet]

Usar Pfile e não o Spfile
Outra que já uso é utilizar o Pfile e não o Spfile.
Nesse sentido sugere também que sejam criadas diferentes versões, que veja e acompanhe as diferenças.
Criação do Pfile:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”U1FMPiBjcmVhdGUgcGZpbGU94oCZL3RtcC9h4oCZIGZyb20gc3BmaWxlOw==” hover_enabled=”0″]U1FMPiBjcmVhdGUgcGZpbGU94oCZL3RtcC9h4oCZIGZyb20gc3BmaWxlOw==[/et_pb_dmb_code_snippet]

No Oracle 11g, podemos criar da memoria:

[et_pb_dmb_code_snippet _builder_version=”4.0.6″ code=”U1FMPiBjcmVhdGUgcGZpbGU94oCZL3RtcC9i4oCZIGZyb20gbWVtb3J5Ow==” hover_enabled=”0″]U1FMPiBjcmVhdGUgcGZpbGU94oCZL3RtcC9i4oCZIGZyb20gbWVtb3J5Ow==[/et_pb_dmb_code_snippet]

Não Login usuário Oracle, de SO
Para não deixar o usuário Oracle logar direto do SQLPLUS, direto da linha de comando, sugere que seja criado um novo usuário, instalado o instantClient e com isso criamos um pouco mais de segurança, essa eu gostei, muito simples mesmo, fácil de implementar e mais seguro.

Na palestra do GUOB 2011 até esse ponto.
Achei no google a apresentação e o documento talvez seja um pouco diferente.

Espero ter colaborado.

Para quem quer ver/baixar as apresentações somente se inscrever no GUOB e é gratuito.

Att,
capin