Páginas

segunda-feira, 8 de abril de 2013

FAST_START_MTTR_TARGET

O parâmetro FAST_START_MTTR_TARGET define o número de segundos para se fazer a recuperação de uma instância que sofrer crash. Logo, está relacionado a quantidade de checkpoints feitos pelo banco de dados, o que afeta diretamente a performance do mesmo.

Recomenda-se que o valor default (0 zero) seja alterado, para que o Oracle faça uma análise e aconselhe valores dele (advisor). Para que o MTTR advisor funcione, além do FAST_START_MTTR_TARGET > 0, é preciso que STATISTICS_LEVEL=TYPICAL.

alter system set fast_start_mttr_target=30;

Após algum tempo, o advisor irá popular a seguinte view:

select * from V$MTTR_TARGET_ADVICE order by 1;

A view abaixo pode ser usada para definir tamanho do redolog:

SELECT TARGET_MTTR, ESTIMATED_MTTR,OPTIMAL_LOGFILE_SIZE FROM V$INSTANCE_RECOVERY;




quarta-feira, 3 de abril de 2013

Oracle - Sequences - atualizando valores


Procedimento para atualizar uma sequence que está com valores desatualizados:

-- Pegar valor da sequence
select seq_audit_log.nextval from dual; --190382

-- Pegar valor do máximo campo da tabela onde a aplicação usa a sequence
select max(idt_audit_log) - 190382 from audit_log;

-- Alterar incremento e atualizar sequence
alter sequence SEQ_AUDIT_LOG increment by 741;
select SEQ_AUDIT_LOG.nextval from dual;
alter sequence SEQ_AUDIT_LOG increment by 1;
select seq_audit_log.currval from dual; --191123

sexta-feira, 1 de março de 2013

Identificando último DML em uma tabela Oracle


Identificando última alteração DML (aproximada) em uma tabela:

SQL> select max(ora_rowscn), scn_to_timestamp(max(ora_rowscn)) from sys.teste;

MAX(ORA_ROWSCN) SCN_TO_TIMESTAMP(MAX(ORA_ROWSCN))
--------------- ---------------------------------------------------------------------------
      849681860 01-MAR-13 11.31.38.000000000 AM

SQL> update teste set a=0;

1 row updated.

SQL> commit;

Commit complete.

SQL> select max(ora_rowscn), scn_to_timestamp(max(ora_rowscn)) from sys.teste;

MAX(ORA_ROWSCN) SCN_TO_TIMESTAMP(MAX(ORA_ROWSCN))
--------------- ---------------------------------------------------------------------------
      849682200 01-MAR-13 11.32.13.000000000 AM

* Para tabelas grandes, é mais eficiente buscar a última linha da tabela (se possível pela PK) e depois disso pegar o ORA_ROWSCN dela:

select max(scn_to_timestamp(ora_rowscn)) from tabela where campo_pk = (select max(campo_pk) from tabela);

