Clique aqui para ler esse editorial em PDF
De que se trata o artigo: Demonstração de como o PostgreSQL gerencia sua estrutura física. Para tanto, serão explanados conceitos da organização dos arquivos e diretórios dos bancos de dados, demonstrando também como é feita a segmentação de valores muito grandes, através da técnica TOAST. Além disso, será mostrada a divisão das tabelas e índices em blocos de páginas. |
|
|
Resumo Devman |
Este artigo pretende mostrar como o PostgreSQL funciona internamente, descrevendo a estrutura física do mesmo, de maneira a servir como material base para estudos mais aprofundados sobre o SGBD em questão.
Inicialmente será mostrado como é feita a organização dos arquivos do banco de dados do PostgreSQL, onde será explorado o diretório dos arquivos de dados e como é a criação de toda estrutura a partir do comando initdb, que é um utilitário que inicializa um agrupamento do banco de dados (uma coleção de bases de dados que é gerenciada por uma instância do processo servidor).
Mostraremos também a técnica TOAST, que é usada para armazenar grandes objetos que são maiores que uma página do banco de dados, armazenando-os em outra área secundária. Por fim, mostraremos a estrutura interna de uma página do banco de dados.
A estrutura lógica do PostgreSQL será descrita em um próximo artigo, onde serão mostrados seus componentes e a forma de organização.
As informações contidas neste artigo podem ser aplicadas em todas as versões do PostgreSQL, a partir da 7.4.
O Utilitário initdb
A criação de um novo cluster (agrupamento) é realizada pelo utilitário initdb. Quando o programa é executado, o mesmo cria os arquivos que definem o agrupamento. O argumento mais importante do comando initdb é o “pgdata”, referenciado pelo argumento –D. A Tabela 1 apresenta mais alguns argumentos deste comando.
Argumento |
Descrição |
-D |
Especifica o diretório onde o agrupamento de banco de dados será armazenado (pgdata). |
-E |
Seleciona a codificação do banco de dados modelo. Também será a codificação padrão para todos os bancos de dados criados posteriormente. |
--locale |
Define o idioma padrão para o agrupamento de banco de dados. Se esta opção não for especificada, o idioma é herdado do ambiente onde o initdb está executando. |
-U |
Especifica o nome de usuário do super-usuário do banco de dados. |
Tabela 1. Alguns argumentos utilizados com o initdb. ...