A empresa brasileira de PostgreSQL



Documentos relacionados
Administração de Banco de Dados

Treinamento PostgreSQL - Aula 09

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

Banco de Dados. Prof. Antonio

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS COTAS DE DISCO. Professor Carlos Muniz

MySQL: Controle de Acesso

Treinamento PostgreSQL - Aula 03

Título da Apresentação

PostgreSQL Troubleshooting e Monitoramento

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

SQL Introdução ao Oracle

PL/pgSQL por Diversão e Lucro

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Sumário. Capítulo 2 Conceitos Importantes Tópicos Relevantes Instance Base de Dados Conclusão... 37

André Milani. Novatec

Arquitetura de BDs Distribuídos. Victor Amorim - vhca Pedro Melo pam2

ESTRUTURA DE SERVER Lílian Simão Oliveira

PostgreSQL Performance

Noções de. Microsoft SQL Server. Microsoft SQL Server

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Guia de Início Rápido

PgAdmin. O pgadmin é um software gráfico para administração do SGBD PostgreSQL disponível para Windows e UNIX.

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Curso PostgreSQL - Treinamento PostgreSQL - Fundamental

ARQUIVOS DE CONFIGURAÇAO ZIM 8.50

Workshop PostgreSQL. Implementação, Administração e Tunning Caso Importação SIASG x SIASGnet-DC (ADABAS x PostgreSQL)

SQL Structured Query Language

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

Bases de Dados 2005/2006. Aula 5

Linguagem de Consulta Estruturada SQL- DML

Desmistificando Replicação no PostgreSQL

Prof.: Clayton Maciel Costa

Oracle Advanced Compression x External Tables (Armazenamento de dados históricos)

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA

A linguagem SQL

Menu Utilitários. Atualização do Banco de Dados Atualização e organização dos arquivos existentes

1. SQL Instrumental Select Delete Update Insert Group by Having Unnion All...

CA Nimsoft Monitor Snap

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Comandos de Manipulação

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Maker Planet Manual do Usuário


PROCEDIMENTOS DE BACKUP E RESTORE NO POSTGRES

Structured Query Language (SQL)

Guia de Início Rápido

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Aula 2 Arquitetura Oracle

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Google Drive. Passos. Configurando o Google Drive

CA Nimsoft Monitor Snap

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Estruturas do Sistema de Computação

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

GUIA RÁPIDO SISTEMA ANTIFURTO THEFT DETERRENT

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

PostgreSQL 8.0. Diogo Biazus

GERENCIAMENTO DE DISPOSITIVOS

Sistemas Operacionais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

WINDOWS SERVER 2003 BACKUP I

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Laboratório de Redes de Computadores e Sistemas Operacionais

A Evolução paquidérmica: para o alto, e avante!

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Manual do Painel Administrativo

Bases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.

Conceitos de relação de confiança

Faculdade Lourenço Filho - ENADE

Engenharia de Software III

ÍNDICE 1 INTRODUÇÃO ACESSO AOS SISTEMAS DOCUMENTOS MANUTENÇÃO OCR REGISTRO DE DOCUMENTOS GERANDO DOCUMENTOS

Inicialização Rápida do Novell Vibe Mobile

SQL DML. Frederico D. Bortoloti

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Iniciando o MySQL Query Brower

Manual do Usuário. Controle Financeiro. Copyright ControleNaNet

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

ArcGIS for Server: Administração e Configuração do Site (10.2)

Treinamento. DBA Oracle 11g. Duração: 120 horas

Projeto de Banco de Dados

Transcrição:

PostgreSQL 9.4: O que vem por aí A empresa brasileira de PostgreSQL 03/03/2015

Sobre este material Copyright 2015 Timbira. Todos os direitos reservados. Embora este material tenha sido elaborado com toda precaução, os autores não assumem quaisquer responsabilidades por erros, omissões ou danos resultantes da utilização das informações aqui contidas. É expressamente proibido copiar, modificar, publicar, distribuir, transmitir ou vender este material. Se você encontrar qualquer erro, por favor reporte-o a contato@.com.br

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 1 / 39

Ciclo de Desenvolvimento início: branch 9.3 Commit fest 1: jun/2013 Commit fest 2: set/2013 Commit fest 3: nov/2013 Commit fest 4: jan/2014 Beta 1: 15 mai/2014 Beta 2: 24 jul/2014 Beta 3: 09 out/2014 RC1: 20 nov/2014 lançamento: 18 dez/2014 versão atual: 9.4.1 Estatísticas 2732 files changed, 293801 insertions(+), 241440 deletions(-) Timbira - A empresa brasileira de PostgreSQL 2 / 39

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 3 / 39

