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.

terça-feira, 24 de junho de 2008

Horas e Minutos No Formato Brasileiro

O uso intenso no computador nos dias atuais, faz com que diversas pessoas esqueçam o formato brasileiro de apresentação de horas. Há pessoas que escrevem horas e minutos utilizando formatos semelhantes ao do exemplo abaixo:
  • 12:15
  • 12:15 horas
  • 12:15 hrs
  • 12:15 hs
  • 12:15 h
segundo alguns lingüistas, nenhum dos formatos acima está de acordo com a norma culta, mas são aceitos pois são utilizados por diversos segmentos da sociedade, inclusive lingüistas.

No exemplo citado. O correto é o utilizado do exemplo a 12h15, mas como representar esse formato em aplicativo que utilize banco de dados Oracle. Para aplicar esse formato em um banco de dados Oracle, execute os comandos a seguir.

SELECT sysdate FROM dual;
ALTER session SET nls_date_format = 'DD/MM/YYYY HH24"h"MI';
SELECT sysdate FROM dual;

quinta-feira, 19 de junho de 2008

Atribuições de Um DBA

O uso de aplicativos via Internet aumenta a cada dia e, consequentemente, cresce significativamente o surgimento de empresas de TI disponibilizando serviços de bancos de dados. Isto implica em contratação de serviços de administração de bancos de dados. Quais são as principais atividades de um DBA. Abaixo temos uma lista de atribuiçoes, a quais considero fundamentais para o dia-a-dia desse especialista.

Avaliação de Recursos de Hardware
Esta diretamente ligada a aquisições de hardware para suprir eventuais faltas de recursos ou atualização tecnológica. O papel do DBA é avaliar o impacto da mudança sobre os serviços de bancos de dados.

Instalação de Produtos
Embora os principais servidores de bancos de dados possuam excelentes programas instaladores, ainda é necessário que o DBA participe ativamente da instalação e configuração desses produtos.

Planejamento de Recursos de Banco
É importante entender como a estrutura lógica de um banco afeta o desempenho do sistema e de diversas operações de gerenciamento de banco de dados.

Por exemplo, antes de criar as tablespaces é necessário definir quais e como os discos serão utilizados.

Criação e Disponibilização de Serviços
A criação de um banco ocorre quando há implementações de novos projetos, migrações e atualização de versões.

A disponibilização de serviços de banco é realizada pela gestão de ambientes TI, baseada em roteiros de comandos de inicialização de servicos.


Cópias de Segurança (Backup)
Embora a tecnologia de armazenamento em discos tenham evoluído bastante, antes de vender serviços de TI, certifique-se de que esses podem ser salvos em fitas backup.

Há diversos métodos de execução de backup. É importante que o método escolhido esteja de acordo com a política de backup definida no acordo de nível de serviços.

Controle de Acesso
Para administrar e ter controle de acesso aos serviços de banco de dados é necessário que o DBA tenha privilégios de superusuário, e, conseqüentemente ter condições de controlar os acesso dos demais usuários.

Ter privilégios de superusuário não significa ter acesso às informações de negócio, mas condições de realizar todas as tarefas de administração de de bancos de dados.

Implementação de Projetos de Banco
Implementar projetos de banco significa preparar o banco para uso a partir de aplicativos, criando ou atualizando os objetos desse aplicativo, tais como: tabelas, índices, procedimentos catalogados.

Desempenho de Serviços de Banco
Produzir e analisar relatórios sobre a saúde do banco de dados é uma das tarefas mais importantes, realizadas pelo DBA.

O principal objetivo dessa atividade é verificar se indicadores de desempenho estão de acordo com os níveis de serviços contratados pelo cliente.

Instalação de Patches
Não existem programas de computadores cem por cento corretos. Portanto, eventualmente é necessário corrigir esses programas instalando correções distribuídas pelos fabricantes.

Essa atividade pode ser realizada por demanda ou automaticamente, mas depende da análise do DBA sobre o impacto da mudança.

Clonagem e Migração de Serviços
A clonagem de serviços de banco muito utilizada em ambientes de TI que possuem vários servidores utilizando a mesma versão de produtos de banco.

Nas grandes empresas de prestação de serviços de TI, ocorre pelo menos uma migração de serviços de banco por semana. Portanto se você é um DBA, então já migrou ou vai migrar pelo banco de dados.


As atribuições listadas acima podem sofrer modificações, tudo depende da evolução tecnológica. Todavia, as grandes empresas são avessas à mudanças que possam comprometer seus negócios.

segunda-feira, 16 de junho de 2008

Lentidão ao Habilitar Chaves Estrangeiras

O DBA recebe a reclamação de que a habilitação de chaves estrangeiras de algumas tabelas recém importadas via Oracle Datapump está demorando mais do que deveria, embora o banco não apresente problemas de desempenho.

