terça-feira, 15 de julho de 2008

Visão Geral do Oracle ASM

Automatic Storage Manager (ASM) é um gerenciador de volumes e ao mesmo tempo um sistema de arquivos para banco de dados Oracle o qual suporta configurações do tipo single-instance e RAC. O ASM é uma solução alternativa de gerenciamento de volume de discos, sistemas de arquivos e raw devices.

O ASM utiliza agrupamento de discos para armazenar arquivos de dados; um ASM disk group nada mais é do que uma coleção de discos os quais o ASM gerencia como se fosse apenas uma unidade de disco. Dentro de um disk group, os arquivos de banco de dados Oracle são apresentados em uma interface semelhante ao sistema de arquivos unix e linux. O conteúdo dos arquivos são eventualmente redistribuidos para evitar gargalos e garantir estabilidade de desempenho. Seu desempenho é semelhante ao desempenho de raw devices.

Voce pode adicionar ou remover discos de um disk group sem interromper o serviço de banco de dados. Quando você remove ou adiciona discos de um disk group, o ASM automaticamente redistribui os arquivos e, conseqüentemente elimina a necessidade de parada de serviços para redistribuição de conteúdos.

O gerenciador ASM possui flexíveis opções de espelhamento. ASM normal e alta redundância de disk groups, espelhamentos tipo two-way e three-way respectivamente. Permite o uso de redundância externa do tipo RAID.

O ASM também utiliza o Oracle Managed Files (OMF) para simplificar o gerenciamento de arquivos banco de dados. O OMF automaticamente cria os arquivos em sua respectivas pastas. Além disso, atribui nomes aos arquivos e remove-os, defragmentando áreas de disco, quando as tablespaces ou arquivos são excluídos.

O ASM simplifica as tarefas de administração de storage consolidando os dados de storage em um reduzido grupo de discos. Isso possibilita a unificação do storage para diversos bancos de dados e oferece melhorias de desempenhos dos processos de leitura e gravação em discos.

Os arquivos ASM podem ser configurados com outros gerenciadores de storage , como raw devices e sistemas de arquivos de terceiros. Isto simplifica a integração do ASM com os demais sistemas de armazenamento já existentes.

segunda-feira, 14 de julho de 2008

Processo de Instalacao do Oracle Clusterware

O Oracle Clusterware é distribuído como parte integrante do produto Oracle Database. O Oracle Universal Installer (OUI) o instala em uma estrutura específica a qual pode referenciada como CRS_home. Devido ao fato do Oracle Clusterware realizar tarefas específicas do sistema operacional, há necessidade de conceder privilégios de superusuário para alguns de seus componentes

Antes de instalar o Oracle Clusterware, recomenda-se executar o Cluster Verification Utility (CVU) para certificar-se de que o ambiente possui todos os requisitos de instalação do Oracle Clusterware. O OUI também roda automaticamente o CVU ao final da instalação para verificar seus requisitos. Ele simplifica a instalação, configuração e demais tarefas pertinentes ao processo de instalação através de identificação de problemas relacionados ao ambiente clusterware.

Durante a instalação do Oracle Clusterware, deve-se identificar três endereços IP para cada node da arquitetura cluster. Um endereço IP para a interconexão privada e outro para a interconexão pública. O terceiro é um endereço IP virtual ao qual o cliente usará para conectar-se em cada instance.

O processo de instalaçao do Oracle Clusterware cria no storage os arquivos voting disk e OCR. Se selecionada a opção para redundância normal, então automaticamente o Oracle Clusterware manterá uma cópia desses arquivos para evitar o incidente Único Ponto de Falha. A redundância normal evita também a necessidade de soluções de redundância normalmente oferecidas pelo fornecedor do ambiente storage. Quando usamos redundância normal, o Oracle Clusterware automaticamente mantém duas cópias do arquivo OCR e três cópias do arquivo voting disk.

Se você escolher redundância externa para gravação dos arquivos OCR e voting disk, então para que se tenha redundância é necessário configurar espelhamento RAID em seu subsistema de discos para o incidente evitar Único Ponto de Falha.