Referência: Ask Tom (http://asktom.oracle.com/pls/asktom/fp=100:11:0::::P11_QUESTION_ID:1590655700346557237)

Mais informações: http://docs.oracle.com/cd/E14072_01/server.112/e10592/pseudocolumns007.htm

terça-feira, 27 de novembro de 2012

DBControl - criação e alteração

A seguir comandos para criação e alteração do repositório local para o DBControl. Para remoção

* Remoção:

- Apenas arquivos de configuração

DBControl 10.1.x:
$ORACLE_HOME/bin/emca -x <sid>

DBControl 10.2.x e 11.x:
$ORACLE_HOME/bin/emca -deconfig dbcontrol db


- Arquivos de configuração e repositório

DBControl 10.1.x:
$ORACLE_HOME/bin/emca -x <sid>
$ORACLE_HOME/sysman/admin/emdrep/bin/RepManager <hostname> <listener_port> <sid> -action drop

DBControl 10.2.x e 11.x:
$ORACLE_HOME/bin/emca -deconfig dbcontrol db -repos drop

OBS: Caso esta opção falhe por algum motivo, existem outros meios de remoção que estão detalhados na documentação oficial (ID 278100.1).

* Criação:

- Apenas arquivos de configuração (sem o repositório)

DBControl  10.1.x:
$ORACLE_HOME/bin/emca -r

DBControl 10.2.x e 11.x:
$ORACLE_HOME/bin/emca -config dbcontrol db


- Arquivos de configuração e repositório

DBControl 10.1.x:
$ORACLE_HOME/bin/emca

DBControl 10.2.x e 11.x:
$ORACLE_HOME/bin/emca -config dbcontrol db -repos create

* Reconfiguração

- Recriar apenas arquivos de configuração (repositório intacto)

DBControl 10.2.x e 11.x apenas:
$ORACLE_HOME/bin/emca -config dbcontrol db


- Recirar arquivos de configuração e repositório

DBControl 10.2.x e 11.x apenas:
$ORACLE_HOME/bin/emca -config dbcontrol db -repos recreate

*Este comando coloca o banco no modo Quiesce para as versões 10.x até 11.1.x. Isto não ocorre apenas em bancos 11.2.x

Documentação Oficial: How To Drop, Create And Recreate the Database Control (DB Control) Release 10g and 11g [ID 278100.1]

quinta-feira, 8 de novembro de 2012

RACcheck

RACcheck é uma ferramenta muito simples oferecida gratuitamente pela Oracle para validar a instalação e configuração de Oracle RAC, Oracle Clusterware, ASM e Grid Infrastructure segundo recomendações e boas práticas.

A Oracle recomenda rodar este utilitário a cada 3 meses no seu ambiente ou sempre que for fazer alguma manutenção no ambiente.

As seguintes categorias são avaliadas nos checks:
  • OS kernel parameters
  • OS packages
  • Many other OS configuration settings important to RAC
  • CRS/Grid Infrastructure
  • RDBMS
  • ASM
  • Database parameters
  • Many other database configuration settings important to RAC
  • 11.2.0.3 Upgrade Readiness assessment
A versão atual do utilitário pode ser obtida pelo  Document 1268927.1 RACcheck - RAC Configuration Audit Tool.

Passo a passo para execução:

- logar com usuário oracle (owner da instalação do banco)
- descompactar o arquivo RACCheck.zip em um diretório separado (validar permissões dos arquivos para 755)
- executar: ./raccheck
- um prompt interativo vai guiá-lo durante a execução (sim, é simples desse jeito!)
- o relatório será gerado no diretório corrente em formato .zip

* O único ponto de atenção que eu faria antes de executar é configurar sudo temporário para o usuário oracle (não é impeditivo para execução, porém permite uma avaliação mais completa):

oracle ALL=(root) NOPASSWD:/tmp/root_raccheck.sh

Abaixo uma amostra do que o relatório (HTML) nos fornece:



Todos os tópicos são muito bem detalhados, explicando os pontos levantados e possíveis ações corretivas.
* Como todo "advisor", é preciso filtrar e entender as informações que ele fornece com base na sua experiência antes de sair alterando o ambiente com as recomendações.

Webcast da Oracle sobre o assunto: Troubleshooting and Preventing RAC issues with RACcheck
Documentação oficialDocument 1268927.1 RACcheck - RAC Configuration Audit Tool


segunda-feira, 5 de novembro de 2012

Oracle Agent - EMD upload error


Temos o seguinte status:

[oracle@svr2342 ~]$ emctl status agent
Oracle Enterprise Manager 11g Release 1 Grid Control 11.1.0.1.0
Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.
---------------------------------------------------------------
Agent Version     : 11.1.0.1.0
OMS Version       : 11.1.0.1.0
Protocol Version  : 11.1.0.0.0
Agent Home        : /u00/app/oracle/product/agent11g/svr2342
Agent binaries    : /u00/app/oracle/product/agent11g
Agent Process ID  : 1553
Parent Process ID : 1522
Agent URL         : https://svr2342:3872/emd/main
Repository URL    : https://svr2078.adm.infra:4900/em/upload
Started at        : 2012-11-05 12:13:48
Started by user   : oracle
Last Reload       : 2012-11-05 12:14:21
Last successful upload                       : (none)
Last attempted upload                        : (none)
Total Megabytes of XML files uploaded so far :     0.00
Number of XML files pending upload           :      109
Size of XML files pending upload(MB)         :     6.15
Available disk space on upload filesystem    :    83.36%
Last attempted heartbeat to OMS              : 2012-11-05 12:13:54
Last successful heartbeat to OMS             : unknown
---------------------------------------------------------------
Agent is Running and Ready

Ao tentar fazer upload manual, temos o seguinte erro:

[oracle@svr2342 ~]$ emctl upload agent
Oracle Enterprise Manager 11g Release 1 Grid Control 11.1.0.1.0
Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.
---------------------------------------------------------------
EMD upload error: uploadXMLFiles skipped :: OMS version not checked yet. If this issue persists check trace files for ping to OMS related errors.

Ao verificar o log, fica claro o problema:

ERROR pingManager: Did not receive valid response to ping "ERROR-Agent is blocked. Blocked reason is: Agent is out-of-sync with repository. This most likely means that the agent was reinstalled or recovered. Please contact an EM administrator to unblock the agent by performing an agent resync from the console. Please contact EM adminstrator to unblock the agent" 

Para corrigir, basta entrar no agent pelo EM ( SETUP >> AGENT ) e fazer o "Agent Resynchronization".




segunda-feira, 20 de agosto de 2012

Reconstrução do OCR - Reconfiguração do cluster

Procedimento para GI 11.2 e superior.

Em casos de emergênicia, onde é necessário reconstruir o OCR e reconfigurar o cluster, os seguintes passos podem ser usados:

Como root (em todos os nós remotos):

<$GRID_HOME>/crs/install/rootcrs.pl -deconfig -force -verbose

Como root (no nó local)

<$GRID_HOME>/crs/install/rootcrs.pl -deconfig -force -verbose -lastnode

Reconfiguração (como oracle):

$GRID_HOME/crs/config/config.sh

*OBS: O script acima necessita de interface gráfica. Comigo, mesmo com as configurações corretas, ele falhou inicialmente falando que não era possível iniciar a interface gráfica. Neste caso, editei o script e tirei o "exit 1" de dentro da verificação "if xdpyinfo fails and -silent is not passed then error out" e funcionou normalmente.

Documentação oficial: How to Deconfigure/Reconfigure(Rebuild OCR) or Deinstall Grid Infrastructure [ID 1377349.1]