SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
FundamentosFundamentos dede
AdministraciónAdministración
PostgreSQLPostgreSQL
PostgreSQL
PostgreSQL es un Manejador de Bases de Datos
Objeto-Relacionales (ORDBMS – por sus siglas en
inglés) que posee las siguientes características:
•Basado en Postgres v4.2 desarrollado por la
Universidad de California.
•Tiene más de 15 años en el mundo de los
Manejadores de Bases de Datos.
•Es Software Libre disponible bajo la licencia BSD.
•Corre sobre Windows, Linux, MacOS y Unix (la
mayoría de sabores).
•Soporta la mayoría de los tipos de datos definidos
por los estándares SQL92 y SQL99.
•Soporta una gran variedad de datos BLOB.
PostgreSQL
•Posee interfaces nativas de programación para
C/C++, Java, .NET, Perl, Python, Ruby, Tcl, ODBC, entre
otros. Y puede ser extendido por cualquier persona
porque es libre!!
•Como manejador empresarial ofrece:
•Control de Concurrencia para Múltiples Versiones
(MVCC – por sus siglas en inglés).
•Recuperación con marcas de tiempo.
•Espacios de trabajo para tablas (Tablespaces).
•Respaldos en línea (en caliente).
•Un sofisticado planificador y optimizador de
consultas (queries).
•Bitácora de escritura anticipada (WAL – Write
Ahead Logging).
PostgreSQL
•Soporta diferentes juegos de caracteres
internacionales (Ej. UTF8).
•Ofrece ordenamiento de registros según el juego de
caracteres seleccionado.
•Soporta bases de datos de tamaño ilimitado, tablas
de hasta 32TB, filas de 1,6TB, campos de 1GB, filas
ilimitadas por tabla, 250 a 1600 columnas por tabla
(dependiendo de los tipos de dato) e índices ilimitados
por tabla.
•Ha recibido un sin número de reconocimiento de
parte de sus usuarios y la industria.
Instalación
Para instalar PostgreSQL debe descargar el mismo de
su página oficial: http://www.postgresql.org
En sistemas Linux Debian puede instalarlo fácilmente
utilizando APT (la herramienta para gestión de
paquetes de Debian).
# apt-get install postgresql-8.X postgresql-contrib-8.X
Donde X se refiere a la versión del manejador (Ej. 1, 2
ó 3).
Características de la instalación
El usuario postgres
PostgreSQL crea un usuario del sistema que servirá
como Administrador (root) de la BD.
Este usuario recibe el nombre de postgres.
En los sistemas Linux el usuario administrador
(postgres) no posee clave para acceder al sistema por
omisión (recomendado). Luego, la misma puede ser
cambiada por el usuario root del sistema con el
siguiente comando:
# passwd postgres
Si el administrador del sistema no desea asignarle una
clave al usuario postgres, éste podrá acceder con la
cuenta del mismo sólo a través del usuario root.
# su – postgres
NOTA: Asignarle contraseña al usuario postgres,
permitiría a cualquier usuario del sistema (con
conocimiento de la contraseña) acceder como éste.
Características de la instalación
El usuario postgres
Una instancia de PostgreSQl está relacionada con uno
o más clusters.
Un cluster representa un conjunto de bases de datos y
por omisión la instalación del manejador únicamente
hace referencia a uno, ubicado en instalaciones Linux
Debian dentro de la carpeta:
/var/lib/postgresql/8.X/main
Para ver el número de clusters a las que hace
referencia una instancia de PostgreSQL puede utilizar
el siguiente comando: pg_lsclusters
Características de la instalación
El cluster
Para detener o iniciar una instancia de PostgreSQL se pueden
utilizar el script (postgresql-8.X) ubicado en la carpeta /etc/init.d
o el comando pg_ctl (sólo para root y postgres).
Ambas herramientas pueden utilizarse con el mismo conjunto de
parámetros (start, stop, restart y reload – iniciar, parar, reiniciar
y recargar respectivamente), con la diferencia de que el
comando pg_ctl ofrece un mayor control para administradores
de base de datos. Por ejemplo un administrador podría bajar el
manejador esperando que todas las conexiones activas
cerrasen, utilizando el siguiente comando:
$ pg_ctl stop -m smart
Iniciar y detener el manejador
Los parámetros de configuración de la instancia del
manejador residen en el archivo postgresql.conf.
Este archivo puede ser ubicado, para instalaciones
Linux Debian, en la carpeta /etc/postgresql/8.X/main/
Dentro del archivo de configuración pueden definirse
una gran cantidad de parámetros del manejador,
como: utilización de la memoria, algoritmos de
ordenamiento, planificación, optimización, manejo de
errores, de trazas, de bitácoras, entre otros.
Configuración
Los clientes que se conectarán al manejador deberán
especificarse explícitamente en el archivo de
configuración pg_hba.conf.
El archivo pg_hba.conf se encuentra en el mismo
directorio que el archivo postgresql.conf y permite
definir que usuarios tienen acceso a las diferentes
bases de datos del cluster, cómo lo harán y el método
que deberán utilizar.
Configuración de Clientes válidos
PostgreSQL dispone de un intérprete de comandos para consola
llamado PSQL.
Para utilizar PSQL simplemente deberá ejecutar el siguiente
comando:
$ psql BD USUARIO [-h IP_MANEJADOR]
Donde:
•BD se refiere al nombre de la base de datos a la cual desea
conectarse el cliente.
•USUARIO se refiere al nombre del usuario que se conectará
a la BD; previamente definido en pg_hba.conf
•IP_MANEJADOR se refiere a la dirección IP donde se
encuentra instalado el manejador. Debe acompañarse del
parámetro -h.
Cliente de comandos - PSQL
El cliente PSQL ofrece varios comandos para facilitar el
trabajo de los usuarios. Una lista completa de éstos
puede encontrarse ejecutando el comando:
BD=# ?
Además, PSQL contiene una ayuda en línea para cada
una de las diferentes sentencias SQL soportadas por
PostgreSQL. Esta ayuda puede accederse utilizando el
comando h. Por ejemplo:
BD=# h ALTER USER
Cliente de comandos - PSQL
En PostgreSQL existen roles que pueden conectarse a
las diferentes bases de datos con un conjunto de
permisos -predefinidos- sobre los diferentes objetos
contenidos por éstas.
Los roles pueden representar usuarios o grupos del
manejador.
Los roles pueden ser creados a través de sentencias
SQL o comandos de consola.
Roles
Para crear roles por consola puede utilizarse el siguiente
comando (conectado como postgres):
$ createuser NOMBRE_USUARIO -P
Donde la opción -P preguntará al usuario por la contraseña
del rol.
Luego, si se desea crear el usuario con sentencias SQL se
puede hacer uso de la siguiente sintaxis (conectado a la BD
con algún cliente. Ej. PSQL):
BD=# CREATE USER nombre_usuario WITH PASSWORD
'clave_usuario';
Roles
De igual forma, si deseara eliminar roles creados
anteriormente, podrá hacerlo por consola o
directamente a través de un cliente de BD con
sentencias SQL.
Por consola:
$ dropuser NOMBRE_USUARIO
Utilizando SQL:
BD=# DROP USER nombre_usuario;
Roles
Las bases de datos son creadas tomando como dueño
el usuario que las crea u otro especificado
explícitamente.
Todas las bases de datos creadas en PostgreSQL son
inicializadas como una copia -por omisión- de la Base
de Datos plantilla template1.
En caso de que desee agregar un conjunto de tablas,
funciones o soporte de lenguajes a todas las bases de
datos que cree, puede hacerlo agregando éstas
características a la Base de Datos template1.
Crear y eliminar bases de datos
Las bases de datos pueden crearse de la siguiente
forma:
Por consola:
$ createdb NOMBRE_BD -O NOMBRE_USUARIO_DUEÑO
Utilizando SQL:
BD=# CREATE DATABASE nombre_bd WITH OWNER
nombre_usuario_dueño;
Crear y eliminar bases de datos
Cuando desee crear una base de datos a partir de otra plantilla
diferente de template1, puede hacerlo de la siguiente forma:
Por consola:
$ createdb NOMBRE_BD -T NOMBRE_PLANTILLA
Utilizando SQL:
BD=# CREATE DATABASE nombre_bd WITH TEMPLATE
nombre_plantilla;
NOTA: Para crear bases de datos en blanco, que después
restaurará a partir de respaldos realizados con pg_dump, se
recomienda utilizar como plantilla template0. Esto se debe a
que los respaldos DUMP poseen los objetos heredados de
template1.
Crear y eliminar bases de datos
Al igual que los roles, las bases de datos pueden ser
eliminadas con el comando DROP.
Por consola:
$ dropdb NOMBRE_BD
Utilizando SQL:
BD=# DROP DATABASE nombre_bd;
Crear y eliminar bases de datos
Los espacios de trabajo para tablas (tablespaces) permiten
a los administradores definir directorios diferentes, al
utilizado por el cluster activo, para almacenar bases de
datos y sus objetos.
Para crear un tablespace puede ejecutar la siguiente
sentencia:
BD=# CREATE TABLESPACE nombre_tablespace LOCATION
'ruta_absoluta_tablespace';
Para asignar el tablespace creado a una tabla:
BD=# CREATE TABLE foo(i int) TABLESPACE
nombre_tablespace;
Espacios de trabajo para tablas
Los privilegios permiten garantizar o restringir el
acceso a determinados objetos de la Base de Datos
para determinados usuarios.
Cuando se le confieren permisos a un usuario se utiliza
la palabra GRANT y cuando se le niegan la palabra
REVOKE.
Los roles pueden tener los siguientes privilegios:
•SELECT. Permite consultar cualquier columna de la
tabla, vista o secuencia especificada. Además, permite
utilizar las sentencias COPY TO, UPDATE y DELETE.
Privilegios
•INSERT. Permite insertar registros en la tabla especificada.
También permite utilizar la sentencia COPY FROM.
•UPDATE. Permite actualizar cualquier columna de la tabla
especificada. También permite utilizar las sentencias
SELECT ... FOR UPDATE y SELECT ... FOR SHARE, siempre y
cuando también se disponga del privilegio SELECT. Para las
secuencias habilita el uso de las funciones nextval y setval.
•DELETE. Permite eliminar registros de la tabla
especificada. Generalmente debe acompañarse del
privilegio SELECT para poder especificar condiciones.
•REFERENCES. Para poder crear una clave foránea es
necesario tener este privilegio sobre ambas tablas de la
relación.
Privilegios
•TRIGGER. Permite la creación de triggers sobre la tabla
especificada.
•CREATE. Para bases de datos, permite crear nuevos
esquemas dentro de la misma. Para esquemas, permite la
creación de nuevos objetos dentro del mismo. Para espacios
de trabajo para tablas, permite la creación de tablas, índices
y bases de datos.
•CONNECT. Permite a los usuarios especificados conectarse
a una base de datos determinada. Ahora, el usuario también
debe tener permisos en el archivo pg_hba.conf.
•TEMPORARY o TEMP. Permite crear tablas temporales para
la base de datos especificada.
Privilegios
•EXECUTE. Permite utilizar la función especificada. Este es
el único privilegio para tratar funciones.
•USAGE. Para lenguaje procedimental, permite el uso del
mismo para la creación de funciones. Para esquemas,
permite acceder a los objetos contenidos dentro del mismo.
Para secuencias, permite el uso de las funciones curval y
nextval.
•ALL PRIVILEGES. Garantiza todos los privilegios disponibles.
Privilegios
PostgreSQL soporta un gran número de codificaciones
(encodings) para localización.
La codificación ha utilizar debe ser especificada al momento
de inicializar el cluster o cuando se crean bases de datos.
Para el caso de Venezuela se recomienda colocar la
codificación de zona es_VE.UTF8. Luego, esta puede ser
cambiada cada vez que se cree una nueva BD.
Resulta realmente importante definir -al momento de
instalación del manejador- la variable LC_CTYPE con valor
POSIX o C. Esto ofrecerá la capacidad de manejar cualquier
codificación disponible.
Codificaciones (encodings)
Para inicializar un nuevo cluster y especificar sus
parámetros de codificación se puede utilizar el siguiente
comando:
# initdb --locale=es_VE.ISO8859-1 -D DIRECTORIO_CLUSTER
En el ejemplo mostrado arriba se especifica el idioma como
español de Venezuela y la representación de caracteres ISO-
8859-1 (también llamada LATIN1).
Las codificaciones ISO (EJ. ISO-8859-1) representan cada
caracter con un byte, mientras que las UNICODE (Ej. UTF8)
con varios.
Codificaciones (encodings)
La codificación que utilizará una base de datos debe ser
especificada cuando es creada. Por ejemplo:
Por consola:
$ createdb NOMBRE_BD -E NOMBRE_CODIFICACION
Utilizando SQL:
BD=# CREATE DATABASE nombre_bd WITH ENCODING
'nombre_codificacion';
Donde NOMBRE_CODIFICACION podría ser: LATIN1 (o
ISO88591), UTF8, entre otros.
Codificaciones (encodings)
Para mejorar el rendimiento del manejador puede hacerse
uso de las siguientes herramientas:
•VACCUM. Libera espacios de memoria disponibles para ser
considerados nuevamente por el Manejador y/o el Sistema
Operativo (VACCUM FULL). Por ejemplo: cuando son
eliminados registros de una tabla, realmente son marcados
por el manejador como eliminados pero éstos no son
ofrecidos nuevamente como disponibles, el VACCUM libera
estos espacios para que puedan ser utilizados nuevamente.
•ANALYZE. Actualiza la estadísticas del manejador y sus
planes de acceso a datos.
Mantenimiento
PostgreSQL dispone de una herramienta llamada
AUTOVACCUM que tiene como objetivo correr los comandos
VACCUM y ANALYZE cada cierto tiempo.
En los sistemas Linux esta herramienta es configurada como
una tarea CRON. En las distribuciones Debian se puede ver
el archivo de configuración CRON en: /etc/cron.d/postgresql-
common
NOTA: Para borrar tablas completas se recomienda utilizar
la sentencia TRUNCATE en lugar de DELETE FROM; para
evitar registros que ocupen espacio indeseado.
Mantenimiento
Para respaldar bases de datos se recomienda utilizar el
comando pg_dump y para restaurarlas el cliente PSQL o el
comando pg_restore.
Para generar un respaldo a partir de una BD (comprimido
directamente):
$ pg_dump NOMBRE_BD [-h IP_MANEJADOR] | gzip >
NOMBRE_RESPALDO.gz
Para restaurar una BD respaldada en formato DUMP se
puede utilizar el siguiente comando:
$ gunzip -c NOMBRE_RESPALDO.gz | psql NOMBRE_BD
Respaldo y recuperación
Existen tres tipos de formatos en los que puede ser
generado un respaldo:
•Texto plano (por omisión). Este formato incluye las
sentencias SQL dentro del archivo de respaldo.
•Archivo TAR. Este formato debe ser restaurado con
pg_restore y permite elegir cuales objetos serán restaurados
a través de parámetros. Esta opción genera el respaldo
como un TAR.
•Archivo personalizado. Este formato debe ser restaurado
con pg_restore y permite elegir cuales objetos serán
restaurados y su estructura a través de parámetros. Este
formato es comprimido por defecto y es el que ofrece el
mayor nivel de flexibilidad a la hora de restaurar bases de
datos.
Respaldo y recuperación
Un cluster puede respaldarse completamente utilizando el
comando pg_dumpall y luego restaurarse con el cliente
PSQL.
Para ello podría utilizar los siguientes comandos. Para
respaldar:
$ pg_dumpall > ARCHIVO_RESPALDO
Para restaurar:
$ psql -f ARCHIVO_RESPALDO postgres
Respaldo y recuperación
Para monitorear el comportamiento de una BD pueden utilizarse
herramientas del Sistema Operativo o tablas del catalogo de la
misma.
Por ejemplo, si deseara conocer cuantas sesiones de BD se
encuentran abiertas -y que están ejecutando- podría probar el
siguiente comando (como root):
# ps auxw | grep ^postgres
El comando ps le mostraría todos los procesos corriendo
actualmente en el sistema junto con información detallada
acerca de los mismos. Luego, cuando se filtren estos resultados
con grep, sólo para aquellos procesos cuyo dueño sea postgres
podrán apreciarse todas las conexiones y el detalle de la
sentencia que ejecutan.
Monitoreo
Para observar las estadísticas del manejador, recolectadas
por el Colector de Estadísticas, puede acceder a las tablas
del catalogo.
Para ver una lista detallada de las tablas del catalogo puede
ejecutar el siguiente comando PSQL:
BD=# dS
Preste especial atención a las tablas: pg_stat_database y
pg_stat_activity.
Monitoreo
Es un poderoso cliente gráfico para PostgreSQL. Para
instalarlo en Linux Debian puede ejecutar:
# apt-get install pgadmin3
Para utilizarlo no deberá tener mayores problemas luego de
conocer los conceptos básicos de administración estudiados
en este taller.
PgAdmin3
A continuación se muestra una lista de enlaces importantes
donde podrá conseguir documentación actualizada acerca
de PostgreSQL:
•Página oficial. http://www.postgresql.org
•Sitio de PostgreSQL en Chile. http://www.postgresql.cl
•Soporte al manejador. http://www.pgsql.com/
Afortunadamente el manejador cuenta con una cantidad
importante de documentación en la Internet y resultan de
especial interés sus listas de correo. Ver:
http://www.postgresql.org/community/lists/
Enlaces importantes
¡Muchas gracias por su
atención!

