Está en la página 1de 38

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.

com

Que es Postgre Q!"


PostgreSQL es un #anejador de $ases de %atos &bjeto'(elacionales )&(%$# * por sus siglas en ingls+ ,ue posee las siguientes caracter-sticas: .$asado en Postgres /0.1 desarrollado por la 2ni/ersidad de California. .3iene ms de 45 a6os en el mundo de los #anejadores de $ases de %atos. .Es oft7are !ibre disponible bajo la licencia $ %. .Corre sobre 8indo7s9 !inu:9 #ac& ; 2ni:. . oporta la ma;or-a de los tipos de datos definidos por los estndares Q!<1 ; Q!<<. . oporta una gran /ariedad de datos $!&$.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Que es Postgre Q!"


.Posee interfaces nati/as de programaci=n para C>C??9 Ja/a9 .@E39 Perl9 P;tAon9 (ub;9 3cl9 &%$C9 entre otros. B puede ser e:tendido por cual,uier persona por,ue es libreCC .Como manejador empresarial ofrece: .Control de Concurrencia para #Dltiples Eersiones)#ECC * por sus siglas en ingls+. .(ecuperaci=n con marcas de tiempo. .Espacios de trabajo para tablas )Tablespaces+. .(espaldos en l-nea )en caliente+. .2n sofisticado planificador ; optimizador de consultas )queries). .$itcora de escritura anticipada )8F! * Write Ahead Logging+.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Que es Postgre Q!"


. oporta diferentes juegos de caracteres internacionales )Ej. 23GH+. .&frece ordenamiento de registros segDn el juego de caracteres seleccionado. . oporta bases de datos de tama6o ilimitado9 tablas de Aasta I13$9 filas de 49J3$9 campos de 4K$9 filas ilimitadas por tabla9 15L a 4JLL columnas por tabla )dependiendo de los tipos de dato+ e -ndices ilimitados por tabla. .Ma recibido un sin nDmero de reconocimiento de parte de sus usuarios ; la industria.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Pnstalaci=n de Postgre Q!"


Para instalar Postgre Q! en el sistema operati/o 8indo7s debe descargar el mismo de su pgina oficial: Attp:>>777.postgres,l.org En sistemas !inu: %ebian puede instalarlo fcilmente utilizando FP3 )la Aerramienta para gesti=n de pa,uetes de %ebian+. N apt'get install postgres,l'H.X postgres,l'contrib'H.X N aptitude 'install postgres,l'H.X postgres,l'contrib'H.X %onde O se refiere a la /ersi=n del manejador )Ej. 49 1 = I+.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Caractersticas de la instalacin El usuario postgres Postgre Q! crea un usuario Fdministrador )root+ de la $%. del sistema ,ue ser/ir como

Este usuario recibe el nombre de postgres. En los sistemas !inu: el usuario administrador )postgres+ no posee cla/e para acceder al sistema por omisi=n )recomendado+. !uego9 la misma puede ser cambiada por el usuario root del sistema con el siguiente comando: N pass7d postgres

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Caractersticas de la instalacin El usuario postgres i el administrador del sistema no desea asignarle una cla/e al usuario postgres9 ste podr acceder con la cuenta del mismo s=lo a tra/s del usuario root. N su * postgres @&3F: Fsignarle contrase6a al usuario postgres9 permitir-a a cual,uier usuario del sistema )con conocimiento de la contrase6a+ acceder como ste.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Caractersticas de la instalacin El cluster 2na instancia de Postgre Ql est relacionada con uno o ms clusters. 2n cluster representa un conjunto de bases de datos ; por omisi=n la instalaci=n del manejador Dnicamente Aace referencia a uno9 ubicado en instalaciones !inu: %ebian dentro de la carpeta: >/ar>lib>postgres,l>H.X>main Para /er el nDmero de clusters a las ,ue Aace referencia una instancia de Postgre Q! puede utilizar el siguiente comando: N pgQlsclusters

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Iniciar y detener el servicio Para detener o iniciar una instancia de Postgre Q! se pueden utilizar el script )postgres,l'H.X+ ubicado en la carpeta >etc>init.d o el comando pgQctl )s=lo para usuarios root ; postgres+. Fmbas Aerramientas pueden utilizarse con el mismo conjunto deparmetros )start9 stop9 restart ; reload * iniciar9 parar9 reiniciar ; recargar respecti/amente+9 con la diferencia de ,ue el comando pgQctl ofrece un ma;or control para administradores de base de datos. Por ejemplo un administrador podr-a bajar el manejador esperando ,ue todas las cone:iones acti/as cerrasen9 utilizando el siguiente comando: N pgQctl stop 'm smart

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Configuracin

