# \dfs pg_*: Um passeio pelas funções administrativas do PostgreSQL

Documentos relacionados
Instituto Federal de Educação, Ciência e Tecnologia de São Paulo

Desmistificando Replicação no PostgreSQL

Utilizando o Postgres - comandos SQL para a manipulação de dados

SQL Básica. Andre Noel

Administração de Sistemas Operacionais. Prof. Marlon Marcon

BCD29008 Banco de dados

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Introdução ao PostgreSQL

Treinamento em PHP. Aula 7. Ari Stopassola Junior

BCD29008 Banco de dados

Banco de Dados. Banco de Dados II. Característica fundamental de SGBDs. Abordagem SGBD x Processamento de Arquivos Tradicional

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

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

BANCO DE DADOS GERENCIAL 1 A U L A 2

BCD29008 Banco de dados

Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL

PostgreSQL Dicas. COALESCE: Trate decisões envolvendo campos nulos!

ALOCAÇÃO DINÂMICA DE MEMÓRIA

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

consistent gets é o número de vezes que uma leitura consistente foi requisitada para um bloco do buffer cache.

Introdução ao PostgreSQL

PostgreSQL Desenvolvedor

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Administração de Banco de Dados

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

JDBC JDBC. JDBC - Arquitetura. JDBC Arquitetura Pacote Java.sql. Java Database Connectivity JDBC PostgreSQL

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

Oracle Database 10g: Fundamentos de SQL e PL/SQL

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Linguagem de Consulta Estruturada (SQL)

Oracle Database 11g: Introdução à Linguagem SQL Novo

PostgreSQL Troubleshooting e Monitoramento

O projeto físico do bando de dados consiste no mapeamento do projeto lógico para um DBMS real Projeto deve levar em conta fatores como:

Desmistificando Replicação no PostgreSQL

SQL. Ambientes de programação O catálogo do sistema. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

BANCO DE DADOS. Vinícius Pádua

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Conceitos de Sistemas de Banco de Dados INE 5323

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

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BANCO DE DADOS WEB AULA 6. Tipos de Dados. professor Luciano Roberto Rocha.

Linguagem SQL Parte I

Oracle Database 12c: Introdução ao SQL Ed. 2

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

INTRODUÇÃO AO MYSQL. Eng. Computação

BANCO DE DADOS. Araújo Lima. Jan / Araújo

Lidando com Armazenamento de Dados

CATÁLOGO GRADUAÇÃO DOS CURSOS DE UNIVERSIDADE FEDERAL DO PARÁ

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Administração de Banco de Dados

BANCO DE DADOS PARA NINJAS

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

INTRODUÇÃO AO MYSQL PROF. ME. HÉLIO ESPERIDIÃO

Korth Silberschatz Sundarshan. Sistema de Banco de Dados, 5/E

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

Protocolos da camada aplicação

Introdução ao Banco de Dados. Banco de Dados

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Prefeitura da Cidade de Nova Iguaçú. SEMED Secretaria Municipal de Educação. Coordenadoria Municipal de Ciência e Tecnologia

SGBD. Funções Básicas de um SGBD

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

SGBD. Definição. Funções básicas

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

PROGRAMAÇÃO ORIENTADA A OBJETOS II -CRIANDO UM BD POSTGRESQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Transcrição:

# \dfs pg_*: Um passeio pelas funções administrativas do PostgreSQL

Características do catálogo Armazena metadados da instância Extenso conjunto de informações distribuídas em tabelas e views de sistema Definição de objetos (tabelas, atributos, índices, tipos, &c) Estatísticas do banco de dados Organizado e padronizado Convenção de nomes simples e consistente sufixo descrição pg_ objeto de catálogo (reservado apenas para schema) stat_ Informação de estatística io_ eventos de E/S ts_ configurações de FTS Ex.: pg_catalog, pg_stat_activity, pg_statio_user

Características do catálogo (cont.) Compreensível Dicionário de simples entendimento e manipulação Extensível Com pouco esforço é possível adicionar novas funcionalidades (funções, operadores, &c) Completo Além do acesso aos metadados, permite analisar arquivos de dados

Informações sobre o catálogo 2331 funções de sistema 86 funções estatísticas 36 views administrativas 48 tabelas de sistema 71 objetos no information_schema (ISO/IEC 9075-11:2008)

Sobre o nome da palestra 01. 02. SELECT routine_schema, routine_name, data_type FROM information_schema.routines OU postgres=# \dfs+ Schema Name Result data type -----------+----------------------------+------------------------- - pg_catalog pg_database_size bigint

pg_catalog pg_database_size bigint pg_catalog pg_describe_object text pg_catalog pg_encoding_max_length integer pg_catalog pg_encoding_to_char name pg_catalog pg_extension_config_dump void pg_catalog pg_function_is_visible boolean

Tipos de funções Funções administrativas - Obter informações de objetos do banco de dados através do catálogo Funções estatísticas - Monitorar estatísticas de atividade do servidor Funções WAL - Manipular e obter informações do log de transações (aka WAL)

Funções administrativas Ex.: obtendo informações de um arquivo 01. SELECT current_setting('config_file'); current_setting ---------------------------------------------- /Library/PostgreSQL/8.4/data/postgresql.conf 01. 02. SELECT now() - modification AS "última modificação" FROM pg_stat_file(current_setting('config_file'));