Más contenido relacionado

La actualidad más candente

Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLscastell77
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadSantiago Zarate
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQLbrobelo
 
Postgresql Como Funciona Una Dbms Por Dentro
Postgresql Como Funciona Una Dbms Por DentroPostgresql Como Funciona Una Dbms Por Dentro
Postgresql Como Funciona Una Dbms Por DentroEQ SOFT EIRL
 
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
 
Cuellos botella en PostgreSQL
Cuellos botella en PostgreSQLCuellos botella en PostgreSQL
Cuellos botella en PostgreSQLEQ SOFT EIRL
 
Instalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsInstalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsDaniel Huerta Cruz
 
Tabla y Manual de instalación de PostgreSQL 9.5
Tabla y Manual de instalación de PostgreSQL 9.5Tabla y Manual de instalación de PostgreSQL 9.5
Tabla y Manual de instalación de PostgreSQL 9.5AdrianAsisVegaSegura
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresqlesmeraldaq2011
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pedvin_marcelo
 
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.EtiCAGNU
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLCarlos Gustavo Ruiz
 
Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresqljockbrera
 
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
 

La actualidad más candente (20)

Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
PostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidadPostgreSQL: Un motor Impulsado por una comunidad
PostgreSQL: Un motor Impulsado por una comunidad
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Postgresql expo
Postgresql expoPostgresql expo
Postgresql expo
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Postgresql Como Funciona Una Dbms Por Dentro
Postgresql Como Funciona Una Dbms Por DentroPostgresql Como Funciona Una Dbms Por Dentro
Postgresql Como Funciona Una Dbms Por Dentro
 