Arquitetura e Processamento em Oracle Clusterware

O Oracle Clusterware é um software que quando instalado em servidores de mesmo sistema operacional, permite que esses servidores trabalhem como se fossem apenas um servidor. O Oracle Clusterware necessita de dois componentes: Um voting disk para gravar informações sobre o node membership e o Oracle Cluster Registry (OCR) para gravar informações sobre a configuração do cluster. Voting disk e OCR tem que residir um mesmo storage compartilhado. O Oracle Clusterware necessita que cada node seja conectado a uma rede privada através de interconexão privada.

A interconexão privada é uma rede separada a qual deve ser configurada entre os nodes participantes do cluster. Esta interconexão, a qual é requisitada pelo Oracle RAC, pode ser a mesma rede utilizada pelo clusterware, mas a interconexão não devem ser acessadas por nodes que não fazem parte do cluster.

A Oracle recomenda a redundância de interconexão para evitar que esta se transforme em único ponto de falha. Ela recomenda também o uso do User Datagram Protocol (UDP) sobre Gigabit Ethernet na configuração de interconexão do cluster. Cabos crossover não são suportados pelo Oracle Clusterware e nem pelo Oracle RAC.

O Oracle Clusterware gerencia os nodes do cluster e evita que uma ou instances tente controlar o acesso ao banco RAC. Isto pode ocorrer em falha na comunicação entre nodes via interconexão.

A arquitetura Oracle Clusterware suporta alta-disponibilidade através de reinicialização automática de componentes do cluster. O Oracle clusterware pode reiniciar automaticamente um node com objetivo de evitar que a indisponibilidade daquele node comprometa disponibilidade ambiente como um todo. Em um ambiente Oracle RAC, todos os componentes estão sobre o controle do Oracle Clusterware. O Oracle Clusterware também fornece uma API que permite o controle de outros processos Oracle.

Oracle RAC e Oracle Clusterware

Um cluster é composto de múltiplos computadores ou servidores interligados, mas que aos olhos dos usuários e aplicação aparentam ser apenas um servidor ou computador. O Oracle Database Real Cluster Application (Oracle RAC) possibilita a clusterização de bancos de dados Oracle. O Oracle RAC utiliza o Oracle Clusterware na criação da infraestrutura de interligação de multiplos servidores para estes trabalhem de forma sincronizada, como se fosse um único sistema.

O Oracle Clusterware é uma solução portável de gerenciamento de cluster e é um componente indispensável ao uso do Oracle RAC. Além disso, o Oracle Clusterware pode ser usado em single instance e RAC para ambientes que necessitem alta-disponibilidade. O Oracle clusterware possibilita a criação de um pool de storage para uso de sngle-instance e RAC databases.

Para utilizar o Oracle Clusterware é necessário que o sistema operacional esteja certificada para Oracle RAC. Todavia você pode utilizar clusterware de terceiros, caso estejam certificados para Oracle RAC.

O relacionamento entre banco e single-instance é de 1 para 1. Em ambientes Oracle RAC, esse relacionamento é de 1 para vários. Combinar capacidade de processamento de múltiplos servidores pode resultar em aumento significativo de taxa de transferência, de escalabilidade e de disponibilidade. Em ambientes Oracle RAC, cada instance normalmente roda em servidores separados.

A tecnologia Oracle RAC permite alta-disponibilidade e escalabilidade para todos os tipos de aplicação. A infraestrutura Oracle RAC é fundamental para implementação de arquitetura grid. Com o Oracle RAC é possivel agrupar pequenos servidores transformando-os em cluster. Isto resulta na criação de ambientes escaláveis e que podem suportar aplicativos de missão crítica, sem alteração de códigos.

domingo, 13 de julho de 2008

Internet e Disponibilidade de Servicos

