SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
PostgreSQL 9.1
(Presentación para Libre Software World Conference)




                Presentado por:
            Emanuel Calvo @3manuek
                     DBA
              www.palominodb.com
Sobre el palestrante y la presentación:
• Operational DBA at PalominoDB
• Consultor Principal en Helpame
• DBA Mysql y Oracle en Aedgency.

• Twitter: @3manuek
• Mail: emanuel@{palominodb.com|helpame.com}

• Esta presentación está basada en el artículo del mismo ponente:
     • http://palominodb.com/blog/2011/09/28/postgresql-91-part-1-general-features
Nuevas características
•   Replicación sincrónica
•   Soporte de datos foráneos
•   Soporte de internalización por columna
•   Instantánea de aislamiento serializable (SSI)
•   Tablas efímeras
•   Expresiones comunes de tablas con escritura
•   Algoritmo de KNN para índices GIST e GIN
•   Soporte SE-LINUX
•   Actualización de la versión del lenguaje Python
•   PGXN
•   Otras cosas adicionales...
Replicación Sincrónica

• Control de la sincronización por transacción a través de synchronous_commit.
• Mejoras respecto a la versión 9.0.
• Funciones para pausar y mostrar el estado del esclavo
       • pg_xlog_replay_pause()
       • pg_is_xlog_replay_paused()
       • pg_xlog_replay_resume()
       • pg_last_xact_replay_timestamp()
       • Pg_last_xact_replay_location()
• pg_ctl incluye “promote” para el esclavo
• Clonación de esclavo sin downtime (pg_basebackup)
• Mayor información del estado de los esclavos (pg_stat_replication).
• pg_stat_database_conflicts para saber el estado de consultas canceladas.
Replicación
Fuentes de los servidores Standby
Replicación Sincrónica (una vista más detallada)

                Read/write                                              Read only

                                       NEW

                                             hot_standby_feedback

                                                                    Sync
        Master                                   Wal Receiver       Slave


wal_keep_segments




      Wal Sender
                                                  Wal Receiver
      Wal Sender                                                    Async
                    wal_sender_delay                                Slave
Limitaciones en la replicación

•   Solo un servidor puede ser sincrónico.
•   No soporta multi-master.
•   No soporta replicación parcial.
•   No soporta distribución de datos.
Soporte datos foráneos
                            (MED – Management of External Data)
CREATE EXTENSION file_fdw;

CREATE SERVER pglog FOREIGN DATA WRAPPER file_fdw;

CREATE FOREIGN TABLE gaiyin (
  nombre text,
  numero integer,
  letra char(1)
) SERVER pglog
OPTIONS ( filename 'c:tempfile.csv', format 'csv' );

postgres=# explain select * from gaiyin;
                     QUERY PLAN
-----------------------------------------------------------
 Foreign Scan on gaiyin (cost=0.00..1.10 rows=1 width=44)
   Foreign File: c:tempfile.csv
   Foreign File Size: 36
(3 filas)
                                                              http://wiki.postgresql.org/wiki/SQL/MED
Soporte Datos foráneos - mysql_fdw

apt-get install libmysqld-dev
                                                        CREATE FOREIGN TABLE prueba_my (
* Compilar como un contrib (make; make install)         id integer,
                                                        name text,
CREATE EXTENSION mysql_fdw;                             address text)
                                                        SERVER mysql_svr
CREATE SERVER mysql_srv                                 OPTIONS (table 'palomino.prueba');
FOREIGN DATA WRAPPER mysql_fdw
OPTIONS (address 'localhost', port '3306');

CREATE USER MAPPING
FOR PUBLIC SERVER mysql_srv
OPTIONS (username 'root',password 'postgres');

CREATE FOREIGN TABLE prueba_my
(texto text, numero int, floaty float)
SERVER mysql_srv OPTIONS (table 'palomino.prueba');




                           Fuente: http://pgsnake.blogspot.com/2011/08/postgresql-91-meet-mysql.html
Soporte datos foráneos (conexión a otras bases)



Oracle
Mysql
OBDC
Redis
CouchDB
Filetext
Twitter
LDAP
…