!os parmetros de configuraci=n de la instancia del manejador residen en el arcAi/o postgresql.conf. Este arcAi/o puede ser ubicado9 para instalaciones !inu: %ebian9 en la carpeta >etc>postgres,l>H.X>main> %entro del arcAi/o de configuraci=n pueden definirse una gran cantidad de parmetros del manejador9 como: utilizaci=n de la memoria9 algoritmos de ordenamiento9 planificaci=n9 optimizaci=n9 manejo de errores9 de trazas9 de bitcoras9 entre otros.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Configuracin de Clientes Validos

!os clientes ,ue se conectarn al manejador debern especificarse e:pl-citamente en el arcAi/o de configuraci=n pg !"a.conf. El arcAi/o pgQAba.conf se encuentra en el mismo directorio ,ue el arcAi/o postgres,l.conf ; permite definir ,ue usuarios tienen acceso a las diferentes bases de datos del cluster9 c=mo lo Aarn ; el mtodo ,ue debern utilizar.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Pntrprete de comandos )P! Q!+ Postgre Q! dispone de un intrprete de comandos para consola llamado P Q!. Para utilizar P Q! simplemente deber ejecutar el siguiente comando: N ps,l #$ %S%&'I( R'A PPQ#F@EJF%&(S %onde: .$% se refiere al nombre de la base de datos a la cual desea conectarse el cliente. .2 2F(P& se refiere al nombre del usuario ,ue se conectar a la $%T pre/iamente definido en pgQAba.conf .PPQ#F@EJF%&( se refiere a la direcci=n PP donde se encuentra instalado el manejador. %ebe acompa6arse del parmetro 'A
Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Cliente de co)andos * PSQL El cliente P Q! ofrece /arios comandos para facilitar el trabajo de los usuarios. 2na lista completa de stos puede encontrarse ejecutando el comando: $%UN V"

Fdems9 P Q! contiene una a;uda en l-nea para cada una de las diferentes sentencias Q! soportadas por Postgre Q!. Esta a;uda puede accederse utilizando el comando VA. Por ejemplo: $%UN VA F!3E( 2 E(

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

'oles

En Postgre Q! e:isten roles ,ue pueden conectarse a las diferentes bases de datos con un conjunto de permisos 'predefinidos' sobre los diferentes objetos contenidos por stas. !os roles pueden representar usuarios o grupos del manejador. !os roles pueden ser creados a tra/s de sentencias comandos de consola. Q! o

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

'oles Para crear roles por consola puede utilizarse el siguiente comando )conectado como postgres+: W createuser @&#$(EQ2 2F(P& 'P %onde la opci=n 'P preguntar al usuario por la contrase6a del rol. !uego9 si se desea crear el usuario con sentencias Q! se puede Aacer uso de la siguiente sinta:is )conectado a la $% con algDn cliente. Ej. P Q!+: $%UN C(EF3E 2 E( nombreQusuario 8P3M PF Xcla/eQusuarioXT 8&(%

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

'oles

%e igual forma9 si deseara eliminar roles creados anteriormente9 podr Aacerlo por consola o directamente a tra/s de un cliente de $% con sentencias Q!. Por consola: N dropuser @&#$(EQ2 2F(P& 2tilizando Q!: $%UN %(&P 2 E( nombreQusuarioT

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Crear y eli)inar "ases de datos !as bases de datos son creadas tomando como due6o el usuario ,ue las crea u otro especificado e:pl-citamente. 3odas las bases de datos creadas en Postgre Q! son inicializadas como una copia 'por omisi=n' de la $ase de %atos plantilla template4. En caso de ,ue desee agregar un conjunto de tablas9 funciones o soporte de lenguajes a todas las bases de datos ,ue cree9 puede Aacerlo agregando stas caracter-sticas a la $ase de %atos template4.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Crear y eli)inar "ases de datos

!as bases de datos pueden crearse de la siguiente forma: Por consola: N createdb @&#$(EQ$% '& @&#$(EQ2 2F(P&Q%2EY& 2tilizando Q!: $%UN C(EF3E %F3F$F E nombreQbd 8P3M &8@E( nombreQusuarioQdue6oT

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Crear y eli)inar "ases de datos Cuando desee crear una base de datos a partir de otra plantilla diferente de template49 puede Aacerlo de la siguiente forma: Por consola: N createdb @&#$(EQ$% '3 @&#$(EQP!F@3P!!F 2tilizando Q!: $%UN C(EF3E %F3F$F E nombreQbd 8P3M 3E#P!F3E nombreQplantillaT @&3F: Para crear bases de datos en blanco9 ,ue despus restaurar a partir de respaldos realizados con pgQdump9 se recomienda utilizar como plantilla templateL. Esto se debe a ,ue los respaldos %2#P poseen los objetos Aeredados de template4. Elaborado por: Jackson Prez
Consultor en informtica jackson.perezs@gmail.com