Melhorias de Performance reduzir bloqueios de alguns comandos ALTER TABLE visões materializadas pode ser atualizadas sem bloquear leituras acelerar agregações que usam tipo NUMERIC escrever somente a parte modificada de registros atualizados no WAL múltiplas conexões inserindo simultaneamente nos buffers do WAL reduzir memória alocada em blocos DO aumentar limite da quantidade de memória usada por ordenação durante criação de índice Timbira - A empresa brasileira de PostgreSQL 4 / 39

Índices GIN reduzir tamanho dos índices GIN acelerar buscas em índices de múltiplas colunas Timbira - A empresa brasileira de PostgreSQL 5 / 39

EXPLAIN saída do EXPLAIN ANALYZE mostra o tempo gasto com planejamento da consulta t i m b i r a=# EXPLAIN (ANALYZE, BUFFERS) SELECT bid, bbalance FROM pgbench_branches WHERE bid > 4 ; Seq Scan on pgbench_branches ( c o s t = 0. 0 0.. 1. 0 6 rows=1 width =8) ( a c t u a l time =0.012..0.013 rows=1 l o o p s =1) F i l t e r : ( bid > 4) Rows Removed by F i l t e r : 4 B u f f e r s : shared h i t =1 Planning time : 0.156 ms Execution time : 0.039 ms (6 r e g i s t r o s ) Timbira - A empresa brasileira de PostgreSQL 6 / 39

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 7 / 39

tipos de dados tipo de dados line tipo de dados pg_lsn tipo de dados jsonb aceita mesma entrada do que tipo json entrada é mais lenta suporta indexação não preserva espaços, ordem das chaves e chaves duplicadas Timbira - A empresa brasileira de PostgreSQL 8 / 39

jsonb: Ilustrando t i m b i r a=# create table t e s t e j s o n ( a j s o n b ) ; t i m b i r a=# i n s e r t i nto t e s t e j s o n values ( { cpf : 123456789 01, nome : E u l e r Taveira, empresa : Timbira, c i d a d e : [ Palmas, Goiânia, Porto A l e g r e ] } ) ; t i m b i r a=# i n s e r t i nto t e s t e j s o n values ( { cpf : 111333555 01, nome : John Doe, empresa : Google, c i d a d e : [ Rio de J a n e i r o, Natal ]} ) ; Timbira - A empresa brasileira de PostgreSQL 9 / 39

jsonb: Ilustrando consultas t i m b i r a=# s e l e c t a > cpf as cpf, a > nome as nome from t e s t e j s o n where a @> { empresa : Google } ; cpf nome + 111333555 01 John Doe (1 r e g i s t r o ) t i m b i r a=# s e l e c t a > cpf as cpf, a > nome as nome from t e s t e j s o n where a > c i d a d e? Porto A l e g r e ; cpf nome + 123456789 01 E u l e r Taveira 123789456 01 F a b r i z i o Mello (2 r e g i s t r o s ) Timbira - A empresa brasileira de PostgreSQL 10 / 39

jsonb: Ilustrando indexação t i m b i r a=# create index t e s t e j s o n i d x on t e s t e j s o n using g i n ( ( a > c i d a d e ) ) ; t i m b i r a=# set enable_seqscan to o f f ; t i m b i r a=# e x p l a i n a n a l y z e s e l e c t a > cpf as cpf, a > nome as nome from t e s t e j s o n where a > c i d a d e? Porto A l e g r e ; Bitmap Heap Scan on t e s t e j s o n ( c o s t = 8. 0 0.. 1 2. 0 2 rows=1 width =32) ( a c t u a l time =0.033..0.036 rows=2 l o o p s =1) Recheck Cond : ( ( a > c i d a d e : : t e x t )? Porto A l e g r e : : t e x t ) Heap Blocks : exact=1 > Bitmap Index Scan on t e s t e j s o n i d x ( c o s t = 0. 0 0.. 8. 0 0 rows=1 width=0) ( a c t u a l time =0.014..0.014 rows=2 l o o p s =1) Index Cond : ( ( a > c i d a d e : : t e x t )? Porto A l e g r e : : t e x t ) Planning time : 0.106 ms Execution time : 0.077 ms (7 r e g i s t r o s ) Timbira - A empresa brasileira de PostgreSQL 11 / 39

json novas funções para permitir construir documentos complexos JSON t i m b i r a=# s e l e c t * from json_to_record ( { s o f t w a r e : PostgreSQL, empresa : Timbira, p a í s : B r a s i l } ) as t ( s o f t w a r e text, empresa text, country t e x t ) ; s o f t w a r e empresa country + + PostgreSQL Timbira (1 r e g i s t r o ) t i m b i r a=# s e l e c t j s o n _ b u i l d _ o b j e c t ( s o f t w a r e, PostgreSQL, empresa, Timbira, p a í s, B r a s i l ) ; { s o f t w a r e : PostgreSQL, empresa : Timbira, p a í s : B r a s i l } (1 r e g i s t r o ) Timbira - A empresa brasileira de PostgreSQL 12 / 39

