Por que eu devo ler este artigo:Este artigo apresenta recomendações gerais para evitar a sobrecarga de um banco de dados utilizado por uma aplicação web que esteja recebendo um volume de conexões muito acima do normal e consumindo todos os recursos disponíveis do servidor de banco de dados. Assim, este artigo se concentra nas situações reais e nas ações que o DBA deve tomar para que o sistema obtenha eficiência e eficácia. Diante disso, o artigo destaca tarefas administrativas como, por exemplo, expurgo de dados, manutenção de índices, configurações do banco de dados, particionamento de tabelas, gerenciamento de log, verificação e alocação de espaço em disco e desligamento de tarefas e operações não essenciais.

A utilização de sistemas gerenciadores de bancos de dados (SGBDs) em aplicações web possui um conjunto de requisitos diferente do conjunto de requisitos de sistemas desktop que também utilizam banco de dados. Um dos requisitos mais importantes é a possibilidade de suportar uma grande quantidade de usuários de forma repentina devido a diversas situações.

Em geral, o fato de uma aplicação web poder ser acessada por qualquer usuário conectado a internet potencialmente pode levar a uma grande quantidade de acessos simultâneos, o que é desejado por muitos web sites. De fato, diversos indicadores de sucesso para um projeto web, especialmente lojas virtuais e blogs, são derivados dos números relacionados à quantidade de acessos, audiência e tempo de permanência dos usuários no site.

Do ponto de vista do banco de dados, o DBA responsável precisa conhecer os cenários, situações e contextos nos quais o banco de dados recebe uma quantidade de conexões e requisições muito acima do normal. Conhecer estes detalhes é importante para ajudar a preparar o ambiente para suportar estes momentos de muitas requisições de acordo com as tecnologias e opções do banco de dados disponíveis.

Afinal de contas, se o banco de dados não suportar uma grande quantidade de acessos, provavelmente diversos usuários não vão conseguir acessar o site, levando a implicações negativas para o negócio.

Com base neste contexto, este artigo vai discutir alguns cenários relacionados a situações com grandes quantidades de acesso, como preparar o banco de dados para estas situações, quais são as técnicas que podem ser utilizadas e comentar quais tecnologias e recursos podem ser empregadas para auxiliar o DBA no momento em que o banco de dados estiver sobre stress, ou seja, sobrecarregado.

Entendendo o cenário

Quem trabalha com desenvolvimento, infraestrutura ou suporte e conhece bem a área de banco de dados sabe que um dos principais tópicos que sempre estão em discussão é a escalabilidade. De forma simplificada, a escalabilidade em banco de dados se resume a como utilizar técnicas, recursos, opções e tecnologias para garantir que, quando a quantidade de dados, acessos e requisições aumentarem, o banco de dados como um todo consiga suportar este aumento de forma adequada.

Em geral os profissionais responsáveis pela implementação de algum tipo de escalabilidade no banco de dados optam por compreender, estudar, planejar e implementar a alta disponibilidade para atender os requisitos com calma, parcimônia e de forma organizada.

Contudo, em diversas situações nem sempre é possível agir de forma pragmática e metódica, uma vez que a quantidade elevada de acesso a dados e o volume esperado acaba sendo muito além do que poderia ter sido esperado ou mesmo imaginado por quem é responsável pelo banco de dados. Além disso, tal aumento de volume de acessos e dados acontece de forma inesperada. Veremos alguns exemplos de situações que envolvem web sites onde cenários com este acabam sendo uma realidade.

Uma das situações que cada vez mais acaba se tornando comum e que possui um grande impacto na infraestrutura das aplicações web são os ataques do tipo DDoS (ver BOX 1). Neste tipo de situação diversos usuários têm c ...

Quer ler esse conteúdo completo? Tenha acesso completo