http://wiki.postgresql.org/wiki/Foreign_data_wrappers
http://repositorio.siu.edu.ar/trac/postgresql/wiki/Dblink
Soporte de internalización por columna

CREATE TABLE prueba_texto (                 • < 8.4 el COLLATE estaba ligado al
   _id serial PRIMARY KEY,                    sistema operativo, siendo muy poco
  texto_en text COLLATE 'en_US',              flexible.
  texto_es text COLLATE 'es_ES'             • En esta versión podemos tener
);
                                              incluso columnas con
SELECT                                        ordenamientos específicos.
  texto_es < (’rendevouz’ COLLATE"es_ES")   • Se pueden crear índices utilizando
  FROM prueba_texto;                          un ordenamiento específico.
                                               • En este caso tener cuidado,
SELECT
  texto_es COLLATE "en_EN" < texto_en             porque el utilizar otro COLLATE
  FROM prueba_texto;                              hará que no utilice el índice.

CREATE INDEX ON prueba
 (texto COLLATE “en_US);
SSI
• Serializable Snapshot Isolation (traducirlo? … ¬¬)
    • Aislamiento de Instantánea serializable.
• Postgres ahora soporta 3 niveles transaccionales:
        • READ COMMITED
        • REPETEABLE READ (viejo SERIALIZABLE)
            • Es lo que sería SNAPSHOT ISOLATION
        • SERIALIZABLE
• No es necesario “select for update”
• Simplificación de la programación
• Tiene coste, utiliza bloqueo predicativo, incrementa el número de rollbacks debido a
conflictos.



http://wiki.postgresql.org/wiki/SSI
http://wiki.postgresql.org/images/4/4f/SSI-PGConfEU2011.pdf
Tablas efímeras
•   Llamadas UNLOGGED TABLES.
•   Estas tablas no pueden recuperarse ya que no figuran en la WAL.
•   Minimizan el impacto de escritura en disco.
•   No son replicadas mediante streaming.
•   Truncadas en caso de crash.
•   Casos especiales sobre contención de CLOG
    http://rhaas.blogspot.com/2011/11/hint-bits.html
Expresiones comunes de tablas con escritura
• WCTE
• CTE fue implementado desde 8.4
• Información avanzada: http://wiki.postgresql.org/images/d/da/Ciolli-debug-wcte-2011.pdf

                                                 WITH table_temp(i,j,k) AS
                                                 (
                                                   DELETE FROM prueba WHERE i =9 RETURNING *
                                                 )
                                                 INSERT INTO prueba_del
                                                 SELECT i,j,k
                                                 FROM table_temp;
  WITH RECURSIVE t(a,b) AS (
       VALUES(0,1)
     UNION ALL
       SELECT greatest(a,b), a + b AS a FROM t
       WHERE b < $1
    )
  SELECT a FROM t;
KNN para GiST y GIN
 • Búsqueda de valores cercanos utilizando índices.
   • Facilita la búsqueda de puntos cercanos.
 • Operador “<->”



Artículo ejemplo:
http://www.palominodb.com/blog/2011/10/12/indexing-text-columns-gist-or-gin-optimize-ilike-using-pgtrgm-postgres-91-part-1
http://wiki.postgresql.org/images/4/46/Knn.pdf
Soporte SE-LINUX
• Integración con SE-LINUX.
• Tienen prioridad los permisos otorgados desde el SO en vez de los de la Base de
  Datos.
• Este módulo debe ser activado explícitamente.
• Se basa en la creación de SECURITY LABELS
• NOTA: Se requiere que las librerías de SELINUX del kernel sean mayores a las
  2.0.93. Estas librerías vienen por defecto en los kernels mayores a 2.0.33




             http://wiki.postgresql.org/wiki/SEPostgreSQL_Documentation
Características menores (ALTER ENUM)


• ALTER TYPE tipo_enum ADD VALUE new_value [{BEFORE|AFTER} existing_value];

              CREATE TYPE lista AS ENUM ('tipoa','tipob','tipoc');

              ALTER TYPE lista ADD VALUE 'tipoa2' AFTER 'tipoa';