FILTER cláusula FILTER em agregações esqueça o CASE THEN! t i m b i r a=# SELECT bid, count (*) t o t a l, count (*) FILTER ( WHERE d e l t a > 0) d e p o s i t o FROM pgbench_history GROUP BY bid ; bid t o t a l d e p o s i t o + + 6 483 228 14 457 216 8 506 259 12 417 230 1 425 202... 9 434 229 7 474 254 (15 r e g i s t r o s ) Timbira - A empresa brasileira de PostgreSQL 13 / 39

Agregação de conjunto ordenado nova classe de agregações cláusula WITHIN GROUP t i m b i r a=# s e l e c t bid, mode ( ) w i t h i n group ( order by t i d ) from pgbench_history group by bid ; bid mode + 1 126 2 84 3 82 4 14 5 22 6 6... 13 92 14 90 15 45 (15 r e g i s t r o s ) Timbira - A empresa brasileira de PostgreSQL 14 / 39

PL/pgSQL armazenar pilha de chamadas de uma função opção print_strict_params fornece parâmetros passados a consultas que geram erros STRICT opções para fornecer erros (extra_errors) e avisos (extra_warnings) adicionais de uma função Timbira - A empresa brasileira de PostgreSQL 15 / 39

Gatilhos gatilhos em tabelas externas gatilhos de eventos em PL/Perl e PL/Tcl Timbira - A empresa brasileira de PostgreSQL 16 / 39

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 17 / 39

background workers background workers foi adicionado na 9.3 pode ser registrado, iniciado e terminado dinamicamente memória compartilhada pode ser alocada dinamicamente Timbira - A empresa brasileira de PostgreSQL 18 / 39

ALTER SYSTEM parâmetros em um outro arquivo postgresql.auto.conf os parâmetros são aplicados após postgresql.conf DEFAULT ou RESET removem o parâmetro do postgresql.auto.conf os parâmetros tem efeito somente após o reload somente para super-usuários não é permitido dentro de um bloco de transação Timbira - A empresa brasileira de PostgreSQL 19 / 39

ALTER SYSTEM: exemplo t i m b i r a=# a l t e r system set work_mem to 5MB ; t i m b i r a=# show work_mem ; work_mem 4MB (1 r e g i s t r o ) t i m b i r a=# s e l e c t pg_reload_conf ( ) ; LOG: SIGHUP r e c e b ido, r e c a r r e g a n d o a r q u i v o s de c o n f i g u r a ç ã o LOG: parâmetro work_mem mudou para 5MB Timbira - A empresa brasileira de PostgreSQL 20 / 39

pg_stat_archiver t i m b i r a=# s e l e c t * from p g _ s t a t _ a r c h i v e r ; [ RECORD 1 ] + archived_count 13 l a s t _ a r c h i v e d _ w a l 00000001000000000000000D l a s t _ a r c h i v e d _ t i m e 2015 03 02 15:38:05.272208 03 f a i l e d _ c o u n t 40 l a s t _ f a i l e d _ w a l 000000010000000000000001 l a s t _ f a i l e d _ t i m e 2015 03 01 05:38:00.048389 03 s t a t s _ r e s e t 2015 03 01 00:20:57.526647 03 Timbira - A empresa brasileira de PostgreSQL 21 / 39

autovacuum novo parâmetro autovacuum_work_mem padrão é utilizar maintenance_work_mem (comportamento antigo) controle independente de memória utilizada pelo autovacuum Timbira - A empresa brasileira de PostgreSQL 22 / 39

tablespaces CREATE TABLESPACE... WITH (... ) ALTER [ TABLE INDEX MATERIALIZED VIEW ] ALL IN TABLESPACE foo SET TABLESPACE bar move todos os objetos de uma tablespace para outra Timbira - A empresa brasileira de PostgreSQL 23 / 39

Bloqueios informação detalhada sobre quem está esperando o que e em qual tabela LOG: p r o c e s s o 15370 ainda e s p e r a por ShareLock em t r a n s a ç ã o 1009 após 1000.146 ms DETALHE: Process h o l d i n g the l o c k : 15306. Wait queue : 15370. CONTEXTO: enquanto a t u a l i z a v a t u p l a ( 0, 5 ) na r e l a ç ã o foo COMANDO: update foo set b = t e s t 2 where a = 1 ; Timbira - A empresa brasileira de PostgreSQL 24 / 39

