presentación de postgresql 9.1
DESCRIPTION
Presentación de la nueva versión de PostgreSQL en el PGDay 2011 - ChiclayoTRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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