22 de mai. de 2009

Criando instancia ASM em Windows

Hoje irei demonstrar passo a passo a criação de uma instancia ASM.

- Requisitos:
Oracle Database 10G Enterprise

Passo a passo:

1 – Criando a instancia ASM

O primeiro passo do nosso tutorial será a criação da instancia ASM. Através do DOS execute o comando abaixo, para criar a instancia:

C:\>oradim -new -asmsid +ASM -startmode manual
InstÔncia criada.


 

2 – Criando os discos ASM (Sistema Operacional)

Formatando os discos como RAW devices:

Para formatar como raw device, é bem simples basta ir em Painel de Controle e Gerenciamento do Computador e entrar na aba de Gerencialmento de discos. Formate o HD e não defina nenhuma partição. Cria quantas partições quiser e depois formate como Unidade Logica / Não escolha nenhum formato.

Segue abaixo como ficaram meus discos:


3 – Criacao do INIT+ASM.ORA

O próximo passo é a criação do arquivo de inicialização, segue abaixo o conteúdo.

>instance_name='+asm'
instance_type='asm'
asm_diskstring='\\.\*:'

Após isso iniciei a instancia +ASM e a surpresa...

O:\oracle\product\10.2.0\db_1\database>set ORACLE_SID=+ASM
O:\oracle\product\10.2.0\db_1\database>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Qua Mai 20 20:50:02 2009

Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
Conectado a uma instÔncia inativa.

SQL> startup;
ORA-29701: unable to connect to Cluster Manager


 

Para sorte eu já havia tido esse problema e sua resolução é bem simples. Acesse a pasta $ORACLE_HOME \bin e execute a bat localconfig

O:\oracle\product\10.2.0\db_1\BIN>localconfig.bat delete
O:\oracle\product\10.2.0\db_1\BIN>localconfig.bat add

Segue abaixo minha execução:

C:\Documents and Settings\oracle>o:
O:\>cd %ORACLE_HOME%
O:\oracle\product\10.2.0\db_1>cd BIN

O:\oracle\product\10.2.0\db_1\BIN>localconfig.bat delete
Step 1: stopping local CSS stack
Step 2: deleting OCR repository
failed to open the OCR subkey, err(1060)
failed to cleanup local OCR repository
successfully deleted local CSS setup

O:\oracle\product\10.2.0\db_1\BIN>localconfig.bat add
Step 1: creating new OCR repository
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'oracle', privgrp ''..
Operation successful.
Step 2: creating new CSS service
successfully created local CSS service
successfully added CSS to home



Após isso:



Que belezinha e nada me fazia o Oracle reconhecer automáticamente os discos conforme manda o figurino.

Foi tentado de tudo, após todas as tentativas terem sidos tentadas Asmtool.exe e asmtoolg.exe. Segue abaixo algumas linhas da tentativa de criação do ASM.

SQL> >create diskgroup dg1 disk '\\.\Y:','\\.\Z:';
create diskgroup dg1 disk '\\.\Y:','\\.\Z:'

ERRO na linha 1:
ORA-15018: grupo de discos n?o pode ser criado
ORA-15031: especificac?o de disco '\\.\Z:' n?o corresponde a qualquer disco
ORA-15056: mensagem de erro adicional
OSD-04018: No foi possvel acessar o diretrio ou dispositivo especificado.
O/S-Error: (OS 161) O caminho especificado no vlido.
ORA-15031: especificac?o de disco '\\.\Y:' n?o corresponde a qualquer disco
ORA-15056: mensagem de erro adicional
OSD-04018: No foi possvel acessar o diretrio ou dispositivo especificado.
O/S-Error: (OS 161) O caminho especificado no vlido.


 

SQL> select * from v$asm_disk;
nÒo hß linhas selecionadas


 

Chamei o velho e bom DBCA e por sorte todos os problemas foram resolvidos:

  1. Exibição dos discos:


  1. Criação do group name e montagem dos discos com sucesso:



Com isso a primeira parte do tutorial está concluída.

Na próxima sessão veremos a interação dessa base com uma base relacional simples. E os comandos mais utilizados para a administração do ASM.

