Presentación de Postgresql 9.1

19

Click here to load reader

description

Presentación de la nueva versión de PostgreSQL en el PGDay 2011 - Chiclayo

Transcript of Presentación de Postgresql 9.1

Page 1: Presentación de Postgresql 9.1

http://[email protected]

1/19

PostgreSQL 2011PostgreSQL 2011PostgreSQL 9.1PostgreSQL 9.1

Ernesto Quiñones AzcárateErnesto Quiñones AzcárateRegional Press Contact para Perú de PostgreSQLRegional Press Contact para Perú de PostgreSQL

[email protected]@postgresql.org

Page 2: Presentación de Postgresql 9.1

PostgreSQL 9.1PostgreSQL 9.1

¿Qué nuevo nos trae?¿Qué nuevo nos trae?

http://[email protected]

2/19

Page 3: Presentación de Postgresql 9.1

PostgreSQL 9.1PostgreSQL 9.1

● Replicación Síncrona

● Soporte de Tablas foráneas

● Internacionalización por Campo/Columna

● Tablas sin Log

● SELinux integrado a PostgreSQL

● Y muchas muchas funcionalidades nuevas más y mejoras a

nivel de motor de base de datos.

http://[email protected]

3/19

Page 4: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Replicación Síncrona

PostgreSQL incorpora dentro de su funcionalidad replicación

desde la versión 9.0, esta es asíncrona, es decir existe tiempo

de demora entre el servidor MASTER procesando la

información y el servidor SLAVE recibiendola, para este tipo

de replicación se utilizan los archivos de WAL de PostgreSQL

que permiten regenerar una base de datos, la debilidad de

esta replicación es que ante caidas del MASTER algunas

transacciones podrían no haber llegado al SLAVE.

http://[email protected]

4/19

Page 5: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Replicación Síncrona

●Las transacciones no se completan a menos que se completen en el servidor MASTER y en el SLAVE (esto genera un tiempo de proceso mayor para cada transacción).●La única posibilidad de perder data la momento de una caida es que ambos servidores colapsen al mismo tiempo.

WAL

DATA

WAL

DATA

MASTER SLAVE

http://[email protected]

5/19

Page 6: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Replicación Síncrona

●Para reducir el tiempo de demora en completar las transacciones PostgreSQL 9.1 ahora implementa la posibilidad de especificar el nivel de importancia de las mismas, desde toda una db, un usuario, una conexión o hasta una transacción en específico de tal manera que podamos priorizar las más importantes y asegurarnos que se repliquen primero ante posible caidas del sistema.

http://[email protected]

6/19

Page 7: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Replicación Síncrona

●Con el fin de generar entornos con mayor tolerancia a fallos la replicación puede ser configurada para copiar la data a multiples servidores.

MASTER

SLAVE SLAVE SLAVE

http://[email protected]

7/19

Page 8: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Soporte de Tablas Foráneas

●PostgreSQL desde hace un tiempo soporta gracias a paquetes del CONTRIB para acceder a data en otros motores de bases de datos.

●Ahora se puede configurar las conexiones sin instalar paquetes adicionales e interactuar directamente con las tablas ejecutando comandos como:

● Create foreign table● Alter .....● Drop .....

http://[email protected]

8/19

Page 9: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Soporte de Tablas Foráneas

CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [ { column_name data_type [ NULL | NOT NULL ] } [, ... ] ] ) SERVER server_name [ OPTIONS ( option ’value’ [, ... ] ) ]

http://[email protected]

9/19

Page 10: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Internacionalización por Campo/Columna

●Desde PostgreSQL 8.3 la internacionalización de las “cadenas” de nuestra base de datos se unía fuertemente a la del sistema operativo en el cual se ejecutaba.●Ahora es posible definir por cada columna de nuestra tabla, si así lo requerimos, un juego de caracteres diferente.

CREATE TABLE test1 ( a text COLLATE "de_DE", b text COLLATE "es_ES", ...);

http://[email protected]

10/19

Page 11: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Internacionalización por Campo/Columna

●También es posible ahora especificar la internacionalización a utilizar cuando realizamos una consulta, por ejemplo:

●PostgreSQL ahora incluye soporte para +/- 50 juegos de caracteres internacionales diferentes, incluyendo idiomas arábicos y asiáticos.

