0% acharam este documento útil (0 voto)
18 visualizações5 páginas

Novidades e Melhorias do PostgreSQL 16.3

Enviado por

thayse.santiago
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações5 páginas

Novidades e Melhorias do PostgreSQL 16.3

Enviado por

thayse.santiago
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

PostgreSQL 16.

Lançado como uma versão de manutenção dentro da série PostgreSQL 16, o 16.3 inclui várias melhorias incrementais e correções
de bugs além das funcionalidades introduzidas nas versões principais de PostgreSQL 13, 14, 15 e 16.
Principais Melhorias e Recursos (desde o PostgreSQL 12):

1. Performance:
o Aumento significativo na performance de consultas paralelas e operações OLAP.
o Melhor gerenciamento de memória e cache.
o Otimizações para operações de leitura e escrita em sistemas de arquivos.

2. Particionamento:
o Novos métodos de particionamento e suporte para particionamento automático.
o Capacidade de mover partições de uma tabela para outra sem downtime.

3. Conformidade SQL e Recursos de Linguagem:


o Suporte aprimorado para JSON e operações JSONB.
o Novas funções e operadores para manipulação de tipos de dados complexos.
o Melhorias no suporte a funções de janela e agregações avançadas.

4. Backup e Recuperação:
o Melhorias na recuperação point-in-time (PITR).
o Melhorias na consistência e eficiência de backups incrementais.

5. Segurança e Autenticação:
o Suporte para métodos modernos de autenticação como OAuth.
o Melhorias na criptografia de dados e gerenciamento de chaves.

6. Extensibilidade:
o Novos hooks e APIs para a criação de extensões mais robustas.
o Melhorias no gerenciamento e instalação de extensões.

7. Correções de Bugs e Estabilidade:


o Centenas de correções de bugs e melhorias de estabilidade.

Característica PostgreSQL 12 PostgreSQL 16


Melhorias em consultas paralelas, gerenciamento de memória e
Performance Melhorias no VACUUM e B-tree
cache, otimizações em leitura/escrita
Novos métodos de particionamento, movimentação de partições
Particionamento Índices únicos, melhor planejamento
sem downtime
Colunas geradas, melhor suporte Suporte ampliado para JSON, novas funções e operadores, melhorias
Conformidade SQL
para CTEs em funções de janela
Backup e Backup incremental, melhorias no Melhorias no tempo de recuperação, novas opções PITR, consistência
Recuperação pg_basebackup de backups incrementais
Autenticação moderna (OAuth), melhorias na criptografia e
Segurança Controle de acesso por colunas
gerenciamento de chaves
Novos hooks e APIs para extensões, melhor gerenciamento de
Extensibilidade -
extensões
Centenas de correções e melhorias na estabilidade desde a versão 12
Correções de Bugs Correções na versão 12.x até 16.3
PostgreSQL 16 contém muitos novos recursos e aprimoramentos, incluindo:

• Permitir paralelização de FULL e direito interno OUTER hash junta-se


• Permitir replicação lógica de servidores em espera
• Permitir que os assinantes de replicação lógica apliquem grandes transações em paralelo
• Permitir o monitoramento de I/O estatísticas usando o novo pg_stat_io ver
• Adicionar SQL/JSON construtores e funções de identidade
• Melhorar o desempenho do congelamento a vácuo
• Adicionar suporte para correspondência de expressão regular de nomes de usuários e bancos de dados
em pg_hba.conf, e nomes de usuário em pg_ident.conf

Os itens acima e outros novos recursos de PostgreSQL 16 são explicados em mais detalhes nas seções abaixo.

Migração para a versão 16

Restauração usando pg_dumpall ou uso de pg_upgrade é necessária uma replicação lógica para aqueles que desejam
migrar dados de qualquer versão anterior.

A versão 16 contém várias alterações que podem afetar a compatibilidade com versões anteriores.
Observe as seguintes incompatibilidades:

*Alterar regras de atribuição para PL/pgSQL variáveis do cursor ligado.


Anteriormente, o valor da string de tais variáveis era definido para corresponder ao nome da variável durante a
atribuição do cursor; agora será atribuído durante OPEN, e não corresponderá ao nome da variável. Para restaurar o
comportamento anterior, atribua o nome do portal desejado à variável cursor antes OPEN.

*Não permitir NULLS NOT DISTINCT índices para chaves primárias.

*Mudar REINDEX DATABASE e reindexdb para não processar índices em catálogos de sistemas.
O processamento desses índices ainda é possível usando REINDEX SYSTEM e reindexdb --system.

*Apertar GENERATED restrições de expressão em tabelas herdadas e particionadas.


As colunas das tabelas pai/particionado e filho/partição devem ter o mesmo status de geração, embora agora as
expressões reais de geração possam ser diferentes.

*Remover pg_walinspect funções pg_get_wal_records_info_till_end_of_wal() e pg_get_wal_stats_till_end_of_wal().

*Renomear variável do servidor force_parallel_mode para debug_parallel_query.

*Remova a capacidade de create viewes manualmente com ON SELECT regras.

*Remover a variável do servidor vacuum_defer_cleanup_age.


Isso tem sido desnecessário desde então hot_standby_feedback e replication slots foram adicionados.

*Remover variável do servidor promote_trigger_file.


Isso foi usado para promover um standby para primário, mas agora é mais facilmente realizado com pg_ctl
promote ou pg_promote().

*Remover variáveis de servidor somente leitura lc_collate e lc_ctype.