18 de mai. de 2009

Erro ORA-29701 Unable Connect to Cluster Manager

Estou atualmente em um cliente com Oracle RAC R2 com 2 nos. E ao tentar conectar na base de dados, me apresentava a seguinte mensagem: ORA-29701. Ao tentei fazer o shutdown e startup da base de ASM, mas o problema persistiu. Foi ai que eu encontrei a pequena e ótima solução:

cd $ORACLE_HOME/bin
localconfig delete
localconfig add

Posteriormente iniciei a base de dados de ASM e a produção e tudo voltou ao normal. Esse arquivo localconfig é um arquivo batch que possui 3 opções sendo elas

ADD – Para criar o CSS do ambiente
DELETE – Quando há apenas uma single instance ou quando você está deletando ou desinstalando.
RESET – Para fazer comandos remotos, nesse caso há necessidade de apontar onde será feito a configuração.

Verificações adicionais:

##Verificando seu ASM
ps -ef | grep -i pmon
/etc/init.d/oracleasm status

15 de mai. de 2009

Criar Control File Standby através do RMAN

1 – Conecte-se na base de dados através do RMAN:

rman target / ##Sem base de dados de catalogo

2 – Certifique-se que a base esteja MOUNT ou OPEN. Se estiver em estado de shutdown suba a base de dados:

STARTUP MOUNT

3- Criar o Control File Standby com o commando abaixo, por medida de boas praticas você deve arquivar todos os Archives com essa operação:

BACKUP CURRENT CONTROLFILE FOR STANDBY;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT
'
BACKUP ARCHIVELOG ALL NOT BACKED UP 1 TIMES;

Como medida para backups diários de ControlFile para Standbys pode ser adotado o script abaixo:

BACKUP DATABASE

INCLUDE CURRENT CONTROLFILE FOR STANDBY

PLUS ARCHIVELOG;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';

Note que o script acima só faz o backup do Standby ControlFile.
Até a próxima e obrigado.

5 de mar. de 2009

Programação Oracle Open World Latin America

Conforme havia comentado no ultimo post, segue abaixo a minha grade de palestras. É uma infelicidade ter apenas uma vez ao ano, pois o conhecimento agregado é muito grande.

Dia 10/03/2009

11:30 às 12:15 – Lidando com a virtualização: Como o Oracle Enterprise Manager pode acabar com seus pesadelos sobre gerenciamento.

14:00 às 14:45 – Um guia sobre atualizações de Banco de dados

15:00 às 15:45 - SQL Performance Analyser: Eliminando conjecturas do desempenho do SQL

17:15 às 18:00 - Oracle Advanced Compression: Jogue fora metade de seus discos e execute seu banco de dados mais rápido


 

Dia 11/03/2009

09:00 às 09:45 - A visão da Oracle sobre Alta disponibilidade – Arquitetura de máxima disponibilidade (MAA), Active Data Guards e mais

10:00 às 10:45 - Soluções Otimizadas de Warehouse com Sun e Oracle

16:15 às 17:00 - Oracle Exadata: Revolutionary New Storage for Oracle

17:15 às 18:00 - Fundamentos de desempenho para Oracle Database 10g e 11g


 

Dia 12/03/2009

09:00 às 09:45 – Virtualize sua Empresa e Reduza seus custos com o Oracle VM

10:00 às 10:45 – Red Hat Enterprise Linux + Oracle RAC: Mais recursos, menor custo

11:00 às 12:00 – Soluções Oracle Backup & recovery, Integrated & Complete – Secure backup, Recovery Manager (RMAN), Flashback Technologies..

16:15 às 17:00 – Desenvolvimento de aplicações com altissima performance utilizando Oracle in-Memory Database?

Oracle Open World 2009

Com o slogan "Your. Open. World" a Oracle traz ao Brasil a Oracle Open World Latin America 2009. O evento terá diversas palestras não apenas sobre Oracle Database, mas toda a gama de produtos da Oracle. O evento ocorrerá nos dias 10, 11 e 12 de março e terá a presença de diversos profissionais, entre eles a OOW contará com a presença de Safra Catz, presidente da Oracle Mundial.