Este comportamento é experado na versão 10.2.0. As informações de estatística são bloqueadas durante uma importação via Datapump, se os metadados forem importados. Isto acontece porque no Oracle 10g, por definição, estatísticas realizadas automaticamente. Consequentemente, as estatísticas importadas, se não bloqueadas, poderiam ser perdidas na proxima coleta.

A solução para o incidente em questão, consiste em desbloquear o acesso as estatíticas de tabela executando o procedimento DBMS_STATS.UNLOCK_TABLE_STATS('DONO','TABELA') ou não importar estatísticas de tabelas.

quarta-feira, 4 de junho de 2008

Benefícios do Oracle SCM

O SCM, Software Configuration Manager, é oferecido pela Oracle como parte do contrato Premier Support. O SCM é um framework para obtenção e centralização de informações sobre configuração de ambientes que possuem produtos Oracle. A equipe de suporte a produtos Oracle utiliza essas informações para análise e resolução de incidentes.

Verificações sobre o ambiente, como alertas de segurança, alertas em geral e situação atual do ambiente, são notificadas proativamente. Estas notificações permitem um controle maior sobre o ambiente Oracle, impedindo que incidentes conhecidos tornem-se críticos.

Segundo a Oracle as informações do ambiente do cliente, disponíveis a sua equipe de suporte estão estritamente limitadas aos ítens de configuração de produtos Oracle. Entretanto cabe ressaltar que para configurar o SCM é necessário informar a senha de um usuário com perfil SYSDBA (controle total do banco de dados). O SCM utiliza Secure Socket Layer (SSL), HTTPS e criptografia 128-bit para garantir a segurança das informações de configuração. Informações operacionais, negócio e dados pessoais dos usuários nunca são coletados.

A informações coletadas pelo SCM são: identificação dos ambientes onde residem os produtos oracle, componentes oracle disponíveis naquele ambiente, ítens de configuração desses componentes. Por exemplo, para os componentes do tipo banco de dados, a equipe de suporte oracle terá acesso a informações sobre ítens de banco, tais como: SGA, nome do banco, tablespaces, datafiles, redo log files, control files, lista de usuários dos bancos.

Obter nomes de bancos, tablespaces, datafiles e lista de usuários de banco de dados, pode ser considerado uma falha na segurança. Tudo depende de análise de especialistas em segurança da informação. Em geral, a identificação desses ítens revelam nomes de produtos concorrentes instalados no ambiente do cliente, contas sigilosas de usuários especiais. Entretanto cabe ressaltar que informações desta natureza já são enviadas a equipe de suporte da Oracle, via RDA, Remote Diagnostic Agent.

A instalação do SCM é extremamente simples. Consiste em dezipar em um diretório o instalador do SCM obtido no site da Oracle. Em seguida, deve-se executar o programa configCCR informando o CSI (Customer Support Identifier), identificação de acesso ao Oracle Metalink (Service Desk da Oracle) e a sigla do país (exemplo: br). Ao instalar o SCM, o configCCR obtém a versão atualizada do SCM, instala o SCM e registra imediatamente o ambiente do cliente no servidor SCM, localizado na Oracle.

Além de registrar ambientes no SCM, o administrador deve registrar os bancos de de dados e servidores de aplicação. Esse registro deve ser realizado executando o script installCCRSQL.sh. Em seguida, execute a faça a primeira e coleta e envio de ítens de configuração ao SCM, executando o comando emCCR collect. As demais coletas serão executadas diariamente, via programa de execução automática de tarefas do sistema operacional (exemplo: cron).

Para utilizar o aplicativo SCM, o administrador de bancos de dados deve acessar o endereço https://csm.oracle.com/CSP/ui/index.html, informando o nome do usuário e a senha de acesso ao Metalink.

O uso do SCM deve reduzir significativamente o tempo de atendimento a incidentes de bancos de dados e de servidores de aplicação, pois a interação entre DBA e Suporte Oracle será menor, ou seja, haverá mais especialistas tratando menos incidentes, ou quem sabe, menos especialistas tratando menos incidentes.

Leia mais em: Oracle Data Sheet

terça-feira, 3 de junho de 2008

DBA Sem Privilégios

Muitos administradores de bancos de dados não sabem, mas ambientes preparados para residir diversos aplicativos são excelentes para implementação de em recurso de segurança, cujo nome é Oracle Database Vault. Com ele é possível conceder aos usuários toda liberdade do mundo da aplicação deles, sem comprometer níveis de serviço sob a responsabilidade do centro de dados.

O DBA perde todos os privilégios de acesso ao dados, sem perder privilégios necessários a administração e manutenção do serviço de banco de dados. Com o Oracle Database Vault a política de segurança é implementada e controlada pela área de segurança ou diretamente pelo cliente.

Fonte: http://www.oracle.com/database/database-vault.html