Crear y eli)inar "ases de datos

Fl igual ,ue los roles9 las bases de datos pueden ser eliminadas con el comando %(&P. Por consola: W dropdb @&#$(EQ$% 2tilizando Q!: $%UN %(&P %F3F$F E nombreQbdT

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Espacios de tra"a+o para ta"las !os espacios de trabajo para tablas )tablespaces+ permiten a los administradores definir directorios diferentes9 al utilizado por el cluster acti/o9 para almacenar bases de datos ; sus objetos. Para crear un tablespace puede ejecutar la siguiente sentencia: $%UN C(EF3E 3F$!E PFCE nombreQtablespace !&CF3P&@ XrutaQabsolutaQtablespaceXT Para asignar el tablespace creado a una tabla: $%UN C(EF3E 3F$!E foo)i int+ 3F$!E PFCE nombreQtablespaceT

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Privilegios !os pri/ilegios permiten garantizar o restringir el acceso a determinados objetos de la $ase de %atos para determinados usuarios. Cuando se le confieren permisos a un usuario se utiliza la palabra K(F@3 ; cuando se le niegan la palabra (EE&ZE. !os roles pueden tener los siguientes pri/ilegios: . E!EC3. Permite consultar cual,uier columna de la tabla9 /ista o secuencia especificada. Fdems9 permite utilizar las sentencias C&PB 3&9 2P%F3E ; %E!E3E.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Privilegios .P@ E(3. Permite insertar registros en la tabla especificada. 3ambin permite utilizar la sentencia C&PB G(&#. .2P%F3E. Permite actualizar cual,uier columna de la tabla especificada. 3ambin permite utilizar las sentencias E!EC3 ... G&( 2P%F3E ; E!EC3 ... G&( MF(E9 siempre ; cuando tambin se disponga del pri/ilegio E!EC3. Para las secuencias Aabilita el uso de las funciones ne:t/al ; set/al. .%E!E3E. Permite eliminar registros de la tabla especificada. Keneralmente debe acompa6arse del pri/ilegio E!EC3 para poder especificar condiciones. .(EGE(E@CE . Para poder crear una cla/e fornea es necesario tener este pri/ilegio sobre ambas tablas de la relaci=n.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Privilegios .3(PKKE(. Permite la creaci=n de triggers sobre la tabla especificada. .C(EF3E. Para bases de datos9 permite crear nue/os es,uemas dentro de la misma. Para es,uemas9 permite la creaci=n de nue/os objetos dentro del mismo. Para espacios de trabajo para tablas9 permite la creaci=n de tablas9 -ndices ; bases de datos. .C&@@EC3. Permite a los usuarios especificados conectarse a una base de datos determinada. FAora9 el usuario tambin debe tener permisos en el arcAi/o pgQAba.conf. .3E#P&(F(B o 3E#P. Permite crear tablas temporales para la base de datos especificada.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Privilegios

.EOEC23E. Permite utilizar la funci=n especificada. Este es el Dnico pri/ilegio para tratar funciones. .2 FKE. Para lenguaje procedimental9 permite el uso del mismo para la creaci=n de funciones. Para es,uemas9 permite acceder a los objetos contenidos dentro del mismo. Para secuencias9 permite el uso de las funciones cur/al ; ne:t/al. .F!! P(PEP!EKE . Karantiza todos los pri/ilegios disponibles.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Codificaciones ,encodingsPostgre Q! soporta un gran nDmero de codificaciones )encodings+ para localizaci=n. !a codificaci=n Aa utilizar debe ser especificada al momento de inicializar el cluster o cuando se crean bases de datos. Para el caso de Eenezuela se recomienda colocar la codificaci=n de zona esQEE.23GH. !uego9 esta puede ser cambiada cada /ez ,ue se cree una nue/a $%. (esulta realmente importante definir 'al momento de instalaci=n del manejador' la /ariable !CQC3BPE con /alor P& PO o C. Esto ofrecer la capacidad de manejar cual,uier codificaci=n disponible.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Codificaciones ,encodingsPara inicializar un nue/o cluster ; especificar sus parmetros de codificaci=n se puede utilizar el siguiente comando: N initdb ''localeUesQEE.P &HH5<'4 '% %P(EC3&(P&QC!2 3E( En el ejemplo mostrado arriba se especifica el idioma como espa6ol de Eenezuela ; la representaci=n de caracteres P &'HH5<'4 )tambin llamada !F3P@4+. !as codificaciones P & )EJ. P &'HH5<'4+ representan cada carcter con un b;te9 mientras ,ue las 2@PC&%E )Ej. 23GH+ con /arios.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Codificaciones ,encodingsCambiar encoding de 23G'H a !F3P@4 en Postgres,l H.IEste es un problema de los ,ue se puede llamar comunes9 ; ,uisiera empezar aclarando ,ue 8P@4151 es el e,ui/alente de !F3P@4 en 8indo7s9 en este caso /amos a realizar el cambio el la plataforma linu:9 este aplicada a cual,uier distro.El cambio es mu; simple9 primero cambiamos al usuario postgres: su * postgres Entramos al Postgres,l:ps,l template4 postgresFAora /eamos cual es la codificaci=n actual de las base de datos ,ue tenemos un nuestro ser/idor digitando lo siguiente:Vl
update pgQdatabase set encodingUidQencoding 7Aere datnameUXP(2E$FXT idQencodin puede ser: J U 2@PC&%E H U !F3P@4 15 U 8P@415L
Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Codificaciones ,encodings-

!a codificaci=n ,ue utilizar una base de datos debe ser especificada cuando es creada. Por ejemplo: Por consola: N createdb @&#$(EQ$% 'E @&#$(EQC&%PGPCFCP&@ 2tilizando Q!: $%UN C(EF3E %F3F$F E nombreQbd 8P3M E@C&%P@K XnombreQcodificacionXT %onde @&#$(EQC&%PGPCFCP&@ podr-a ser: !F3P@4 )o P &HH5<4+9 23GH9 entre otros.
Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

.anteni)iento Para mejorar el rendimiento del manejador puede Aacerse uso de las siguientes Aerramientas: .EFCC2#. !ibera espacios de memoria disponibles para ser considerados nue/amente por el #anejador ;>o el istema &perati/o )EFCC2# G2!!+. Por ejemplo: Cuando son eliminados registros de una tabla9 realmente son marcados por el manejador como eliminados pero stos no son ofrecidos nue/amente como disponibles9 el EFCC2# libera estos espacios para ,ue puedan ser utilizados nue/amente. .F@F!B[E. Fctualiza la estad-sticas del manejador ; sus planes de acceso a datos.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

.anteni)iento Postgre Q! dispone de una Aerramienta llamada F23&EFCC2# ,ue tiene como objeti/o correr los comandos EFCC2# ; F@F!B[E cada cierto tiempo. En los sistemas !inu: esta Aerramienta es configurada como una tarea C(&@. En las distribuciones %ebian se puede /er el arcAi/o de configuraci=n C(&@ en: >etc>cron.d>postgres,lcommon @&3F: Para borrar tablas completas se recomienda utilizar la sentencia 3(2@CF3E en lugar de %E!E3E G(&#T para e/itar registros ,ue ocupen espacio indeseado.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

'espaldo y recuperacin Para respaldar bases de datos se recomienda utilizar el comando pgQdump ; para restaurarlas el cliente P Q! o el comando pgQrestore. Para generar un respaldo a partir de una $% )comprimido directamente+: W pgQdump @&#$(EQ$% R'A PPQ#F@EJF%&(S \ gzip ] @&#$(EQ(E PF!%&.gz Para restaurar una $% respaldada en formato %2#P se puede utilizar el siguiente comando: W gunzip 'c @&#$(EQ(E PF!%&.gz \ ps,l @&#$(EQ$%

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

'espaldo y recuperacin E:isten tres tipos de formatos en los ,ue puede ser generado un respaldo: .3e:to plano )por omisi=n+. Este formato inclu;e las sentencias dentro del arcAi/o de respaldo. Q!

.FrcAi/o 3F(. Este formato debe ser restaurado con pgQrestore ; permite elegir cuales objetos sern restaurados a tra/s de parmetros. Esta opci=n genera el respaldo como un 3F(. .FrcAi/o personalizado. Este formato debe ser restaurado con pgQrestore ; permite elegir cuales objetos sern restaurados ; su estructura a tra/s de parmetros. Este formato es comprimido por defecto ; es el ,ue ofrece el ma;or ni/el de fle:ibilidad a la Aora de restaurar bases de datos.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

'espaldo y recuperacin

2n cluster puede respaldarse completamente utilizando el comando pgQdumpall ; luego restaurarse con el cliente P Q!. Para ello podr-a utilizar los siguientes comandos. Para respaldar: W pgQdumpall ] F(CMPE&Q(E PF!%& Para restaurar: W ps,l 'f F(CMPE&Q(E PF!%& postgres

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

.onitoreo

Para monitorear el comportamiento de una $% pueden utilizarse Aerramientas del istema &perati/o o tablas del catalogo de la misma. Por ejemplo9 si deseara conocer cuantas sesiones de $% se encuentran abiertas '; ,ue estn ejecutando' podr-a probar el siguiente comando )como root+: N ps au:7 \ 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. !uego9 cuando se filtren estos resultados con grep9 s=lo para a,uellos procesos cu;o due6o sea postgres podrn apreciarse todas las cone:iones ; el detalle de la sentencia ,ue ejecutan.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Para obser/ar las estad-sticas del manejador9 recolectadas por el Colector de Estad-sticas9 puede acceder a las tablas del catalogo. Para /er una lista detallada de las tablas del catalogo puede ejecutar el siguiente comando P Q!: $%UN Vd Preste especial atenci=n a las tablas: pgQstatQdatabase ; pgQstatQacti/it;.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Pg&d)in/

Es un poderoso cliente grfico para Postgre Q!. Para instalarlo en !inu: %ebian puede ejecutar: N apt'get install pgadminI Para utilizarlo no deber tener ma;ores problemas luego de conocer los conceptos bsicos de administraci=n estudiados en este taller.

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

Enlaces i)portantes

F continuaci=n se muestra una lista de enlaces importantes donde podr conseguir documentaci=n actualizada acerca de Postgre Q!: .Pgina oficial. Attp:>>777.postgres,l.org . itio de Postgre Q! en CAile. Attp:>>777.postgres,l.cl . oporte al manejador. Attp:>>777.pgs,l.com> Ffortunadamente el manejador cuenta con una cantidad importante de documentaci=n en la Pnternet ; resultan de especial inters sus listas de correo. Eer: Attp:>>777.postgres,l.org>communit;>lists>

Elaborado por: Jackson Prez Consultor en informtica jackson.perezs@gmail.com

También podría gustarte