Introducción a PostgreSql
Introducción a PostgreSqlIntroducción a PostgreSql
Introducción a PostgreSql
 
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
 
Cuellos botella en PostgreSQL
Cuellos botella en PostgreSQLCuellos botella en PostgreSQL
Cuellos botella en PostgreSQL
 
Postgresql
PostgresqlPostgresql
Postgresql
 
Instalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windowsInstalación de sgbd en diferentes plataformas de windows
Instalación de sgbd en diferentes plataformas de windows
 
Tabla y Manual de instalación de PostgreSQL 9.5
Tabla y Manual de instalación de PostgreSQL 9.5Tabla y Manual de instalación de PostgreSQL 9.5
Tabla y Manual de instalación de PostgreSQL 9.5
 
Cluster con postgresql
Cluster con postgresqlCluster con postgresql
Cluster con postgresql
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Postgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_pPostgre sql y_replicacion_slony_p
Postgre sql y_replicacion_slony_p
 
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQL
 
Cluster en sql server
Cluster en sql serverCluster en sql server
Cluster en sql server
 
Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresql
 
Presentación de Postgresql 9.1
Presentación de Postgresql 9.1Presentación de Postgresql 9.1
Presentación de Postgresql 9.1
 

Destacado

Evolución y avances del Gestor PostgreSQL
Evolución y avances del  Gestor PostgreSQLEvolución y avances del  Gestor PostgreSQL
Evolución y avances del Gestor PostgreSQLAnthony Sotolongo
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...Nicola Strappazzon C.
 