SELECT a < (’foo’ COLLATE "fr_FR") FROM test1;

SELECT a COLLATE "de_DE" < b FROM test1;

http://[email protected]

11/19

Page 12: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Tablas sin Log

●PostgreSQL guarda un “log de transacciones”, este log es en palabras simples un ahora de proceso especial (en disco) donde los datos son trabajados antes de pasar al repositorio principal de los datos “finales”.

●Esto permite asegurar la integridad de la data antes de ser “commiteada” al respositorio “final”, apoya al trabajo de alta concurrencia para evitar coliciones entre los usuarios.

●Estas ventajas tienen un costo en tiempo de procesamiento y trabajo en disco, ahora es posible desactivarlas opteniendo un tiempo de respuesta mucho mayor a un costo de mayor sensibilidad en nuestra base de datos.

http://[email protected]

12/19

Page 13: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – Tablas sin Log

●Esto debe ser utilizado solo en entornos donde el hardware es altamente confiable y con opciones de redundancia porque ante caidas del sistema no podrá ser recuperada la información si esta se corrompe.

●Estas tablas no podrán ser replicadas por los diferentes tipos (/síncrono y asíncrono) de servicio que ofrece Postgresql integrados.

●La performance en operaciones de escritura en tablas mejoras hasta en 10 veces usando el parametro “unlogged” al crearlas.

http://[email protected]

13/19

Page 14: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – SELinux integrado a PostgreSQL

●Security Enhanced Linux fue creado por la Agencia de Seguridad Nacional de EEUU, consiste en una serie de modificaciones para el kernel de Linux con el fin de otorgar altos niveles de seguridad a este.

●Ahora podemos compartir estos niveles de seguridad con PostgreSQL utilizando el comando SECURITY LABEL.

SECURITY LABEL FOR selinux ON TABLE mytable IS ’system_u:object_r:sepgsql_table_t:s0’;

http://[email protected]

14/19

Page 15: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – SELinux integrado a PostgreSQL

●Este módulo debe ser activado explicitamente y no contiene en la actualidad el soporte de TODAS las reglas de SELinux.

http://[email protected]

15/19

Page 16: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – SELinux integrado a PostgreSQL

●Para utilizar esto se requiere:● Kernel de Linux 2.6.28 o superior● Que el kernel tenga el soporte de SELinux 3.9.13 o

superior

●Es posible configurar que Bases de Datos de mi servidor deben tener soporte de SELinux ejecutando dentro de ella el script “sepgsql.sql”.

●Con este soporte los accesos a tablas y funciones serán controlados por SEPostgreSQL y se sobrepondrán a los definidos en la base de datos con GRANT y REVOKE, se puede llegar a controlar incluso campos y registros específicos.

http://[email protected]

16/19

Page 17: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – SELinux integrado a PostgreSQL

SECURITY LABEL [ FOR provider ] ON{ TABLE object_name | COLUMN table_name.column_name | AGGREGATE agg_name (agg_type [, ...] ) | DOMAIN object_name | FOREIGN TABLE object_name FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) | LARGE OBJECT large_object_oid | [ PROCEDURAL ] LANGUAGE object_name | SCHEMA object_name | SEQUENCE object_name | TYPE object_name | VIEW object_name} IS ’label’

http://[email protected]

17/19

Page 18: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – ¿HAY MAS?

Si mucho mas ..... visita http://www.postgresql.org

●http://www.postgresql.org/docs/9.1/static/release-9-1.html

●http://www.postgresql.org/docs/9.1/static/release-9-1-1.html

Ya estamos discutiendo que vieneEn PostgreSQL 9.2

http://[email protected]

18/19

Page 19: Presentación de Postgresql 9.1

PostgreSQL 9.1 PostgreSQL 9.1 – ¿QUIERES APOYARNOS?

Toda ayuda es bienvenida:

● Necesitamos diseñadores gráficos para crear material publicitario y educativo.

● Necesitamos traductores de documentación oficial (el manual oficial tiene más de 2500 páginas A4).

● Puedes apoyar en la programación si sabes C.● Usalo en tus investigaciones y en tus negocios.

GRACIASNos vemos en PostgreSQL 9.2 :)

http://[email protected]

19/19