Existem muitas ferramentas usadas na Administração de Banco de Dados que ajudam a simplificar o gerenciamento de bancos de dados de código aberto. A vantagem de usar esses tipos de aplicativos são os menus de disponibilidade de vários objetos do banco de dados (como tabelas, índices, sequências, procedimentos, visualizações, gatilhos) para que você não precise usar a linha de comando ao usar um cliente de banco de dados nativo . Basta navegar no menu e ele aparecerá imediatamente na tela.
Neste blog, revisaremos um dos aplicativos de gerenciamento de banco de dados de terceiros para PostgreSQL chamado pgAdmin. É uma ferramenta de gerenciamento de banco de dados de código aberto que é útil para administração de banco de dados, desde a criação de tabelas, índices, visualizações, gatilhos, procedimentos armazenados. Além disso, o pgAdmin também pode monitorar o banco de dados em busca de informações relacionadas a Sessões, Transações por Segundos e Bloqueios.
pgAdmin Monitoramento
Existem algumas métricas no pgAdmin que podem ser valiosas para entender o estado atual do banco de dados. Aqui estão as métricas de exibição no pgAdmin.
No Dashboard, você pode monitorar informações relacionadas às conexões de entrada para o banco de dados através de Sessões de Servidor. Informações relacionadas a transações de commit, rollbacks e total de transações por segundo no banco de dados podem ser vistas na tela Transactions per Seconds. Tuplas em contém informações relacionadas ao total de tuplas inseridas, atualizadas, excluídas no banco de dados. As tuplas out contêm informações de tuplas que são retornadas ao cliente do banco de dados. Tuplas em si é um termo no PostgreSQL para linhas. O Metrics Block I/O contém informações relacionadas às informações do disco, tanto o total de blocos lidos quanto os blocos buscados do cache do banco de dados.
A atividade do servidor contém informações relacionadas a sessões em execução, bloqueio que ocorre no banco de dados, instruções preparadas de consultas e configuração do banco de dados. Conforme mostrado na imagem abaixo.
Em Propriedades, você pode ver informações relacionadas ao banco de dados PostgreSQL que está sendo acessados, como o nome do banco de dados, tipo de servidor, versão do banco de dados, endereço IP e o nome de usuário usado.
O SQL contém informações relacionadas ao script SQL gerado criado a partir de um objeto selecionado do seguinte modo:
As informações no objeto destacado são exibidas em grande detalhe, pois contém um script para reconstruir um objeto.
Na guia Estatísticas, as informações relacionadas às estatísticas coletadas de cada objeto em execução no banco de dados são exibidas no menu.
Como exemplo, a tabela acima contém informações sobre Tuplas (inseridas, atualizadas , excluído, vivo, morto). Há também informações relacionadas ao vácuo e à análise automática.
Vacuum é executado para limpar tuplas mortas no banco de dados e recuperar o armazenamento em disco usado por tuplas mortas. Enquanto as funções de análise automática geram estatísticas sobre objetos, o otimizador pode determinar com precisão o plano de execução de uma consulta.
Monitoramento do PostgreSQL do ClusterControl
O ClusterControl possui várias métricas relacionadas ao banco de dados PostgreSQL que podem ser encontradas nas guias Visão geral, Nós, Painel, Monitor de consultas e Desempenho. As métricas a seguir são exibidas no ClusterControl.
A seção Visão geral contém informações relacionadas às métricas de carga do servidor que variam de conexão, número de inserção, exclusão, atualização, confirmação e reversão e conexão. Além disso, há informações como nós de integridade, o status de replicação do banco de dados PostgreSQL e também informações relacionadas à utilização do servidor, conforme mostrado na figura abaixo.
A guia Nodes fornece informações relacionadas a gráficos no lado do servidor a partir da CPU Utilização, Memória, Uso de Disco, Rede e Uso de Troca.
O Painel tem várias opções de métricas, como Visão geral do sistema, Visão geral do cluster e Visão geral do PostgreSQL. Para cada opção, existem várias métricas relacionadas à condição do sistema em execução. Por exemplo, nas métricas de Visão geral do PostgreSQL, há informações que variam de médias de carga do banco de dados, memória disponível e transmissão e recebimento de rede, conforme mostrado abaixo.
O Query Monitor contém informações relacionadas à execução de consultas executadas no banco de dados. Podemos descobrir quais consultas estão sendo executadas, quanto tempo é o tempo de execução, informações de endereço do cliente de origem e o estado da sessão. Além disso, há um recurso Kill session, onde podemos encerrar a sessão que faz com que o banco de dados sofra atrasos. A seguir está a exibição do Query Monitor:
Além de executar consultas, também podemos visualizar informações de Estatísticas de Consulta, começando de Acesso por varredura sequencial ou de índice, Estatísticas de E/S de tabela, Estatísticas de E/S de índice, Tamanho do banco de dados, As 10 maiores tabelas.
A aba Performance contém informações relacionadas às variáveis do banco de dados e o valor atualmente em execução, além de que existe um Advisor para fornecer entradas relacionadas ao acompanhamento do aviso ocorrido.
O crescimento de bancos de dados e tabelas também pode ser monitorado no menu DB Growth, você pode prever necessidades de armazenamento ou outras ações que serão executadas analisando as métricas de crescimento desses bancos de dados e tabelas.
Tarefas de administração do PostgreSQL com pgAdmin
pgAdmin possui vários recursos para administração de banco de dados e objetos que estão no banco de dados, desde a criação de tabelas, índices, usuários e tablespaces. Os vários recursos do pgAdmin são muito úteis tanto para Desenvolvedor quanto para DBA, pois facilitam muito o gerenciamento de objetos de banco de dados. A seguir está a aparência da Árvore de Menus no pgAdmin.
Você pode simplesmente clicar com o botão direito do mouse no objeto a ser destacado, então lá serão ações que podem ser feitas a partir desse objeto. Por exemplo, destacando Banco de dados, você pode criar um novo banco de dados como este:
Haverá uma caixa de diálogo para preencher as informações do nome do banco de dados, o proprietário do banco de dados a ser criado, a codificação que será utilizada, o tablespace que será utilizado pelo banco de dados, segurança de acesso ao banco de dados.
Quais usuários têm o direito de acessar e quais privilégios serão concedidos.
Tarefas de administração do PostgreSQL com ClusterControl
O ClusterControl também pode criar usuários e privilégios que serão concedidos ao Gerenciamento de usuários, conforme mostrado na figura a seguir.
Com o ClusterControl você pode implantar bancos de dados PostgreSQL altamente disponíveis. Gerenciar seu PostgreSQL é tão fácil quanto clicar no menu no painel. Existem alguns recursos para administrar seu PostgreSQL no lado do cluster, como Add Load Balancer, Add Replication Slave, Enable/Disable Cluster Recovery e Node Recovery, conforme mostrado abaixo.
Você também pode criar um novo cluster PostgreSQL e replicá-lo a partir do cluster, usando o item de menu Create Slave Cluster. A replicação de cluster para cluster é um novo recurso fornecido pelo ClusterControl.
No lado do Nó, existem várias tarefas administrativas de banco de dados que você pode executar, como Reinicializar Host, Reiniciar Nó, Parar Nó, Promover Escravo, Parar Escravo. Você pode acessar seus hosts remotamente por meio do console SSH.
Rebuild Replication Slave é um recurso interessante para corrigir automaticamente servidores escravos que quebraram além reparar. Ele para o escravo, apaga seu conteúdo e transmite um novo backup do servidor mestre. Depois que o backup é aplicado, a replicação é retomada para que possa alcançar o mestre novamente. Tudo isso com apenas um clique.
Há também um recurso para visualizar o estado atual de sua arquitetura de topologia PostgreSQL em ClusterControl.
Ele fornece, rapidamente, informações úteis sobre o cluster PostgreSQL atual, como como latência entre os nós, tempo de atividade do banco de dados, versão do banco de dados que você usa, o estado de sincronização, atraso de replicação.
Você também pode alterar a configuração relacionada aos parâmetros do banco de dados e o endereço IP da ACL que possui o direito de acessar o banco de dados no menu Configuração.
Executar um ambiente de banco de dados distribuído geralmente requer algum tipo de balanceamento de carga e controle de tráfego , pois existem várias instâncias de banco de dados e os aplicativos não acompanhariam qual é o mestre gravável e quais são os escravos somente leitura. O ClusterControl permite integrar o HAProxy para essa finalidade. O próprio HAProxy pode ser altamente disponível usando Keepalived, para que os aplicativos possam se conectar usando um endereço IP virtual que flutua para outra instância caso o balanceador de carga HAProxy primário fique inativo.
O ClusterControl possui outros recursos, como relatórios operacionais, que fornecem análises sobre o uso do servidor, tempo de atividade, segurança e capacidade semanal ou mensalmente. O pgAdmin é ótimo para manipular objetos no banco de dados, enquanto o ClusterControl é mais voltado para operar o sistema e mantê-lo.