Parâmetros log_connections mostra informação sobre SSL parâmetro huge_pages para utilizar huge pages no Linux aumento dos valores padrão: work_mem maintenance_work_mem effective_cache_size permitir unidades em TB Timbira - A empresa brasileira de PostgreSQL 25 / 39

Opções createuser: opção -g especifica role da qual será membro pg_restore: opções -I, -P, -T e -n podem ser especificadas várias vezes pg_dump, pg_dumpall e pg_restore: opção --if-exists adicionar IF EXISTS ao remover objetos antigos deve especificar opção --clean também pg_basebackup: opção --xlogdir pg_basebackup: opção --max-rate pg_basebackup: opção --tablespace-mapping vacuumdb: opção --analyze-in-stages Timbira - A empresa brasileira de PostgreSQL 26 / 39

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 27 / 39

Replicação e Recuperação novo parâmetro no recovery.conf recovery_min_apply_delay para configurar atraso na replicação opção immediate do parâmetro recovery_target para recuperação assim que estado consistente for atingido adicionado entradas (slots) de replicação adicionado novo wal_level chamado logical parâmetro REPLICA IDENTITY para controlar replicação lógica opção user_catalog_table para identificar tabelas do usuário envolvidas na replicação lógica decodificação lógica via walsender pg_recvlogical: receber dados da decodificação lógica Timbira - A empresa brasileira de PostgreSQL 28 / 39

recovery_min_apply_delay: exemplo standby_mode = on primary_conninfo = host =127.0.0.1 u s e r= r e p l i c a c a o recovery_time_delay = 30000 tempo em milisegundos replicação sincrona não é afetada Timbira - A empresa brasileira de PostgreSQL 29 / 39

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 30 / 39

Extensões pgcrypto: função gen_random_uuid pg_prewarm: carregar dados de relações na cache do PostgreSQL auto_explain: opção para incluir tempo de execução de gatilhos pgbench: opção --progress pgbench: opção --rate (taxa de transações) pg_stat_statements: usar arquivo ao invés da memória compartilhada para armazenar consultas pg_stat_statements: especificar um hash como identificador da consulta pg_stat_statements: especificar parâmetro para omitir texto da consulta Timbira - A empresa brasileira de PostgreSQL 31 / 39

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 32 / 39

Imcompatibilidades EXPLAIN ANALYZE: total time -> execution time DISCARD ALL: descarta estado de sequências autenticação krb5 removida: use GSSAPI usa o último parâmetro recovery_target_* especificado suporte ao sistema operacional IRIX última versão ago/2006 suporte até dez/2013 leia as notas de lançamento! Timbira - A empresa brasileira de PostgreSQL 33 / 39

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 34 / 39

9.5 gatilho de eventos: COMMENT, SECURITY LABEL e GRANT/REVOKE gatilho de eventos: reescrita de tabela ddl_command_start e ddl_command_end substituir checkpoint_segments por min_wal_size e max_wal_size vacuumdb: modo paralelo REINDEX SCHEMA políticas de segurança a nível de registros (RLS) cláusula SKIP LOCKED para bloqueios em registros ALTER TABLE... SET LOGGED / UNLOGGED IMPORT FOREIGN SCHEMA Timbira - A empresa brasileira de PostgreSQL 35 / 39

9.5 UPDATE foo SET (col1, col2,...) = (SELECT...),... índice BRIN (Block Range Index) utilizar abreviação de chaves para ordenação rápida de tipo text acelerar cálculo do CRC usando algoritmo slicing-by-8 escrita do WAL aplicação do wal novo formato do WAL ações do servidor em espera ao fim da recuperação action_at_recovery_target = pause promote shutdown pg_dump: opção --snapshot Timbira - A empresa brasileira de PostgreSQL 36 / 39

Resumo 1 Introdução 2 Performance 3 Desenvolvimento 4 Administração 5 Replicação e Recuperação 6 Extensões 7 Migração 8 9.5 9 Conclusão Timbira - A empresa brasileira de PostgreSQL 37 / 39

Referências pgsql-announce: PostgreSQL Weekly News http://www.postgresql.org/docs/current/ http://www.postgresql.org/docs/devel/static http://www.depesz.com http://michael.otacoo.com Timbira - A empresa brasileira de PostgreSQL 38 / 39

Treinamentos PostgreSQL Backup e Restore: https://www.eventick.com.br/pgsql-bkp-201503 PostgreSQL Tuning: https://www.eventick.com.br/pgsql-tuning-201504 PostgreSQL Monitoramento: https://www.eventick.com.br/pgsql-mon-201505 PostgreSQL Replicação Nativa: https://www.eventick.com.br/pgsql-replicacao-201505 Timbira - A empresa brasileira de PostgreSQL 39 / 39