Banco de dados e Internet tem possibilitado o compartilhamento de informações extendendo o acesso à aplicações de banco de dados a organizações e comunidades em todo o mundo. Esta extensão ressalta a importância da alta-disponibilidade em soluções de gestão de dados. Tanto os pequenos negócios quanto empresas multinacionais possuem usuários espalhados pelo mundo e, conseqüentemente necessitam acessar bases de dados 24 horas por dia. Sem acesso às bases de dados, operações param, vendas são perdidas. Os usuários que tornaram mais dependentes dessas soluções, que agora demandam acordos de nível de serviço com departamentos de tecnologia da informação.

Empresas tem usado a infraestrutura de TI para oferecer vantagem competitiva, aumentam a produtividade, encoraja usuários tomar decisões mais rápidas e baseadas em informações precisas. Todavia, com esses benefícios aumenta a dependência da infraestrutura. Se uma aplicação crítica torna-se indisponível, então todo o negócio pode transformar-se num jogo da sorte. Vendas e clientes podem ser perdidos, penalizações e multas podem ser aplicadas, a imagem da empresa pode ser afetada e consequentemente causa perdas no mercado de ações. Torna-se crítico examinar quais fatores que determinam como seus dados protegidos a maximizam a disponibilidade aos usuários.

Indicadores de disponibilidade mede a disponibilidade de uma aplicaçao, serviço ou funcionalidade. Esses indicadores são mensurados pela percepção do usuário final. Usuário detestam indisponibilidade de dados e, em geral, não entendem ou se preocupam em diferenciar complexidades entre componentes.

Confiabilidade, recuperabilidade, tempo de detecção de erro e monitoração contínua dos serviços são caracteristicas primárias de soluções de alta-disponbilidade. Um ambiente de alta-disponibilidade deve ser transparente a maioria da falhas, prover rotinas, pre-definidas, de medição preventiva, prover monitoração proativa e rápida identificação de falhas, recuperação rápida e automatizada, proteção de dados para evitar perdas indesejáveis, implementar melhores práticas de gestão de TI, prover alta-disponibilidade para cumprir acordo de níveis de serviço.

A importância da alta-disponibilidade varia de uma aplicação para outra. Todavia, a necessidade de oferecer melhoria nos níveis de disponibilidade aumenta a cada dia, com o objetivo de prover vantagens competitivas. Na maoria dos casos, novas solução são baseadas em acesso a dados de negócio. Quando o dado não é acessado, isto pode causar interrupções em fucionalidades da aplicação. Isto pode causar queda de produtividade, afetar o relacionamento com clientes, publicidade negativa, ações judiciais.

Quando aplicação do tipo missão-crítica torna indisponível, empresas são colocadas na berlinda. Nem sempre é fácil calcular da queda de serviços. Consumidores insatisfeitos, empregados parados e publicidade negativa casam prejuísos não mensuráveis em moeda.

A empresas sabem da importância da alta-disponibilidade de serviços de TI. Conseqüentemente, cada dia investem mais em soluções de segurança em infraestrutura, embora saibam que investir somente em TI não é tudo. Por exemplo, uma eventual greve dos Correios pode afetar profundamente os negócios de empresas que utilizam esse serviço para vender seus produtos via Internet, mas isto já é um outro assunto.

quinta-feira, 10 de julho de 2008

Visão Geral Sobre o Oracle Data Guard

Data Guard é um recurso de banco de dados Oracle, cujo objetivo é garantir alta disponibilidade, proteção e recuperação de dados corporativos. O Data Guard é composto de um pacote de serviços de criação, manutenção, gerenciamento e monitoração de um ou mais bancos de dados em modo de espera (standby), o que garante que bancos de dados de produção sobrevivam a desastres e corrupção de dados. O Data Guard mantém esses standby databases como cópias do banco de produção. Então, se um serviço de banco de dados de produção torna-se indisponível devido a uma interrupção, planejada ou não, o Data Guard pode redirecionar o serviço para o standby database, minimizando o downtime e os transtornos causados pela indisponibilidade do serviço.

Uma configuração Data Guard é composta de um banco de produção e de um ou mais bancos no modo espera. Os banco em uma configuração Data Guard são interligados via Oracle Net e dispersos geograficamente. Não há restrições sobre onde os bancos estão instalados, desde que haja comunicação entre eles.Uma configuração Data Guard contém um banco de produção, também conhecido como banco de dados primário. Esse banco é acessado por todas ou a maioria de suas aplicações e pode ter uma ou mais instâncias de banco.

