PublicouOtávio Noronha Alterado mais de 3 anos atrás
3 Conhecendo o papel e tarefas de um DBA
4 O papel do DBA O DBA precisa manter um banco de dados corporativo "no ar" por todo o tempo que o sistema necessita, sem erros, com rapidez e confiabilidade. Ele precisa conhecer o banco e suas peculiaridades, pois ele é o responsável pela criação, manutenção e segurança do banco de dados da empresa. Isto inclui instalar o SGBD e o ajuste da infra-estrutura para permitir que as aplicações alcancem as bases de dados.
5 Tarefas do DBA As tarefas de um administrador de banco de dados variam dependendo do tipo de trabalho, da empresa, das políticas de Tecnologia da Informação (TI) e das características técnicas e potencialidades dos SGBDs que estão sendo administrados. A seguir estão relacionadas algumas tarefas que o DBA deve desempenhar:
6 · Projeto e criação do banco de dados;
· Ajuste e monitoramento de desempenho; · Backup e Recuperação; · Segurança do banco de dados; · Integridade de dados; · Suporte · Migração e atualização do SGBD;
7 Mesmo não sendo diretamente um dos deveres do DBA, a infra-estrutura e as modelagens lógica e física do banco de dados, às vezes, acabam fazendo parte do trabalho. Estas funções são tradicionalmente de responsabilidade do administrador de sistema (AS) e administrador de dados (AD) ou projetista (ver Figura 1).
8 Figura 1. Responsabilidades do DBA, AS e AD.
9 Projeto e criação do banco de dados
Uma tarefa do DBA é projetar o banco de dados com o intuito de obter o máximo de performance, escalabilidade, flexibilidade e confiabilidade. Na fase inicial do projeto é definida a estrutura do banco de dados, levando em consideração o levantamento de requisitos. O esquema desenvolvido nessa etapa é chamado projeto conceitual e proporciona uma visão detalhada da organização. Na fase de projeto lógico, o esquema conceitual de alto nível é mapeado para o modelo de implementação de dados do SGBD que será usado.
10 No projeto físico é necessário, além das técnicas supracitadas, um conhecimento mais aprofundado sobre o SGBD que será utilizado para criar o banco. O DBA deve estabelecer regras para o ciclo de vida dos dados armazenados, a fim de evitar o crescimento exagerado do banco, que compromete seu desempenho, além de ocupar desnecessariamente espaço em disco.
11 Ajuste e monitoramento de desempenho
O DBA deve certificar-se que o banco de dados é rápido e que a performance do servidor não afetará negativamente sua disponibilidade e usabilidade. O ajuste do banco de dados é um trabalho que exige bom senso e experiência. Existem algumas regras gerais, mas muitas são aprendidas com o uso, na base da tentativa e erro. O ajuste de um de banco de dados pode ser dividido em quatro partes (ver Figura 2):
12 Projeto: O projeto lógico de um banco de dados mal elaborado resulta, obviamente, em um projeto físico mal elaborado, o que geralmente degrada o desempenho. Não espere sua aplicação entrar em produção para ajustar o modelo. Nenhum dinheiro gasto com máquinas pode reparar um desempenho ruim causado por um projeto lógico mal elaborado.
13 Sistema Operacional: O sistema operacional deve ser ajustado de acordo com a documentação do fabricante. Para plataformas Windows, os ajustes default são geralmente suficientes. Já plataformas Solaris e Linux necessitam de uma atenção especial.
14 Banco de Dados: O ajuste do banco de dados abrange a memória alocada, o uso do disco, CPU, E/S e os processos do banco de dados. Envolve também a gerência e a manipulação da estrutura, tal como o design e o layout das tabelas e dos índices. Além disso, tuning de banco de dados envolve quase sempre a modificação da arquitetura a fim de otimizar o uso dos recursos de hardware disponíveis.
15 Aplicação: O ajuste da aplicação está diretamente relacionado aos códigos SQL armazenados nos sistemas. O objetivo desses ajustes é fazer com que os comandos SQLs acessem de maneira eficiente o banco de dados.
16 Figura 2. Gráfico de Impacto que cada área resulta na performance do banco de dados.
17 Backup e recuperação Para muitos profissionais de TI, a tarefa mais importante do DBA é manter a disponibilidade do banco: Do que adianta ter uma base de dados grande e funcional se a metade do tempo ela estiver inacessível? Uma boa arquitetura de backup e recuperação deve incluir um plano de prevenção de desastres, procedimentos e ferramentas que auxiliem na recuperação, além de procedimentos e padrões para realizá-la.
18 Há dois tipos de backup:
Os backups físicos e os backups lógicos. Backup físico é a operação em que os arquivos físicos do banco de dados são copiados para uma mídia qualquer, geralmente nas chamadas fitas de backup que possuam uma grande capacidade de armazenamento e que "fisicamente" poderão ser repostos a qualquer tempo. Já o backup Lógico é feito através de um utilitário do próprio banco de dados, responsável por ler as tabelas/tablespaces indicadas e gravá-las em outro lugar.
19 É importante notar que o backup deve estar armazenado distante dos servidores para não ser atingido em caso de uma calamidade (incêndio, desabamento, entre outras). O recovery deve estar acessível e próximo de onde desejamos efetuá-lo. Armazenamento de dados Muitas formas de maximizar a segurança foram criadas com base em novas tecnologias, hardwares e métodos de apoio aos processos de backup e recuperação, tais como:
20 Clustering: Também conhecido como Cluster, pode ser definido como um sistema onde dois ou mais computadores trabalham de maneira conjunta para realizar processamento pesado, como visto na Figura 3. Os computadores dividem as tarefas de processamento e trabalham como se fossem um único computador. Ele é desenhado de tal forma que uma falha em um dos componentes seja transparente aos usuários.
21 Figura 3. Armazenamento de Dados utilizando a técnica de Cluster
22 Mirrored (espelhamento): Os discos são espelhados, ou seja, é feita uma cópia exata de cada um em servidores diferentes. Em caso de falhas ou perda de um disco, o outro assume inteiramente o papel até a substituição do disco com problemas. Tem como vantagem não gastar tempo para a cópia, pois ocorre em tempo real, mas necessita de backup em caso de falha nos dados do servidor principal. É necessário pelo menos dois servidores, como mostra a Figura 4.
23 Figura 4. Armazenamento de Dados utilizando a técnica de Espelhamento onde temos uma cópia exata dos discos em Servidores diferentes.
24 Device Parity Protection: A proteção de paridade tem a tecnologia similar ao do RAID-5 (redundant array of independent disks). Ela permite a manutenção concorrente quando houver falha em um dos discos, pois divide toda a informação que chega e distribuí de um modo idêntico para todos os discos, como pode ser visto na Figura 5. Vale a pena lembrar que essa tecnologia não substitui a estratégia de backup e recovery.
25 A proteção de paridade pode impedir que seu sistema pare quando determinados tipos de falhas ocorrem. Pode diminuir o tempo de recuperação para determinados tipos de falhas, porém não protege de muitos tipos, tais como um desastre local ou um erro do operador ou do programador.
26 Figura 5. Técnica Device Parity Protection, permite manutenção concorrente em caso de falha.
27 Dual System: Dois sistemas, onde um deles (primário) atualiza constantemente o outro (secundário), permitindo assim a existência de uma base de dados duplicada e atualizada. Quando o sistema primário falha, o sistema secundário assume o seu papel. Técnica semelhante ao espelhamento;
28 Contingência: Modelo de processos que visa implementar medidas para garantir a disponibilidade dos principais serviços e a continuidade dos negócios vitais da companhia em situações de desastre ou contingência. Em caso de necessidade, todo o sistema pode ser transferido para uma instalação contratada junto a um provedor de serviços de contingência (data center). Essa mudança envolve o chaveamento dos links de comunicação entre o site de contingência e todas as filiais do cliente (ver Figura 6);
29 Figura 6. Técnica de Contingência.
30 Tipos de Backups Cópia simples: o backup é chamado de simples quando não envolve compressão de dados; Normal: consiste em armazenar tudo que foi solicitado, podendo ainda ser feita a compressão dos dados ou não. Este método também é chamado de backup completo quando são gravadas todas as informações existentes no banco. A desvantagem desse método é que se gasta muito tempo e espaço em mídia;
31 Diário: a cópia é feita checando-se a data
Diário: a cópia é feita checando-se a data. Armazenam-se todos os arquivos que foram criados ou alterados na mesma data em que se faz o backup. Gasta-se menos tempo e espaço em mídia, mas são armazenados apenas os arquivos criados ou alterados no dia; Diferencial: só é realizado após um backup normal. Gravam-se as diferenças entre os dados gravados no último backup normal e a data de gravação do backup diferencial. Apresenta como vantagem menos tempo e espaço em mídia, mas necessita do backup normal inicial;
32 Incremental: necessita do backup normal, e visa o incremento da informação após a criação do backup normal. Ao contrário do diferencial, se for feito um backup incremental após outro incremental, o segundo backup não irá conter os dados do primeiro.
33 Caso seja preciso restaurar o backup, será necessário restaurar o backup normal e todos os incrementais na ordem em que foram gravados, isto é, uma vez feito o backup normal, o incremental só irá gravar os dados alterados ou criados após o backup anterior, seja ele normal ou incremental. Tem-se como vantagem menor gasto de tempo e espaço em mídia, mas necessita do backup normal inicial e de todos os backups incrementais feitos após o normal.
34 Segurança do banco de dados
Neste item, o trabalho do DBA deve ser aterrado nos fundamentos da segurança de TI. A segurança deve ser projetada no banco de dados e nas aplicações. Isto envolve criar usuários no banco e determinar o nível apropriado de segurança para cada um. Integridade de dados Para assegurar a integridade dos dados, o DBA executa regras de integridade usando características do SGBD. Há três tipos principais de integridade: física, semântica e interna.
35 Integridade Física A integridade física pode ser assegurada usando características do SGBD, como, domínios e tipos de dados. O DBA pode também utilizar constraints para delimitar o tipo de dado que pode ser armazenado em determinadas colunas.
36 Integridade Semântica
Um exemplo de integridade semântica é a qualidade dos dados na base de dados. O resultado desse armazenamento incorreto é o dado armazenado de forma incoerente e redundante. As procedures ajudam a manter a integridade dos dados.
37 Integridade Interna Neste caso, o SGBD utiliza-se de estruturas e código internos para manter os links, ponteiros e identificadores. Na maioria dos casos, o SGBD manterá estas estruturas sem precisar do auxílio do DBA, porém este necessita estar ciente de sua existência e como lidar quando o SGBD falha. A integridade interna do SGBD é essencial nas seguintes áreas:
38 Consistência do índice
Consistência do índice. Um índice não passa de uma lista ordenada com ponteiros direcionados aos dados das tabelas no banco de dados. Se por alguma razão o índice perder o sincronismo com os dados, o acesso indexado pode não retornar os dados apropriados. O DBA possui ferramentas para verificar e remediar estes tipos de erros.
39 Consistência do ponteiro
Consistência do ponteiro. Às vezes, objetos grandes de multimídia não são armazenados nos mesmos arquivos físicos que outros dados. Conseqüentemente, o SGBD requer estruturas de ponteiro que mantenham o sincronismo desses dados. Consistência do backup. Alguns produtos do SGBD ocasionalmente fazem backup errado ou inapropriado. É essencial identificar estes cenários e tomar ações corretivas.
40 Suporte Os DBAs precisam trabalhar próximo aos membros da equipe técnica para assegurar um alto desempenho de todo o banco de dados. Além disso, em conjunto com as tarefas de Administração de Sistema Operacional, o DBA dará suporte e resolverá problemas associados com o SGBD, como alocação de recurso e o número de instâncias que serão criadas.
41 Migração e atualização do SGBD
O DBA também é responsável por controlar a migração das releases do SGBD. Após compreender as características oferecidas e a estabilidade da release, deve-ser decidir o melhor momento para a instalação.