Base de datos postgresql
Base de datos postgresqlBase de datos postgresql
Base de datos postgresqlalan moreno
 
Requerimientos de instalacion
Requerimientos de instalacionRequerimientos de instalacion
Requerimientos de instalacionjosebunbury
 
Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4Anthony Sotolongo
 
Importancia de la investigación
Importancia de la investigaciónImportancia de la investigación
Importancia de la investigaciónChristian león
 

Destacado (8)

Evolución y avances del Gestor PostgreSQL
Evolución y avances del  Gestor PostgreSQLEvolución y avances del  Gestor PostgreSQL
Evolución y avances del Gestor PostgreSQL
 
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
PostgreSQL - Lección 3 - Usando funciones simples para manipular la salida de...
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Base de datos postgresql
Base de datos postgresqlBase de datos postgresql
Base de datos postgresql
 
Requerimientos de instalacion
Requerimientos de instalacionRequerimientos de instalacion
Requerimientos de instalacion
 
Fundamentos de las bases de datos
Fundamentos de las bases de datosFundamentos de las bases de datos
Fundamentos de las bases de datos
 
Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4Evolucion de PostgreSQL hasta 9.4
Evolucion de PostgreSQL hasta 9.4
 
Importancia de la investigación
Importancia de la investigaciónImportancia de la investigación
Importancia de la investigación
 

Similar a Fundamentos de PostgreSQL

58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasicoLucia Zambrano Franco
 
Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDBliras loca
 
Administracion de base de datos postgresql
Administracion de base de datos postgresqlAdministracion de base de datos postgresql
Administracion de base de datos postgresqlAlvaro Paz
 
Administracion de base de datos postgresql
Administracion de base de datos postgresqlAdministracion de base de datos postgresql
Administracion de base de datos postgresqlAlvaro Paz
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sasRafael Toro
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerSuarezJhon
 
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
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administraciónJuan Ladetto
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico prácticoTitiushko Jazz
 

Similar a Fundamentos de PostgreSQL (20)

Mysql
MysqlMysql
Mysql
 
58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico58517228 postgre sql-desarrolladoresbasico
58517228 postgre sql-desarrolladoresbasico
 
Obvios herramientas de un SGDB
Obvios herramientas de un SGDBObvios herramientas de un SGDB
Obvios herramientas de un SGDB
 
Pg pool cluster postgresql
Pg pool cluster postgresqlPg pool cluster postgresql
Pg pool cluster postgresql
 