PGXN
https://github.com/pgxn/pgxn-client
http://pgxn.org/faq/
Cambios varios
• Casteos para tipos compuestos como al estilo función/atributo fueron dehabilitados.
    • valor_compuesto.text, text(valor_compuesto)
• CREATE EXTENSION
• Puesta a punto automática de wal_buffers
• Mejoras en índices GiST y GIN
• Evento INSTEAD OF para disparadores (útil para creación de vistas actualizables)
• Soporte de compilación para Windows 64 bits
• standard_conforming_strings ahora está establecido por defecto en ‘on’
    • Antes ‘O’Connor’ , ahora ‘O’’Connor’ o E’O’Connor’
• Cambios en PL/SQL (RAISE sin parámetros)
• Performance mejorada para tablas heredadas (Merge Append node – Ordenamiento de
tablas heredadas dentro del append en vez de fuera).
• Algoritmo Hash para FULL OUTER JOIN.
• Información detallada: http://www.postgresql.org/docs/9.1/static/release-9-1.html
Cambios varios (II)
• Permisos de replicación (no hace falta que el usuario sea SUPERUSER)
• Mejoras en la seguridad de conexión entre servidores replicados para evitar ataques
internos.
• Dependencias funcionales de una PK reconocidas por el GROUP BY.
    • Antes: ERROR: column "tabla.col_pk" must appear in the GROUP BY clause or be
      used in an aggregate function.
•
Novedades varias
• PLV8 ( JavaScript V8 procedural language)
• Postgres-XC http://postgres-xc.sourceforge.net/
• PgPool II 3.1
• Nuevas versiones de londiste, plproxy, bucardo e/otros.
PostgreSQL 9.2

Características integradas / a integrar:

* Index only scans
* Slave replication cascade
* Fix para las unlogged tables en concurrencia masiva
*…


http://wiki.postgresql.org/wiki/PostgreSQL_9.2_Development_Plan
Gracias por asistir!!
Presentación hecha en Libre/Open Office
LSWC PostgreSQL 9.1 (2011)

Más contenido relacionado

La actualidad más candente

Instalación y Configuración de Pentaho BI y MySQL
Instalación y Configuración de Pentaho BI y MySQLInstalación y Configuración de Pentaho BI y MySQL
Instalación y Configuración de Pentaho BI y MySQLT.I.C
 
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64Santa Edith De La Cruz Gonzalez
 
Cuellos botella en PostgreSQL
Cuellos botella en PostgreSQLCuellos botella en PostgreSQL
Cuellos botella en PostgreSQLEQ SOFT EIRL
 
Presentación de Postgresql 9.1
Presentación de Postgresql 9.1Presentación de Postgresql 9.1
Presentación de Postgresql 9.1EQ SOFT EIRL
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Instalacion de Pentaho 5 con PostgreSQL 9.3
Instalacion de Pentaho 5 con PostgreSQL 9.3Instalacion de Pentaho 5 con PostgreSQL 9.3
Instalacion de Pentaho 5 con PostgreSQL 9.3Ciencias
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Mejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos OracleMejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos Oraclejftorres92
 
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...Adrián Lois
 
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Alejandro E Brito Monedero
 
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3 JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3 César Pajares
 
Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1EQ SOFT EIRL
 
Exposicion apache kafka
Exposicion apache kafkaExposicion apache kafka
Exposicion apache kafkaArlin11
 

La actualidad más candente (20)

Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
 
Instalación y Configuración de Pentaho BI y MySQL
Instalación y Configuración de Pentaho BI y MySQLInstalación y Configuración de Pentaho BI y MySQL
Instalación y Configuración de Pentaho BI y MySQL
 
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
Instalación de Oracle Database 11g R2 sobre Oracle Linux X86_64
 
Cuellos botella en PostgreSQL
Cuellos botella en PostgreSQLCuellos botella en PostgreSQL
Cuellos botella en PostgreSQL
 
Presentación de Postgresql 9.1
Presentación de Postgresql 9.1Presentación de Postgresql 9.1
Presentación de Postgresql 9.1
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Postgre sql
Postgre sqlPostgre sql
Postgre sql
 