-[ RECORD 1 ]------+----------------------- última modificação 5 days 17:18:21.507422

Funções administrativas Ex.: Tempo de vida do servidor 01. 02. 03. 04. 05. 06. 07. SELECT format('%s, up %s, %s users, cache hit ratio: %% %s', LOCALTIME, (CURRENT_DATE - date_trunc('days', pg_postmaster_start_time())), pg_stat_get_db_numbackends(oid), round(( pg_stat_get_db_blocks_hit(oid)::float / (pg_stat_get_db_blocks_fetched(oid) + pg_stat_get_blocks_hit(oid) + 1) * 100)::numeric,2)) AS "uptime" FROM pg_catalog.pg_database

08. WHERE datname = current_database(); -[ RECORD 1 ]-------------------------------------------------- uptime 17:42:52, up 8 days, 2 users, cache hit ratio: % 81.61

Funções administrativas Parece, mas não é... 01. 02. SELECT pg_relation_size('foobar') AS falso, pg_table_size('foobar') AS verdadeiro; +--------+------------+ falso verdadeiro +--------+------------+ 368640 393216 +--------+------------+

Funções administrativas Parece, mas não é... 01. 02. SELECT pg_relation_size('foobar','fsm' /* ou vm */),pg_total_relation_size('foobar'); +------------------+------------------------+ pg_relation_size pg_total_relation_size +------------------+------------------------+ 24576 393216 +------------------+------------------------+

Funções administrativas Outras funções administrativas função resultado SELECT pg_database_size('postgres') 6759224 SELECT pg_indexes_size('foobar') 245760 SELECT pg_size_pretty('100024') 98 kb SELECT pg_relation_filepath('foobar') base/12180/16393

Funções administrativas - WAL Ex.: Obtendo o registro atual do XLOG 01. SELECT pg_current_xlog_insert_location(); pg_current_xlog_insert_location --------------------------------- 0/11570578

Funções administrativas - WAL Obtendo offset do registro atual do XLOG 01. 02. SELECT CAST(X'570578' AS INTEGER) /* x = 010101110000010101111000 */ AS file_offset; OU 01. 02. SELECT file_name, file_offset FROM pg_xlogfile_name_offset(pg_current_xlog_location());

+--------------------------+-------------+ file_name file_offset +--------------------------+-------------+ 000000010000000000000011 5703032 +--------------------------+-------------+

Funções administrativas - WAL

Ex.: Obtendo informações do LOG 01. 02. 03. 04. 05. 06. 07. 08. WITH RECURSIVE xlog(i,c) AS (VALUES (0,pg_current_xlog_location()) UNION ALL SELECT generate_series(1, (((pg_xlogfile_name_offset( pg_current_xlog_location())).file_offset / 16777216.) * 100 )::int), NULL )

Funções administrativas - WAL Ex.: Obtendo informações XLOG (cont) 01. 02. 03. 04. 05. SELECT rpad(array_to_string(array_agg( regexp_replace(i::varchar,'\d{1,3}',u&'\2593') ),'',''),100,U&'\2591') AS "Gráfico de ocupação do XLOG" FROM xlog +----------------------------------------------------------------- -----------+ Gráfico de ocupação do XLOG

+----------------------------------------------------------------- -----------+!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""""""""""""""""""" """"" +----------------------------------------------------------------- -----------+

Funções administrativas Outras funções do WAL função SELECT pg_switch_xlog() resultado 0/F47DFF8 SELECT pg_create_restore_point(current_date::text); 0/10000110 SELECT pg_xlog_replay_pause() SELECT pg_xlog_replay_resume() void void

Funções de estatísticas Ex.: Obtendo informações E/S 01. 02. 03. 04. SELECT round(( pg_stat_get_db_blocks_hit(oid)::float / (pg_stat_get_db_blocks_fetched(oid) + pg_stat_get_blocks_hit(oid) + 1) * 100)::numeric,2) AS "hit ratio" FROM pg_catalog.pg_database; +-----------+-----------+ datname hit ratio +-----------+-----------+ postgres 96.67 +-----------+-----------+

Funções estatísticas Ex.: Obtendo informações de um backend: 01. 02. SELECT usesysid, application_name, backend_start, waiting FROM pg_stat_get_activity(pg_backend_pid()) +----------+------------------+-------------------------------+--- ------+ usesysid application_name backend_start waiting +----------+------------------+-------------------------------+--- ------+ 10 psql 2011-11-03 12:14:25.966554-02 f

+----------+------------------+-------------------------------+--- ------+

Funções estatísticas Outras funções de estatísticas função resultado SELECT pg_stat_get_bgwriter_requested_checkpoints(); 36 SELECT pg_stat_get_buf_written_backend(); 6 SELECT pg_stat_get_backend_waiting(1023); false

Referências 1. 2. http://www.postgresql.org http://www.postgresql.org/docs/9.1/interactive/functions-admin.html 3. http://www.postgresql.org/docs/9.1/interactive/monitoring-stats.html

SELECT pg_terminate_backend(pg_backend_pid());