Apesar do preço "salgado" é um capital bem investido, pois conhecimento é uma coisa que tira e conhecimento é arma para quem sabe usar. Eu estarei presente e como posts iniciais para o ano de 2009, estarei postando fotos, boas praticas para Oracle e dicas dos profissionais que será obtida nesse evento. Segue abaixo link para maiores informações do evento.

http://www.oracle.com/global/br/openworld/2009/pt/index.html

http://www.oracle.com/global/br/corporate/press/2009_jan/oow_la.html

Meu próximo post será das palestras a qual estarei participando no evento.

Inscrições do evento poderão ser feitas através do link acima ou pelo telefone: 3879-6805

29 de out. de 2008

Clusters e tipos de clusters

Cluster, esse termo está ficando cada vez mais comuns em bate papos de DBAs e administradores, afinal é a tecnologia de ponta pensando-se em alta disponibilidade (HA High Availability), ainda mais lidando na disponibilidade de ambientes críticos. O conceito de cluster é você ter ambientes homogêneos ,isto é, contendo o mesmo hardware, arquitetura, software e atualização. Cluster poderá ser utilizado para escalonar sistemas, fornecer um melhor desempenho e ainda sobreviver falhas. Os tipos de cluster estão relacionados ao tipo de armazenamento que é feito.

Estarei dando foco nesse artigo sobre os tipos de clusters disponíveis e suas aplicações. Segue abaixo os tipos de clusters:

  • Cluster não compartilhado (Shared Nothing Architecture).
  • Arquitetura de compartilhamento de discos (Shared disk architecture).
  • Arquitetura de compartilhamento de recursos (Shared everything architecture).


 

Todos os tipos de clusters apresentados são usados em tecnologias diferentes e para diferentes tipos de aplicações.

Funcionalidade 

Cluster não compartilhado 

Arquitetura de compartilhamento de discos 

Arquitetura de compartilhamento de recursos 

Discos/ Compartilhamento

Os donos dos discos não compartilham informação entre os nos ao mesmo tempo. 

Os donos dos discos são geralmente os nos do cluster. E em caso de falha o conteúdo de um disco e copiado para outro.

O compartilhamento e feito a nível disco para todos os nos, ou seja, todos os nos conseguem fazer a escrita/leitura de todos os discos. 

Numero de nós

Usualmente o numero de nos é muito grande.

Normalmente 2 nos fazem parte desse cluster, com um deles trabalhando em contingenciamento. 

2 ou mais nos dependendo da configuração de arquitetura. Nessa arquitetura é limitado apenas pelo licenciamento do cluster. 

Particionamento de informação

Nós podem acessar apenas dados pertencentes ao seu nó. Relação de 1 para 1.

Não necessário particionamento, já que a arquitetura foi criada para o acesso completo da informação.

Não necessário particionamento, já que a arquitetura foi criada para o acesso completo da informação.

Coordenador client

Servidor externo ou qualquer membro do grupo

Não requer coordenador, o outro nos de contingência só é usando em caso de failover.

Não requer coordenador, qualquer um pode acessar a informação.

Escalabilidade 

Altamente escalavel, mas é limitada a quantidade de nós individuais. 

Escalabilidade limitada devido as limitações no hardware utilizado. 

Escalabilidade infinita devido a quantidade de nós independentes e compartilhamento de recursos. 

Acesso de escrita

Cada nó é pode escrever apenas na sua instancia. Uma instancia não pode escrever em discos de outra instancia. 

Um no pode escrever em todos os discos, mas somente um por vez. 

Todos os nos podem escrever em todos os discos limitados apenas pelo controlador de recursos de escrita (lock manager control)

Carga de balanciamento (Load Balancing)

Não é possível

Não é possível

Possui perfeita carga de balanciamento.

Particionamento da aplicação 

Requer em toda a aplicação. 

Não é requerimento, mas quando ativado é apenas para um nó (No ativo)

Não necessário. 