Instalacion de Pentaho 5 con PostgreSQL 9.3
Instalacion de Pentaho 5 con PostgreSQL 9.3Instalacion de Pentaho 5 con PostgreSQL 9.3
Instalacion de Pentaho 5 con PostgreSQL 9.3
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Mejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos OracleMejores Prácticas Administración de Base de Datos Oracle
Mejores Prácticas Administración de Base de Datos Oracle
 
Tp1 db avanz-v1.1
Tp1 db avanz-v1.1Tp1 db avanz-v1.1
Tp1 db avanz-v1.1
 
COMO INSTALAR MySQL EN LINUX
COMO INSTALAR  MySQL EN LINUXCOMO INSTALAR  MySQL EN LINUX
COMO INSTALAR MySQL EN LINUX
 
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
 
Instalar Oracle 11g R2 CentOS 6.4
Instalar Oracle 11g R2 CentOS 6.4Instalar Oracle 11g R2 CentOS 6.4
Instalar Oracle 11g R2 CentOS 6.4
 
Postgre
PostgrePostgre
Postgre
 
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?
 
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3 JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
JBoss AS Implantación - configuración - Curso JBoss JB366 Día 3
 
Administrando Jboss
Administrando JbossAdministrando Jboss
Administrando Jboss
 
Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1Dba PostgreSQL desde básico a avanzado parte1
Dba PostgreSQL desde básico a avanzado parte1
 
Exposicion apache kafka
Exposicion apache kafkaExposicion apache kafka
Exposicion apache kafka
 

Similar a LSWC PostgreSQL 9.1 (2011)

Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosRonald Francisco Vargas Quesada
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvmsuperserch
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLscastell77
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6Julián Castiblanco
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Byron Quisquinay
 
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...Nelson Calero
 
High Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on LinuxHigh Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on LinuxOlaf Reitmaier Veracierta
 
Curso de PostgreSQL
Curso de PostgreSQLCurso de PostgreSQL
Curso de PostgreSQLEQ SOFT EIRL
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Marcos Ortiz Valmaseda
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Joseph Lopez
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLcamposer
 
Sysmana 2017 monitorización de logs con el stack elk
Sysmana 2017   monitorización de logs con el stack elkSysmana 2017   monitorización de logs con el stack elk
Sysmana 2017 monitorización de logs con el stack elkJosé Ignacio Álvarez Ruiz
 

Similar a LSWC PostgreSQL 9.1 (2011) (20)

Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Charla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productosCharla técnica comercial v3.0 junio 2014 db visit productos
Charla técnica comercial v3.0 junio 2014 db visit productos
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvm
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6XQuery y XPath for SQL Server 2012 itpros dc_chapter6
XQuery y XPath for SQL Server 2012 itpros dc_chapter6
 
Base de dato
Base de  dato Base de  dato
Base de dato
 
Base de dato act4
Base de  dato act4Base de  dato act4
Base de dato act4
 
Introducción a PostgreSql
Introducción a PostgreSqlIntroducción a PostgreSql
Introducción a PostgreSql
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
Intro cassandra
Intro cassandraIntro cassandra
Intro cassandra
 
Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10Curso de SQL Básico parte 1 de 10
Curso de SQL Básico parte 1 de 10
 
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
 
High Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on LinuxHigh Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on Linux
 
Pg pool cluster postgresql
Pg pool cluster postgresqlPg pool cluster postgresql
Pg pool cluster postgresql
 
Curso de PostgreSQL
Curso de PostgreSQLCurso de PostgreSQL
Curso de PostgreSQL
 
Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0Estado del Desarrollo de PostgreSQL-9.0
Estado del Desarrollo de PostgreSQL-9.0
 
Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016Conociendo los cambios de SQL Server a partir de 2012 a 2016
Conociendo los cambios de SQL Server a partir de 2012 a 2016
 
Fundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQLFundamentos de Administración PostgreSQL
Fundamentos de Administración PostgreSQL
 
Sysmana 2017 monitorización de logs con el stack elk
Sysmana 2017   monitorización de logs con el stack elkSysmana 2017   monitorización de logs con el stack elk
Sysmana 2017 monitorización de logs con el stack elk
 