Um banco de dados modo espera é uma cópia consistente de transações do banco de dados primário. Através de cópias do banco primário é possível criar até nove bancos modo espera e incorporá-los a uma configuração Data Guard. Uma vez criados, o Data Guard automaticamente mantém esses bancos atualizados aplicando todas a modificações ocorridas no banco primário. Assim como no banco banco primário, você pode ter uma ou mais instâncias de banco.

Os tipos de standby database são:

Standby database físico

É uma cópia idêntica do banco primário com estrutura de discos e de blocos idênticas. Os esquemas de banco, incluindo índices são idênticos. A estrutura do standby database é mantida através de aplicação arquivos de log de banco gerado pelo primary database. No Oracle11, essa aplicação de redo log files pode ser feita com o banco standby aberto no modo read-only.

Standby database lógico

Contém as mesmas informações do banco primário, embora a estrutura física e organização dos dados possa ser diferente. O sincronismo no standby database lógico é mantido através de aplicação comandos SQL. Isto é feito transformando o conteúdo dos redo log files recebidos do banco primário em comando SQL e então executados no banco standby.

Um standby database lógico pode ser usado para outros propósitos além de prevenção contra desastres. É possível realizar consultas e gerar relatórios a qualquer momento. Um standby database lógico, pode ser utilizado para proteção dos dados, geração de relatórios e upgrade de banco de dados.

Snapshot Standby Database

É uma cópia de um standby database físico. Este também recebe redo log files, mas não os aplica imediatamente. Isto é feito somente no momento em que se deseja criar um novo standby database físico.

Um snapshot standby database é útil quando se deseja realizar temporariamente alterações em standby database físico ou lógico. O tempo de transformação de snapshot standby database em standby database físico ou lógico depende da quantidade de archived log files a serem aplicados.

Em algumas situações, um negócio pode não aceitar perda de dados devido às circunstâncias do momento. Em outras situações, a disponibilidade do serviço de banco de dados pode ser mais importante do que qualquer potencial perda de dados. Algumas aplicações necessitam o máximo de desempenho o tempo todo e podem tolerar pequenas perdas de dados.
O modo Disponibilidade Máxima fornece o mais alto nível de proteção possível sem comprometer a disponibilidade do database primário. Transações não são efetivadas até que todos os dados do redo log buffer tenham sido gravadas no standby database. Se o database primário não puder gravar seus redo logs em pelo menos um standby database, ele automaticamente muda para desempenho máximo e opera nesta modalidade até que consiga gravar no standby database.Essa modalidade previne a perda de dados, exceto em caso de dupla falha, ou seja, bancos primário e standby database falharem em seqüência.

A modalidade Máximo Desempenho, garante o mais alto nível de proteção possível dos dados sem afetar o desempenho do banco de dados primário. Isto é conseguido permitindo que transações sejam efetivadas tão logo os redo logs gerados por aquelas transações sejam escritas no banco standby. Isto é feito no modo assíncrono e, portanto, evita que atrasos na gravação de redo log files no standby database afete o desempenho do primary database.

O modo Proteção Máxima garante que nenhum dado será perdido se o banco de dados primário falhar. Para fornecer este nível de proteção, os dados de redo necessários a recuperação tem que ser gravados no redo log file e em pelo menos um standby database antes da transação ser efetivada. Para garantir que a perda não ocorra, o banco de dados primário opta por encerrar seus serviços realizando automaticamente um shutdown no banco primário.

terça-feira, 8 de julho de 2008

Recriar objetos e manter privilegios

O desenvolvedor liga para o DBA e informa que sua aplicação, de uma hora para outra, passou a exibir o erro ORA-00942.

A causa deste incidente está na inexistência de uma tabela, de um sinônimo ou de privilégios. A falta de privilégios de acesso a um objeto pode ocorrer quando utilizamos "DROP/CREATE" ao invés de "CREATE OR REPLACE" para atualizar versões de objetos.