Administracion de base de datos postgresql
Administracion de base de datos postgresqlAdministracion de base de datos postgresql
Administracion de base de datos postgresql
 
Administracion de base de datos postgresql
Administracion de base de datos postgresqlAdministracion de base de datos postgresql
Administracion de base de datos postgresql
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Tema9
Tema9Tema9
Tema9
 
Tema9
Tema9Tema9
Tema9
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL Server
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
Admon oracle
Admon oracleAdmon oracle
Admon oracle
 
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
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administración
 
trabajo numero 3
trabajo numero 3trabajo numero 3
trabajo numero 3
 
Manual basico de_postgre_sql
Manual basico de_postgre_sqlManual basico de_postgre_sql
Manual basico de_postgre_sql
 
Manual basico de PostgreSQL
Manual basico de PostgreSQLManual basico de PostgreSQL
Manual basico de PostgreSQL
 
Proyecto teórico práctico
Proyecto teórico prácticoProyecto teórico práctico
Proyecto teórico práctico
 

Más de camposer

Curso de Ajax
Curso de AjaxCurso de Ajax
Curso de Ajaxcamposer
 
Fundamentos de SQL
Fundamentos de SQLFundamentos de SQL
Fundamentos de SQLcamposer
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básicocamposer
 
Seguridad web
Seguridad webSeguridad web
Seguridad webcamposer
 
Linear Regression Parameters
Linear Regression ParametersLinear Regression Parameters
Linear Regression Parameterscamposer
 
Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)camposer
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupalcamposer
 
Extracción de Requerimientos
Extracción de RequerimientosExtracción de Requerimientos
Extracción de Requerimientoscamposer
 

Más de camposer (10)

Curso de Ajax
Curso de AjaxCurso de Ajax
Curso de Ajax
 
Hadoop
HadoopHadoop
Hadoop
 
Fundamentos de SQL
Fundamentos de SQLFundamentos de SQL
Fundamentos de SQL
 
MongoDB
MongoDBMongoDB
MongoDB
 
Javascript Básico
Javascript BásicoJavascript Básico
Javascript Básico
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Linear Regression Parameters
Linear Regression ParametersLinear Regression Parameters
Linear Regression Parameters
 
Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)Entonamiento de aplicaciones Web (Enfasis en PHP)
Entonamiento de aplicaciones Web (Enfasis en PHP)
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Extracción de Requerimientos
Extracción de RequerimientosExtracción de Requerimientos
Extracción de Requerimientos
 

Último

17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docxmarthaarroyo16
 
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptxESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptxKatherineFabianLoza1
 
FORMATO INVENTARIO MOBILIARIO PASO A PASO
FORMATO INVENTARIO MOBILIARIO PASO A PASOFORMATO INVENTARIO MOBILIARIO PASO A PASO
FORMATO INVENTARIO MOBILIARIO PASO A PASOsecundariatecnica891
 
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024eluniversocom
 
Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería yocelynsanchezerasmo
 
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdfINTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdfmaryisabelpantojavar
 
El sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxEl sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxYoladsCabarcasTous
 
stellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino morastellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino moraYessicaBrigithArdila
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptxccordovato
 
MAPA DE RIESGOS DE UN ZOOLOGICO ..pdf
MAPA DE RIESGOS DE UN ZOOLOGICO    ..pdfMAPA DE RIESGOS DE UN ZOOLOGICO    ..pdf
MAPA DE RIESGOS DE UN ZOOLOGICO ..pdfCamilaArzate2
 
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADORPREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOReluniversocom
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfGEINER22
 
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfPREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfeluniversocom
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILPREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILeluniversocom
 
Niveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiaNiveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiatongailustraconcienc
 
Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405rodrimarxim
 
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILPREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILPREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILPREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILeluniversocom
 

Último (20)

17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
 
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptxESTUDIO DE IMPACTO AMBIENTAL de  explotación minera.pptx
ESTUDIO DE IMPACTO AMBIENTAL de explotación minera.pptx
 
FORMATO INVENTARIO MOBILIARIO PASO A PASO
FORMATO INVENTARIO MOBILIARIO PASO A PASOFORMATO INVENTARIO MOBILIARIO PASO A PASO
FORMATO INVENTARIO MOBILIARIO PASO A PASO
 
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
PREGUNTAS Y ANEXOS CONSULTA POPULAR 2024
 
Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería Análisis de un mapa de riesgos de una tortillería
Análisis de un mapa de riesgos de una tortillería
 
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdfINTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
INTRODUCCION A LA ESTADISTICA RECOLECCION DE DATOS.pdf
 
El sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptxEl sistema solar el gran descubrimiento del sistema solar .pptx
El sistema solar el gran descubrimiento del sistema solar .pptx
 
stellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino morastellaire vinos de mora SAS proyecto de vino mora
stellaire vinos de mora SAS proyecto de vino mora
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx
 
MAPA DE RIESGOS DE UN ZOOLOGICO ..pdf
MAPA DE RIESGOS DE UN ZOOLOGICO    ..pdfMAPA DE RIESGOS DE UN ZOOLOGICO    ..pdf
MAPA DE RIESGOS DE UN ZOOLOGICO ..pdf
 
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADORPREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
PREGUNTA E REFÉRENDUM 21 DE ABRIL ECUADOR
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdf
 
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdfPREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
PREGUNTA A DEL REFERÉNDUM 21 DE ABRIL.pdf
 
LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRILPREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
PREGUNTA K DE LA CONSULTA POPULAR 21 DE ABRIL
 
Niveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologiaNiveles de organización biologica clase de biologia
Niveles de organización biologica clase de biologia
 
Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405Mapa de riesgos de un taller mecánico 405
Mapa de riesgos de un taller mecánico 405
 
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRILPREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA G DE CONSULTA POPULAR 21 DE ABRIL
 
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRILPREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA J DE CONSULTA POPULAR 21 DE ABRIL
 
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRILPREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
PREGUNTA H DE CONSULTA POPULAR 21 DE ABRIL
 