Más de Emanuel Calvo

Open Source SQL Databases
Open Source SQL DatabasesOpen Source SQL Databases
Open Source SQL DatabasesEmanuel Calvo
 
Demystifying postgres logical replication percona live sc
Demystifying postgres logical replication percona live scDemystifying postgres logical replication percona live sc
Demystifying postgres logical replication percona live scEmanuel Calvo
 
Pgbr 2013 postgres on aws
Pgbr 2013   postgres on awsPgbr 2013   postgres on aws
Pgbr 2013 postgres on awsEmanuel Calvo
 
PostgreSQL and Sphinx pgcon 2013
PostgreSQL and Sphinx   pgcon 2013PostgreSQL and Sphinx   pgcon 2013
PostgreSQL and Sphinx pgcon 2013Emanuel Calvo
 
PostgreSQL FTS Solutions FOSDEM 2013 - PGDAY
PostgreSQL FTS Solutions FOSDEM 2013 - PGDAYPostgreSQL FTS Solutions FOSDEM 2013 - PGDAY
PostgreSQL FTS Solutions FOSDEM 2013 - PGDAYEmanuel Calvo
 
Monitoreo de MySQL y PostgreSQL con SQL
Monitoreo de MySQL y PostgreSQL con SQLMonitoreo de MySQL y PostgreSQL con SQL
Monitoreo de MySQL y PostgreSQL con SQLEmanuel Calvo
 

Más de Emanuel Calvo (8)

Open Source SQL Databases
Open Source SQL DatabasesOpen Source SQL Databases
Open Source SQL Databases
 
Demystifying postgres logical replication percona live sc
Demystifying postgres logical replication percona live scDemystifying postgres logical replication percona live sc
Demystifying postgres logical replication percona live sc
 
Pgbr 2013 fts
Pgbr 2013 ftsPgbr 2013 fts
Pgbr 2013 fts
 
Pgbr 2013 postgres on aws
Pgbr 2013   postgres on awsPgbr 2013   postgres on aws
Pgbr 2013 postgres on aws
 
PostgreSQL and Sphinx pgcon 2013
PostgreSQL and Sphinx   pgcon 2013PostgreSQL and Sphinx   pgcon 2013
PostgreSQL and Sphinx pgcon 2013
 
PostgreSQL FTS Solutions FOSDEM 2013 - PGDAY
PostgreSQL FTS Solutions FOSDEM 2013 - PGDAYPostgreSQL FTS Solutions FOSDEM 2013 - PGDAY
PostgreSQL FTS Solutions FOSDEM 2013 - PGDAY
 
Monitoreo de MySQL y PostgreSQL con SQL
Monitoreo de MySQL y PostgreSQL con SQLMonitoreo de MySQL y PostgreSQL con SQL
Monitoreo de MySQL y PostgreSQL con SQL
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
 

Último

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 

Último (20)

Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 

