quarta-feira, 3 de setembro de 2008

Processos E Threads

Uma das vantagens do compartilhamento de recursos utilizando threads e evitar a ociosidade daqueles processos que são alocados por instruções de aplicativos de baixo consumo de recursos. Além de evitar o esgotamento de recursos de hardware.

Sou DBA Oracle. Em nosso datacenter temos alguns serviços de banco de dados que são configurados para que várias sessões de banco utilizem um único processo. Normalmente temos 80 processos do sistema operacional atendendo milhares de conexões de banco.

Se tivessemos que trabalhar no modo conexão dedicada, ou seja: um processo para cada conexão de banco, então teriamos alocar uma quantidade muito maior de recursos de hardware para atender a todas as requisições de banco.

Assuma que um banco de dados seja utilizado por uma central de telemarketing, a qual possui 1000 atendentes. Em média, cada atendente gasta 90% do tempo falando com os clientes e apenas 10% do tempo consultando e efetuando modificações na base de dados. Para garantir um bom desempenho do aplicativo sem desperdicio de recursos, o DBA configura o banco para trabalhar com apenas 100 processos do sistema operacional.

quarta-feira, 20 de agosto de 2008

SQL Server Via Oracle Database Gateway

O Oracle Database Gateway permite que aplicações oracle acessem bancos de dados não-oracle. Esse componente e o Heterogeneus Services trabalham juntos no objetivo de apresentar os dados como se fossem de um banco de dados Oracle, embora os dados possam estar distribuídos por diversos ambientes e o mais variados tipos de bancos de dados.

O Oracle Database Gateway para ODBC (DG4ODBC) permite a construção de soluções heterogêneas que transparentemente integra ODBC com bancos de dados Oracle. O ODBC fornece uma interface padrão para bancos de dados relacionais, incapsula aplicações de banco e traduz os comandos especificos do banco de dados de origem em algo que possa ser entendido pelo banco de dados Oracle. O uso do ODBC na ligação entre o banco de origem e o banco de dados oracle, faz com que o DG4ODBC não esteja vinculado a um especifico tipo de banco de dados. Esta arquitetura flexível possibilita a convivência com qualquer banco de dados compatível com o ODBC.

Usando o DG4ODBC, você pode imediatamente rodar suas aplicações oracle, tanto construídas pela Oracle ou por terceiros, para acessar informações via ODBC de bancos de dados oracle e não-oracle. As aplicações não necessitam ser reescritas ou reconfiguradas. O DG4ODBC não causa impacto nas aplicações, você pode usufruir das vantagens de uma arquitetura multi-plataforma na integração de diferentes tipos de bancos de dados.

O DG4ODBC é parte integrante do Oracle 11g, sem custo adicional, e suporta Oracle 11g e Oracle 10g. Para integração de bancos dados ODBC em versões anteriores ao Oracle 10g, é necessário customizar o banco.

Fonte: http://www.easysoft.com/applications/oracle/database-gateway-dg4odbc.html



segunda-feira, 18 de agosto de 2008

Como Criar Uma Instancia ASM

Antes de criar uma instância ASM, certifique-se de que o CSS Daemon tenha sido iniciado. Caso contrário inicie o serviço. As instruções podem ser obtidas em http://dba-adilson-silva.blogspot.com/2008/08/o-asm-depende-do-css-daemon.html.

Criar uma instância ASM é facil. Execute o dbca informando parâmetros de configuração do ASM. veja abaixo.
$ dbca -silent -configureASM             \
-asmSysPassword change_on_install \
-diskString "/dev/dbs/rawdisk*" \

domingo, 17 de agosto de 2008

O ASM Depende Do CSS Daemon

Muitos DBA que decidem utilizar pela primeira vez o ASM, surpreendem-se com erros relacionado ao daemon css ao configurar uma instância ASM. Configurar esse serviço é fácil, basta criar o arquivo de inicialização de banco apenas com o parametro INSTANCE_TYPE=ASM. Entretanto somente isto não é suficiente. Você tem que iniciar, como root, o Cluster Syncronization Services daemon. Para isto, execute o comando a seguir:

# /u01/app/oracle/product/11.1.0/db_1/bin/localconfig reset
Successfully accumulated necessary OCR keys.
Creating OCR keys for user ‘root’, privgrp ‘root’..
Operation successful.
Configuration for local CSS has been initialized

