Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Arquitetura e estruturas internas do PostgreSQL

Ludmila Mariana
November 07, 2024
27

Arquitetura e estruturas internas do PostgreSQL

Apresentação realizada no PGConf.Brasil 2024, em BH.

Ludmila Mariana

November 07, 2024
Tweet

Transcript

  1. Sumário Arquitetura e estruturas internas do PostgreSQL Roteiro • Introdução

    • Catálogo do sistema • Information schema • Visualizando metadados • Automatização de tarefas administrativas
  2. Introdução Importância e utilidade • Diagnóstico avançado de problemas •

    Auditoria e introspecção de metadados • Migração e Upgrades • Manutenção eficiente
  3. Introdução Aplicativos cliente • psql • pg_dump e pg_restore •

    pg_basebackup • createdb e dropdb • … Documentação em: https://www.postgresql.org/docs/16/reference-client.html
  4. Introdução Aplicativos servidor • postgres • initdb • pg_ctl •

    pg_upgrade • … Documentação em: https://www.postgresql.org/docs/16/reference-server.html
  5. Introdução Processos • Postmaster; • Backend; • Listagem dos processos

    Postgres com o comando ps faux | grep postgres : Documentação em: https://www.postgresql.org/docs/16/bgworker.html https://savepoint.blog.br/2024/09/02/arquivos-diretorios-e-processos/
  6. Catálogo do sistema Documentação em: https://www.postgresql.org/docs/current/catalogs.html https://savepoint.blog.br/2024/09/09/catalogo-do-sistema-pg_catalog/ Catálogo do sistema

    • Conjunto de tabelas que contém metadados sobre o banco de dados e se encontram no schema pg_catalog; • Algumas das principais tabelas: ◦ pg_class ◦ pg_roles ◦ pg_database ◦ pg_namespace ◦ pg_attribute ◦ pg_constraints ◦ pg_proc ◦ pg_sequence ◦ pg_stats ◦ pg_settings
  7. Catálogo do sistema Information schema • Schema padronizado definido pelo

    ISO que traz informações sobre os objetos do banco de dados, assim como o pg_catalog (roda em cima dele); • Composto principalmente de views; • Suportado por diversos SGBDs; • Algumas das views: Documentação em: https://www.postgresql.org/docs/current/information-schema.html
  8. Catálogo do sistema Objetos lógicos e físicos Lógicos • Não

    têm uma representação física no sistema de arquivos, mas são gerenciados pelo Postgres (schemas, views, funções etc). Físicos • Têm representação física no sistema de arquivos, ou seja, também são representados por arquivos em disco (tabelas- incluindo as do catálogo, índices, tablespaces, databases etc); • Ficam nos diretórios global ou local, dentro do $PGDATA.
  9. Catálogo do sistema Objetos globais e locais Globais • Não

    pertencem a um banco de dados específico e podem ser acessados por qualquer banco de dados de uma instância no Postgres; • Ficam especificamente no diretório global, no $PGDATA; • Listagem de arquivos no diretório $PGDATA/global :
  10. Objetos globais e locais Locais • Pertencem a um banco

    de dados específico e só podem ser acessados dentro desse banco; • Ficam no diretório base, no $PGDATA, cada objeto dentro da pasta do seu respectivo banco de dados; • Listagem de arquivos nos diretórios $PGDATA/base e$PGDATA/base/16393 : Catálogo do sistema
  11. Catálogo do sistema Objetos globais e locais Caso de uso

    • Disco corrompido; • Como encontrar o arquivo com erro? • Exemplo:
  12. Automatização de tarefas Limpeza de tabelas com mais de 20%

    de espaço inutilizado • Geração de comandos para VACUUM usando as tabelas pg_class, pg_namespace e extensão pgstattuple_aprox:
  13. Dúvidas? Contatos: • Savepoint • Slides: Speaker decker (Ludmila Mariana)

    • Email profissional: [email protected] • Email pessoal: [email protected] • LinkedIn: Ludmila Chagas