Fundamentos de PostgreSQL

  • 1.
  • 3. PostgreSQL PostgreSQL es un Manejador de Bases de Datos Objeto-Relacionales (ORDBMS – por sus siglas en inglés) que posee las siguientes características: •Basado en Postgres v4.2 desarrollado por la Universidad de California. •Tiene más de 15 años en el mundo de los Manejadores de Bases de Datos. •Es Software Libre disponible bajo la licencia BSD. •Corre sobre Windows, Linux, MacOS y Unix (la mayoría de sabores). •Soporta la mayoría de los tipos de datos definidos por los estándares SQL92 y SQL99. •Soporta una gran variedad de datos BLOB.
  • 4. PostgreSQL •Posee interfaces nativas de programación para C/C++, Java, .NET, Perl, Python, Ruby, Tcl, ODBC, entre otros. Y puede ser extendido por cualquier persona porque es libre!! •Como manejador empresarial ofrece: •Control de Concurrencia para Múltiples Versiones (MVCC – por sus siglas en inglés). •Recuperación con marcas de tiempo. •Espacios de trabajo para tablas (Tablespaces). •Respaldos en línea (en caliente). •Un sofisticado planificador y optimizador de consultas (queries). •Bitácora de escritura anticipada (WAL – Write Ahead Logging).
  • 5. PostgreSQL •Soporta diferentes juegos de caracteres internacionales (Ej. UTF8). •Ofrece ordenamiento de registros según el juego de caracteres seleccionado. •Soporta bases de datos de tamaño ilimitado, tablas de hasta 32TB, filas de 1,6TB, campos de 1GB, filas ilimitadas por tabla, 250 a 1600 columnas por tabla (dependiendo de los tipos de dato) e índices ilimitados por tabla. •Ha recibido un sin número de reconocimiento de parte de sus usuarios y la industria.
  • 6. Instalación Para instalar PostgreSQL debe descargar el mismo de su página oficial: http://www.postgresql.org En sistemas Linux Debian puede instalarlo fácilmente utilizando APT (la herramienta para gestión de paquetes de Debian). # apt-get install postgresql-8.X postgresql-contrib-8.X Donde X se refiere a la versión del manejador (Ej. 1, 2 ó 3).
  • 7. Características de la instalación El usuario postgres PostgreSQL crea un usuario del sistema que servirá como Administrador (root) de la BD. Este usuario recibe el nombre de postgres. En los sistemas Linux el usuario administrador (postgres) no posee clave para acceder al sistema por omisión (recomendado). Luego, la misma puede ser cambiada por el usuario root del sistema con el siguiente comando: # passwd postgres
  • 8. Si el administrador del sistema no desea asignarle una clave al usuario postgres, éste podrá acceder con la cuenta del mismo sólo a través del usuario root. # su – postgres NOTA: Asignarle contraseña al usuario postgres, permitiría a cualquier usuario del sistema (con conocimiento de la contraseña) acceder como éste. Características de la instalación El usuario postgres
  • 9. Una instancia de PostgreSQl está relacionada con uno o más clusters. Un cluster representa un conjunto de bases de datos y por omisión la instalación del manejador únicamente hace referencia a uno, ubicado en instalaciones Linux Debian dentro de la carpeta: /var/lib/postgresql/8.X/main Para ver el número de clusters a las que hace referencia una instancia de PostgreSQL puede utilizar el siguiente comando: pg_lsclusters Características de la instalación El cluster
  • 10. Para detener o iniciar una instancia de PostgreSQL se pueden utilizar el script (postgresql-8.X) ubicado en la carpeta /etc/init.d o el comando pg_ctl (sólo para root y postgres). Ambas herramientas pueden utilizarse con el mismo conjunto de parámetros (start, stop, restart y reload – iniciar, parar, reiniciar y recargar respectivamente), con la diferencia de que el comando pg_ctl ofrece un mayor control para administradores de base de datos. Por ejemplo un administrador podría bajar el manejador esperando que todas las conexiones activas cerrasen, utilizando el siguiente comando: $ pg_ctl stop -m smart Iniciar y detener el manejador
  • 11. Los parámetros de configuración de la instancia del manejador residen en el archivo postgresql.conf. Este archivo puede ser ubicado, para instalaciones Linux Debian, en la carpeta /etc/postgresql/8.X/main/ Dentro del archivo de configuración pueden definirse una gran cantidad de parámetros del manejador, como: utilización de la memoria, algoritmos de ordenamiento, planificación, optimización, manejo de errores, de trazas, de bitácoras, entre otros. Configuración
  • 12. Los clientes que se conectarán al manejador deberán especificarse explícitamente en el archivo de configuración pg_hba.conf. El archivo pg_hba.conf se encuentra en el mismo directorio que el archivo postgresql.conf y permite definir que usuarios tienen acceso a las diferentes bases de datos del cluster, cómo lo harán y el método que deberán utilizar. Configuración de Clientes válidos
  • 13. PostgreSQL dispone de un intérprete de comandos para consola llamado PSQL. Para utilizar PSQL simplemente deberá ejecutar el siguiente comando: $ psql BD USUARIO [-h IP_MANEJADOR] Donde: •BD se refiere al nombre de la base de datos a la cual desea conectarse el cliente. •USUARIO se refiere al nombre del usuario que se conectará a la BD; previamente definido en pg_hba.conf •IP_MANEJADOR se refiere a la dirección IP donde se encuentra instalado el manejador. Debe acompañarse del parámetro -h. Cliente de comandos - PSQL
  • 14. El cliente PSQL ofrece varios comandos para facilitar el trabajo de los usuarios. Una lista completa de éstos puede encontrarse ejecutando el comando: BD=# ? Además, PSQL contiene una ayuda en línea para cada una de las diferentes sentencias SQL soportadas por PostgreSQL. Esta ayuda puede accederse utilizando el comando h. Por ejemplo: BD=# h ALTER USER Cliente de comandos - PSQL
  • 15. En PostgreSQL existen roles que pueden conectarse a las diferentes bases de datos con un conjunto de permisos -predefinidos- sobre los diferentes objetos contenidos por éstas. Los roles pueden representar usuarios o grupos del manejador. Los roles pueden ser creados a través de sentencias SQL o comandos de consola. Roles
  • 16. Para crear roles por consola puede utilizarse el siguiente comando (conectado como postgres): $ createuser NOMBRE_USUARIO -P Donde la opción -P preguntará al usuario por la contraseña del rol. Luego, si se desea crear el usuario con sentencias SQL se puede hacer uso de la siguiente sintaxis (conectado a la BD con algún cliente. Ej. PSQL): BD=# CREATE USER nombre_usuario WITH PASSWORD 'clave_usuario'; Roles
  • 17. De igual forma, si deseara eliminar roles creados anteriormente, podrá hacerlo por consola o directamente a través de un cliente de BD con sentencias SQL. Por consola: $ dropuser NOMBRE_USUARIO Utilizando SQL: BD=# DROP USER nombre_usuario; Roles
  • 18. Las bases de datos son creadas tomando como dueño el usuario que las crea u otro especificado explícitamente. Todas las bases de datos creadas en PostgreSQL son inicializadas como una copia -por omisión- de la Base de Datos plantilla template1. En caso de que desee agregar un conjunto de tablas, funciones o soporte de lenguajes a todas las bases de datos que cree, puede hacerlo agregando éstas características a la Base de Datos template1. Crear y eliminar bases de datos
  • 19. Las bases de datos pueden crearse de la siguiente forma: Por consola: $ createdb NOMBRE_BD -O NOMBRE_USUARIO_DUEÑO Utilizando SQL: BD=# CREATE DATABASE nombre_bd WITH OWNER nombre_usuario_dueño; Crear y eliminar bases de datos
  • 20. Cuando desee crear una base de datos a partir de otra plantilla diferente de template1, puede hacerlo de la siguiente forma: Por consola: $ createdb NOMBRE_BD -T NOMBRE_PLANTILLA Utilizando SQL: BD=# CREATE DATABASE nombre_bd WITH TEMPLATE nombre_plantilla; NOTA: Para crear bases de datos en blanco, que después restaurará a partir de respaldos realizados con pg_dump, se recomienda utilizar como plantilla template0. Esto se debe a que los respaldos DUMP poseen los objetos heredados de template1. Crear y eliminar bases de datos
  • 21. Al igual que los roles, las bases de datos pueden ser eliminadas con el comando DROP. Por consola: $ dropdb NOMBRE_BD Utilizando SQL: BD=# DROP DATABASE nombre_bd; Crear y eliminar bases de datos
  • 22. Los espacios de trabajo para tablas (tablespaces) permiten a los administradores definir directorios diferentes, al utilizado por el cluster activo, para almacenar bases de datos y sus objetos. Para crear un tablespace puede ejecutar la siguiente sentencia: BD=# CREATE TABLESPACE nombre_tablespace LOCATION 'ruta_absoluta_tablespace'; Para asignar el tablespace creado a una tabla: BD=# CREATE TABLE foo(i int) TABLESPACE nombre_tablespace; Espacios de trabajo para tablas
  • 23. Los privilegios permiten garantizar o restringir el acceso a determinados objetos de la Base de Datos para determinados usuarios. Cuando se le confieren permisos a un usuario se utiliza la palabra GRANT y cuando se le niegan la palabra REVOKE. Los roles pueden tener los siguientes privilegios: •SELECT. Permite consultar cualquier columna de la tabla, vista o secuencia especificada. Además, permite utilizar las sentencias COPY TO, UPDATE y DELETE. Privilegios
  • 24. •INSERT. Permite insertar registros en la tabla especificada. También permite utilizar la sentencia COPY FROM. •UPDATE. Permite actualizar cualquier columna de la tabla especificada. También permite utilizar las sentencias SELECT ... FOR UPDATE y SELECT ... FOR SHARE, siempre y cuando también se disponga del privilegio SELECT. Para las secuencias habilita el uso de las funciones nextval y setval. •DELETE. Permite eliminar registros de la tabla especificada. Generalmente debe acompañarse del privilegio SELECT para poder especificar condiciones. •REFERENCES. Para poder crear una clave foránea es necesario tener este privilegio sobre ambas tablas de la relación. Privilegios
  • 25. •TRIGGER. Permite la creación de triggers sobre la tabla especificada. •CREATE. Para bases de datos, permite crear nuevos esquemas dentro de la misma. Para esquemas, permite la creación de nuevos objetos dentro del mismo. Para espacios de trabajo para tablas, permite la creación de tablas, índices y bases de datos. •CONNECT. Permite a los usuarios especificados conectarse a una base de datos determinada. Ahora, el usuario también debe tener permisos en el archivo pg_hba.conf. •TEMPORARY o TEMP. Permite crear tablas temporales para la base de datos especificada. Privilegios
  • 26. •EXECUTE. Permite utilizar la función especificada. Este es el único privilegio para tratar funciones. •USAGE. Para lenguaje procedimental, permite el uso del mismo para la creación de funciones. Para esquemas, permite acceder a los objetos contenidos dentro del mismo. Para secuencias, permite el uso de las funciones curval y nextval. •ALL PRIVILEGES. Garantiza todos los privilegios disponibles. Privilegios
  • 27. PostgreSQL soporta un gran número de codificaciones (encodings) para localización. La codificación ha utilizar debe ser especificada al momento de inicializar el cluster o cuando se crean bases de datos. Para el caso de Venezuela se recomienda colocar la codificación de zona es_VE.UTF8. Luego, esta puede ser cambiada cada vez que se cree una nueva BD. Resulta realmente importante definir -al momento de instalación del manejador- la variable LC_CTYPE con valor POSIX o C. Esto ofrecerá la capacidad de manejar cualquier codificación disponible. Codificaciones (encodings)
  • 28. Para inicializar un nuevo cluster y especificar sus parámetros de codificación se puede utilizar el siguiente comando: # initdb --locale=es_VE.ISO8859-1 -D DIRECTORIO_CLUSTER En el ejemplo mostrado arriba se especifica el idioma como español de Venezuela y la representación de caracteres ISO- 8859-1 (también llamada LATIN1). Las codificaciones ISO (EJ. ISO-8859-1) representan cada caracter con un byte, mientras que las UNICODE (Ej. UTF8) con varios. Codificaciones (encodings)
  • 29. La codificación que utilizará una base de datos debe ser especificada cuando es creada. Por ejemplo: Por consola: $ createdb NOMBRE_BD -E NOMBRE_CODIFICACION Utilizando SQL: BD=# CREATE DATABASE nombre_bd WITH ENCODING 'nombre_codificacion'; Donde NOMBRE_CODIFICACION podría ser: LATIN1 (o ISO88591), UTF8, entre otros. Codificaciones (encodings)
  • 30. Para mejorar el rendimiento del manejador puede hacerse uso de las siguientes herramientas: •VACCUM. Libera espacios de memoria disponibles para ser considerados nuevamente por el Manejador y/o el Sistema Operativo (VACCUM FULL). Por ejemplo: cuando son eliminados registros de una tabla, realmente son marcados por el manejador como eliminados pero éstos no son ofrecidos nuevamente como disponibles, el VACCUM libera estos espacios para que puedan ser utilizados nuevamente. •ANALYZE. Actualiza la estadísticas del manejador y sus planes de acceso a datos. Mantenimiento
  • 31. PostgreSQL dispone de una herramienta llamada AUTOVACCUM que tiene como objetivo correr los comandos VACCUM y ANALYZE cada cierto tiempo. En los sistemas Linux esta herramienta es configurada como una tarea CRON. En las distribuciones Debian se puede ver el archivo de configuración CRON en: /etc/cron.d/postgresql- common NOTA: Para borrar tablas completas se recomienda utilizar la sentencia TRUNCATE en lugar de DELETE FROM; para evitar registros que ocupen espacio indeseado. Mantenimiento
  • 32. Para respaldar bases de datos se recomienda utilizar el comando pg_dump y para restaurarlas el cliente PSQL o el comando pg_restore. Para generar un respaldo a partir de una BD (comprimido directamente): $ pg_dump NOMBRE_BD [-h IP_MANEJADOR] | gzip > NOMBRE_RESPALDO.gz Para restaurar una BD respaldada en formato DUMP se puede utilizar el siguiente comando: $ gunzip -c NOMBRE_RESPALDO.gz | psql NOMBRE_BD Respaldo y recuperación
  • 33. Existen tres tipos de formatos en los que puede ser generado un respaldo: •Texto plano (por omisión). Este formato incluye las sentencias SQL dentro del archivo de respaldo. •Archivo TAR. Este formato debe ser restaurado con pg_restore y permite elegir cuales objetos serán restaurados a través de parámetros. Esta opción genera el respaldo como un TAR. •Archivo personalizado. Este formato debe ser restaurado con pg_restore y permite elegir cuales objetos serán restaurados y su estructura a través de parámetros. Este formato es comprimido por defecto y es el que ofrece el mayor nivel de flexibilidad a la hora de restaurar bases de datos. Respaldo y recuperación
  • 34. Un cluster puede respaldarse completamente utilizando el comando pg_dumpall y luego restaurarse con el cliente PSQL. Para ello podría utilizar los siguientes comandos. Para respaldar: $ pg_dumpall > ARCHIVO_RESPALDO Para restaurar: $ psql -f ARCHIVO_RESPALDO postgres Respaldo y recuperación
  • 35. Para monitorear el comportamiento de una BD pueden utilizarse herramientas del Sistema Operativo o tablas del catalogo de la misma. Por ejemplo, si deseara conocer cuantas sesiones de BD se encuentran abiertas -y que están ejecutando- podría probar el siguiente comando (como root): # ps auxw | grep ^postgres El comando ps le mostraría todos los procesos corriendo actualmente en el sistema junto con información detallada acerca de los mismos. Luego, cuando se filtren estos resultados con grep, sólo para aquellos procesos cuyo dueño sea postgres podrán apreciarse todas las conexiones y el detalle de la sentencia que ejecutan. Monitoreo
  • 36. Para observar las estadísticas del manejador, recolectadas por el Colector de Estadísticas, puede acceder a las tablas del catalogo. Para ver una lista detallada de las tablas del catalogo puede ejecutar el siguiente comando PSQL: BD=# dS Preste especial atención a las tablas: pg_stat_database y pg_stat_activity. Monitoreo
  • 37. Es un poderoso cliente gráfico para PostgreSQL. Para instalarlo en Linux Debian puede ejecutar: # apt-get install pgadmin3 Para utilizarlo no deberá tener mayores problemas luego de conocer los conceptos básicos de administración estudiados en este taller. PgAdmin3
  • 38. A continuación se muestra una lista de enlaces importantes donde podrá conseguir documentación actualizada acerca de PostgreSQL: •Página oficial. http://www.postgresql.org •Sitio de PostgreSQL en Chile. http://www.postgresql.cl •Soporte al manejador. http://www.pgsql.com/ Afortunadamente el manejador cuenta con una cantidad importante de documentación en la Internet y resultan de especial interés sus listas de correo. Ver: http://www.postgresql.org/community/lists/ Enlaces importantes
  • 39. ¡Muchas gracias por su atención!