LSWC PostgreSQL 9.1 (2011)

  • 1. PostgreSQL 9.1 (Presentación para Libre Software World Conference) Presentado por: Emanuel Calvo @3manuek DBA www.palominodb.com
  • 2. Sobre el palestrante y la presentación: • Operational DBA at PalominoDB • Consultor Principal en Helpame • DBA Mysql y Oracle en Aedgency. • Twitter: @3manuek • Mail: emanuel@{palominodb.com|helpame.com} • Esta presentación está basada en el artículo del mismo ponente: • http://palominodb.com/blog/2011/09/28/postgresql-91-part-1-general-features
  • 3. Nuevas características • Replicación sincrónica • Soporte de datos foráneos • Soporte de internalización por columna • Instantánea de aislamiento serializable (SSI) • Tablas efímeras • Expresiones comunes de tablas con escritura • Algoritmo de KNN para índices GIST e GIN • Soporte SE-LINUX • Actualización de la versión del lenguaje Python • PGXN • Otras cosas adicionales...
  • 4. Replicación Sincrónica • Control de la sincronización por transacción a través de synchronous_commit. • Mejoras respecto a la versión 9.0. • Funciones para pausar y mostrar el estado del esclavo • pg_xlog_replay_pause() • pg_is_xlog_replay_paused() • pg_xlog_replay_resume() • pg_last_xact_replay_timestamp() • Pg_last_xact_replay_location() • pg_ctl incluye “promote” para el esclavo • Clonación de esclavo sin downtime (pg_basebackup) • Mayor información del estado de los esclavos (pg_stat_replication). • pg_stat_database_conflicts para saber el estado de consultas canceladas.
  • 6. Fuentes de los servidores Standby
  • 7. Replicación Sincrónica (una vista más detallada) Read/write Read only NEW hot_standby_feedback Sync Master Wal Receiver Slave wal_keep_segments Wal Sender Wal Receiver Wal Sender Async wal_sender_delay Slave
  • 8. Limitaciones en la replicación • Solo un servidor puede ser sincrónico. • No soporta multi-master. • No soporta replicación parcial. • No soporta distribución de datos.
  • 9. Soporte datos foráneos (MED – Management of External Data) CREATE EXTENSION file_fdw; CREATE SERVER pglog FOREIGN DATA WRAPPER file_fdw; CREATE FOREIGN TABLE gaiyin ( nombre text, numero integer, letra char(1) ) SERVER pglog OPTIONS ( filename 'c:tempfile.csv', format 'csv' ); postgres=# explain select * from gaiyin; QUERY PLAN ----------------------------------------------------------- Foreign Scan on gaiyin (cost=0.00..1.10 rows=1 width=44) Foreign File: c:tempfile.csv Foreign File Size: 36 (3 filas) http://wiki.postgresql.org/wiki/SQL/MED
  • 10. Soporte Datos foráneos - mysql_fdw apt-get install libmysqld-dev CREATE FOREIGN TABLE prueba_my ( * Compilar como un contrib (make; make install) id integer, name text, CREATE EXTENSION mysql_fdw; address text) SERVER mysql_svr CREATE SERVER mysql_srv OPTIONS (table 'palomino.prueba'); FOREIGN DATA WRAPPER mysql_fdw OPTIONS (address 'localhost', port '3306'); CREATE USER MAPPING FOR PUBLIC SERVER mysql_srv OPTIONS (username 'root',password 'postgres'); CREATE FOREIGN TABLE prueba_my (texto text, numero int, floaty float) SERVER mysql_srv OPTIONS (table 'palomino.prueba'); Fuente: http://pgsnake.blogspot.com/2011/08/postgresql-91-meet-mysql.html
  • 11. Soporte datos foráneos (conexión a otras bases) Oracle Mysql OBDC Redis CouchDB Filetext Twitter LDAP … http://wiki.postgresql.org/wiki/Foreign_data_wrappers http://repositorio.siu.edu.ar/trac/postgresql/wiki/Dblink
  • 12. Soporte de internalización por columna CREATE TABLE prueba_texto ( • < 8.4 el COLLATE estaba ligado al _id serial PRIMARY KEY, sistema operativo, siendo muy poco texto_en text COLLATE 'en_US', flexible. texto_es text COLLATE 'es_ES' • En esta versión podemos tener ); incluso columnas con SELECT ordenamientos específicos. texto_es < (’rendevouz’ COLLATE"es_ES") • Se pueden crear índices utilizando FROM prueba_texto; un ordenamiento específico. • En este caso tener cuidado, SELECT texto_es COLLATE "en_EN" < texto_en porque el utilizar otro COLLATE FROM prueba_texto; hará que no utilice el índice. CREATE INDEX ON prueba (texto COLLATE “en_US);
  • 13. SSI • Serializable Snapshot Isolation (traducirlo? … ¬¬) • Aislamiento de Instantánea serializable. • Postgres ahora soporta 3 niveles transaccionales: • READ COMMITED • REPETEABLE READ (viejo SERIALIZABLE) • Es lo que sería SNAPSHOT ISOLATION • SERIALIZABLE • No es necesario “select for update” • Simplificación de la programación • Tiene coste, utiliza bloqueo predicativo, incrementa el número de rollbacks debido a conflictos. http://wiki.postgresql.org/wiki/SSI http://wiki.postgresql.org/images/4/4f/SSI-PGConfEU2011.pdf
  • 14. Tablas efímeras • Llamadas UNLOGGED TABLES. • Estas tablas no pueden recuperarse ya que no figuran en la WAL. • Minimizan el impacto de escritura en disco. • No son replicadas mediante streaming. • Truncadas en caso de crash. • Casos especiales sobre contención de CLOG http://rhaas.blogspot.com/2011/11/hint-bits.html
  • 15. Expresiones comunes de tablas con escritura • WCTE • CTE fue implementado desde 8.4 • Información avanzada: http://wiki.postgresql.org/images/d/da/Ciolli-debug-wcte-2011.pdf WITH table_temp(i,j,k) AS ( DELETE FROM prueba WHERE i =9 RETURNING * ) INSERT INTO prueba_del SELECT i,j,k FROM table_temp; WITH RECURSIVE t(a,b) AS ( VALUES(0,1) UNION ALL SELECT greatest(a,b), a + b AS a FROM t WHERE b < $1 ) SELECT a FROM t;
  • 16. KNN para GiST y GIN • Búsqueda de valores cercanos utilizando índices. • Facilita la búsqueda de puntos cercanos. • Operador “<->” Artículo ejemplo: http://www.palominodb.com/blog/2011/10/12/indexing-text-columns-gist-or-gin-optimize-ilike-using-pgtrgm-postgres-91-part-1 http://wiki.postgresql.org/images/4/46/Knn.pdf
  • 17. Soporte SE-LINUX • Integración con SE-LINUX. • Tienen prioridad los permisos otorgados desde el SO en vez de los de la Base de Datos. • Este módulo debe ser activado explícitamente. • Se basa en la creación de SECURITY LABELS • NOTA: Se requiere que las librerías de SELINUX del kernel sean mayores a las 2.0.93. Estas librerías vienen por defecto en los kernels mayores a 2.0.33 http://wiki.postgresql.org/wiki/SEPostgreSQL_Documentation
  • 18. Características menores (ALTER ENUM) • ALTER TYPE tipo_enum ADD VALUE new_value [{BEFORE|AFTER} existing_value]; CREATE TYPE lista AS ENUM ('tipoa','tipob','tipoc'); ALTER TYPE lista ADD VALUE 'tipoa2' AFTER 'tipoa';
  • 20. Cambios varios • Casteos para tipos compuestos como al estilo función/atributo fueron dehabilitados. • valor_compuesto.text, text(valor_compuesto) • CREATE EXTENSION • Puesta a punto automática de wal_buffers • Mejoras en índices GiST y GIN • Evento INSTEAD OF para disparadores (útil para creación de vistas actualizables) • Soporte de compilación para Windows 64 bits • standard_conforming_strings ahora está establecido por defecto en ‘on’ • Antes ‘O’Connor’ , ahora ‘O’’Connor’ o E’O’Connor’ • Cambios en PL/SQL (RAISE sin parámetros) • Performance mejorada para tablas heredadas (Merge Append node – Ordenamiento de tablas heredadas dentro del append en vez de fuera). • Algoritmo Hash para FULL OUTER JOIN. • Información detallada: http://www.postgresql.org/docs/9.1/static/release-9-1.html
  • 21. Cambios varios (II) • Permisos de replicación (no hace falta que el usuario sea SUPERUSER) • Mejoras en la seguridad de conexión entre servidores replicados para evitar ataques internos. • Dependencias funcionales de una PK reconocidas por el GROUP BY. • Antes: ERROR: column "tabla.col_pk" must appear in the GROUP BY clause or be used in an aggregate function. •
  • 22. Novedades varias • PLV8 ( JavaScript V8 procedural language) • Postgres-XC http://postgres-xc.sourceforge.net/ • PgPool II 3.1 • Nuevas versiones de londiste, plproxy, bucardo e/otros.
  • 23. PostgreSQL 9.2 Características integradas / a integrar: * Index only scans * Slave replication cascade * Fix para las unlogged tables en concurrencia masiva *… http://wiki.postgresql.org/wiki/PostgreSQL_9.2_Development_Plan
  • 24. Gracias por asistir!! Presentación hecha en Libre/Open Office