Colações e localidades podem variar entre bancos de dados, portanto, tê-los como variáveis de servidor somente leitura
não foi útil.
*A herança de função agora controla o status de herança padrão das funções de membro adicionadas durante GRANT
O comportamento de herança padrão da função pode ser substituído com o novo GRANT ... WITH INHERIT cláusula.
Isso permite a herança de alguns papéis e não de outros porque o status de herança dos membros é definido
como GRANT tempo. Anteriormente, o status de herança das funções de membro era controlado apenas pelo status de
herança da função e as alterações no status de herança de uma função afetavam todas as funções de membro anteriores
e futuras.

*Restringir os privilégios de CREATEROLE e sua capacidade de modificar outras funções


Anteriormente papéis com CREATEROLE os privilégios podem alterar muitos aspectos de qualquer função que não seja
de super usuário. Tais alterações, incluindo a adição de membros, agora exigem que a função solicitando a alteração
tenha ADMIN OPTION permissão. Por exemplo, agora eles podem mudar o CREATEDB, REPLICATION,
e BYPASSRLS propriedades somente se elas também tiverem essas permissões.

*Remover links simbólicos para o postmaster binário


Incompatibilidade entre versões -> [Link]

PostgreSQL 12 para 13 PostgreSQL 13 para 14 PostgreSQL 14 para 15 PostgreSQL 15 para 16

- Funções e parâmetros depreciados


- Mudanças na forma como funções de - Remoção de funcionalidades - Alterações e melhorias na sintaxe SQL que
em versões anteriores podem ter sido
janela e agregações são processadas. obsoletas. podem afetar consultas existentes.
removidos.
SQL e Funções - Novas palavras reservadas podem - Ajustes no comportamento de - Novas palavras reservadas e mudanças no
- Alterações na sintaxe e
causar conflitos com identificadores funções de agregação e manipulação comportamento de funções JSON e
comportamento de funções
existentes. de dados JSON. agregações.
relacionadas a JSON.

- Alguns parâmetros de configuração - Alterações adicionais em parâmetros - Mudanças em parâmetros de - Parâmetros de configuração novos e
podem ter sido renomeados, de configuração. configuração relacionados à removidos.
Configurações do
removidos ou ajustados. - Mudanças no comportamento performance e segurança. - Ajustes nos valores padrão de certos
Servidor
- Alterações nos valores padrão de padrão de alguns recursos de - Alterações nos padrões de alguns parâmetros podem afetar a performance e
certos parâmetros. segurança e autenticação. parâmetros críticos. comportamento do servidor.

- Mudanças no comportamento dos - Mudanças nos algoritmos de


Indexação e
índices B-tree podem exigir indexação podem exigir reindexação
Armazenamento
reindexação. para melhor performance.
- Extensões podem precisar ser - Extensões podem necessitar de - Necessidade de atualizar extensões - Extensões precisarão ser revisadas e
Extensões atualizadas para garantir ajustes para serem compatíveis com as para compatibilidade com a nova API e atualizadas para garantir compatibilidade
compatibilidade. mudanças internas. funcionalidades. com a nova versão.

- Melhorias no gerenciamento de - Melhorias no particionamento que podem


Particionamento partições podem afetar scripts e exigir ajustes em scripts de manutenção e
operações existentes operações de dados.

- Introdução de novos métodos de


autenticação e alterações na configuração
Segurança e
de segurança.
Autenticação
- Mudanças na política de gerenciamento de
chaves e criptografia.
A migração do PostgreSQL 12 para o PostgreSQL 16 pode implicar em várias incompatibilidades
devido às mudanças introduzidas nas versões intermediárias (13, 14, 15).

Principais incompatibilidades que pode encontrar:

Versão 13
*Alteração na função EXPLAIN: Mudanças na saída do EXPLAIN, especialmente no formato
JSON, podem afetar scripts que dependem do formato específico.
*Verificação de Nomes de Colunas Duplicados: Verificações mais rigorosas para nomes de
colunas duplicados em consultas.
*Alteração de Planos de Consultas: Melhorias no otimizador de consultas podem mudar os
planos de execução de consultas, impactando o desempenho.

Versão 14
*Mudanças no VACUUM: O comportamento do VACUUM foi ajustado, exigindo possivelmente
mudanças nos scripts de manutenção.
*Ajustes em Tipos de Dados: Algumas funções de manipulação de dados JSON e conversões
entre tipos de dados podem ter comportamentos ligeiramente diferentes.
* Aprimoramentos de Segurança: Melhorias em mecanismos de autenticação, como SCRAM-
SHA-256, podem exigir atualização de configurações de segurança.

Versão 15
*Remoção de Recursos Obsoletos: Remoção de funcionalidades e parâmetros depreciados,
como a função pg_dump e opções do psql.
*Alterações em Agregações: Alterações na implementação de funções agregadas, como sum()
e avg(), podem impactar consultas complexas.
*Integração com pg_stat_statements: Modificações na extensão pg_stat_statements, exigindo
atualizações nos scripts de monitoramento.

Versão 16
*Mudanças em Sintaxe e Funções: Sintaxe SQL e comportamento de funções internas podem
ter sido alterados. Funções como substring(), regexp_replace(), entre outras, podem ter
mudanças sutis.
*Configurações de Parâmetros: Introdução de novos parâmetros de configuração e remoção ou
alteração dos existentes. Parâmetros de desempenho, como random_page_cost, podem ter
ajustes diferentes.
*Revisão de Extensões: Necessidade de verificar a compatibilidade de todas as extensões
utilizadas. Extensões comuns como PostGIS, pg_cron, e pg_partman devem ser testadas e
atualizadas se necessário.
*Alterações em Triggers e Procedimentos Armazenados: Triggers e funções armazenadas
podem precisar ser revisados devido a mudanças no PL/pgSQL e no comportamento das
transações.
*Segurança e Autenticação: Mudanças nos métodos de autenticação e permissões padrão
podem requerer ajustes nas políticas de acesso e nas configurações de segurança.

Você também pode gostar