Adding to inittab
Startup will be queued to init within 30 seconds.
Checking the status of new Oracle init process…
Expecting the CRS daemons to be up within 600 seconds.

Caso o serviço não suba em dez minutos digite CTRL-C e execute o comando a seguir.

# nohup /etc/init.d/init.cssd run >/dev/null 2>&1 

quarta-feira, 13 de agosto de 2008

Export/Import Via Database Link

O Datapump é uma boa opção para quem utiliza o Oracle10 e deseja exportar e, em seguida, importar tabelas entre bancos sem utilizar área temporária para acomodação de arquivos de dump.

Com Oracle Datapump é possível importar dados de outro banco via database link. O processo é um pouco mais lento, mas é uma alternativa para ambientes com pouco espaço em disco.

O exemplo abaixo mostra importar tabelas via database link.

impdp ze/maneh TABLES=tab1,tab2 \
DIRECTORY=ze_dir \
NETWORK_LINK=ze_link \
LOGFILE=import.log

OBS: Antes de utilizar o Oracle Datapump na importação de tabelas via database link, certifique-se da criação dos objetos de banco database link e directory.

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.

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

sexta-feira, 30 de maio de 2008

Sessao Marcada Para Morrer, Para Sempre

Eis uma dica de como eliminar, em bancos de dados Oracle, sessões marcadas para morrer mas que nunca morrem.

Se você tem uma sessão de banco a qual teve de ser assassinada, mas continua agonizando por um longo período, acabe com ela executando o procedimento a seguir.

a) Na plataforma Unix:

SQL> SELECT spid
FROM v$process
WHERE NOT EXISTS ( SELECT 1
FROM v$session
WHERE paddr = addr);


$ kill

b) Na plataforma Windows:

SQL> SELECT spid, osuser, s.program
FROM v$process p, v$session s
WHERE p.addr=s.paddr;

Mate o processo executando no prompt DOS o comando abaixo.

c:\> orakill

A razão pela qual uma sessão continue agonizando e porque ela está aguardando uma resposta do cliente SQLNet. Quando isto acontece o servidor informa que sua sessão foi assassinada e encerra a sessão. O processo pode manter-se ativo até que o cliente encerre o aplicativo.


O PMON pode apropriar-se da sessão enquanto realiza tarefas encerramento da sessão recém assassinada. Se essas tarefas não puderem ser executadas imediatamente, ele manterá a sessão sob um falso processo, enquanto executa outras tarefas.

Encontrando o spid, você pode efetivar a morte do processo. Antes de encerrar um processo, certifique-se de que esse seja um processo dedicado, aqueles denominados "oracle (local=NO)". Certifique-se, também, de que não é um processo do tipo ora_d000_, ora_s000_, ora_pmon_ .

sexta-feira, 16 de maio de 2008

ASM - Como Mudar Nomes de Arquivos de Dados

Nomes de arquivos de banco de dados podem ser modificados como qualquer outro tipo de arquivo. Em ASM, esta modificação é realizada através da criação de apelidos.

Mudança de nomes em arquivos de banco de dados é necessário quando há migrações de estrutura ou mudança no padrão de nomenclaturas.


Para mudar nomes de datafiles, utilize o procedimento abaixo.

Instância ASM:

1- Crie nomes de diretórios dentro de grupo de discos.

alter diskgroup dg_name
add directory '+dg_name/new_dir_name';

alter diskgroup
dg_name
add directory '+dg_name/new_dir_name/datafile';


2- Crie os novos apelidos dos arquivos de dados.

alter diskgroup dg_name
add alias '+dg_name/db_name/datafile/old_data_file_name'
for '
+dg_name/db_name/datafile/new_data_file_name';

Instância de banco:

3- Inicie o banco no modo monta e modifique o nome do arquivo de dados. Para realizar alterações em aquivos de dados, permanentes ou temporário, é necessário que o banco tenha sido iniciado no modo monta. O banco também pode ser iniciado no modo abre, mas os arquivos de dados a serem renomeados tem que estar no modo desligado.

startup mount

alter database rename
file '
+dg_name/db_name/datafile/old_data_file_name'
for '
+dg_name/db_name/datafile/new_data_file_name';

Nota: Não é possível modificar nomes de arquivos gerados pelo ASM. A única alternativa é alterar ou criar apelidos para os arquivos de dados.

alter diskgroup
dg_name rename
alias '+
dg_name/db_name/datafile/old_data_file_name'
to '+
dg_name/db_name/datafile/new_data_file_name';