Adicionar novos nós 

Não é possível 

É possível mas apenas 1 no estará disponível por vez. 

É possível. O conceito é baseado nessa idéia de acionamento de novos membros e prover maior disponibilidade.

Capacidade de falhas (failover)

Não há failover devido 1 no acessar seus discos devidos, e não prover acesso a outros discos disponíveis em outras instancias.

Poderá reverter o nó ativo com um script automático ou a transição dos servidores manuais.

Provem toda e qualquer garantia, sua arquitetura foi construída para a alta disponibilidade removendo assim perigos no contingenciamento de recursos.

I/O 

Escrita normal. 

Escrita normal. 

A escrita/leitura é controlada pelo DLM (Data Locker Manager) e pelo Controlador de Cluster.

Falhas de um no 

As informações providas pelo cluster que falhou ficaram indisponíveis.

As informações momentaneamente ficaram indisponíveis para utilização, até o outro nó assumir o controle.

As conexões no no danificado é distribuída entre os nos restantes e toda a informação é disponibilizada novamente. Não há perdas e nem falhas todas são transparentes para a aplicação.

Adicionar nó (disponibilidade) 

Requer completa reorganização da arquitetura.

É possível a adição de novos nós, mas a adição não resolverá em nada, devido a mesma oferecer uma disponibilidade que já existem.

Podem ser removidos e adicionados novos nós com os bancos de dados online sem necessidade de parada no ambiente. Após a conclusão de adição do novo nó é feito o balanciamento automáticamente.

Exemplos 

IBM SP2, Informix Online XPS, Microsoft Cluster Server, etc.

ServiceGuard, Veritas Cluster Server, etc.

Oracle RAC, Oracle Parallel Server, etc.

Obs. Tabela acima foi extraída do livro de Oracle RAC 10G da Oracle Press e traduzida.

24 de out. de 2008

Horário de Verão – Impactos em banco de dados

Sabado (22/10/2008) houve a mudança de horários, ajustando o relógio para +1 hora, ou seja, as 0hs todos os relógios deverão ser ajustado para 01:00:00 da manhã. Muitos profissionais a quais trocamos informações sobre isso acharam que essa mudança no sistema operacional não reflete problemas no banco de dados.

Um dos ambientes a qual eu administro, sofreu impacto, o banco de dados não foi aprovado o shutdown/startup devido o horário apenas avançar, não gerando assim maiores problemas. Não foi bem o que aconteceu. Esse banco de dados é um Oracle 10G release 2.4 rodando em Red Hat E/S 4.3. Os problemas encontrados foram:

  1. Listener na porta 1521 encontrava-se com intermitência de horário, mostrando randomicamente o horário antigo e novo. Uma verdadeira coisa de louco :P
  2. Os registros no alert log estavam sendo gravados com o horário antigo.

A primeira solução foi reinicializar os serviços de listener, fazendo apenas o reload dos listeners mas ainda assim o horário continuava instável. Foi realizado, portanto um STOP/START de todos eles, e com isso o horário se manteve estável, mas o horário apresentado era incorreto. A solução então foi fazer um shutdown do banco de dados, após sincronização de bases de dados de contingências com o ultimo redo, foi realizado shutdown da base primaria e a mesma retornou com sucesso.

Em conversa com outros DBAs outros problemas a qual ocorreram foi:

  1. Linux Suse 10 – Apresentou problemas na crontab durante os processos de adiantamento de horário. A solução foi reinicializar os serviços atrelados a cron.
  2. Windows – A Microsoft sempre adianta o horário de verão, nessa virada por exemplo o adiantamento foi de 3 dias. Devido a preocupação de diversos administrador a opção de alteração automática para horário de verão e desabilitada. No dia da virada mesmo com o horário certo o Oracle estava apresentando horário incorreto, isso se deu devido o botão de atualização automática estar desabilitado.

Ufá, nunca vi um horário de verão dar tantos problemas. Devemos sempre nos precaver desses "detalhes", pois uma inserção errada, pode causar um transtorno muito grande dentro de uma corporação. Muito obrigado e até a próxima.