Guia Practica 10 Instalacion PostgreSQL
Transcript of Guia Practica 10 Instalacion PostgreSQL
-
Modulo I
GUIA DE INSTALACION DE
POSTGRESQL 9.3 EN DEBIAN
LINUX 7 Y WINDOWS Instructor : Ing. Elmer Arturo Carballo Ruiz
Curso de Administracin de Base de Datos
Modulo I
Instalacin y Configuracin de Base de Datos.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 2
MANUAL DE INSTALACIN
CARACTERSTICAS DE POSTGRESQL PostgreSQL es un poderoso Sistema Gestor de Base de Datos Objeto-Relacional. Tiene ms de
15 aos de desarrollo y una muy bien probada arquitectura que ha ganado una fuerte
reputacin de confiabilidad, integridad de datos y exactitud. Incluye muchos de los tipos de
datos SQL:2008. Tambin incluye almacenamiento de grandes objetos binarios como fotos,
sonido y video. Tiene una interfaz de programacin nativa para C/C++, Java, .Net, Perl, Python,
Ruby, Tcl, ODBC, entre otros. Adems de una muy buena documentacin en general.
Como base de datos empresarial, PostgreSQL provee caractersticas sofisticadas como Multy-
Version Concurrency Control (MVCC), restauracin Point In Time, tablespaces, replicacin
asncrona, online/hot backups, un sofisticado planeador/optimizador de consultas, y un write
ahead logging para tolerancia a fallos.
Su implementacin SQL se ajusta firmemente al estndar la ANSI-SQL:2008. Tiene soporte
completo para subconsultas (incluyendo subselecciones en la clusula FROM).
La integridad de datos incluye llaves primarias (compuestas), claves forneas con restricciones
y actualizaciones/eliminaciones en cascada, restricciones CHECK, restricciones UNIQUE y
restricciones NOT NULL.
Tambin cuenta con una gran cantidad de extensiones y funciones avanzadas. Entre las que se
tienen: columnas de incremento automtico a travs de secuencias, y LIMIT/OFFSET que
permite la devolucin de conjuntos de resultados parciales. PostgreSQL soporta ndices
compuestos, nicos, parciales y funcionales que pueden utilizar cualquiera de los mtodos B-
tree , R -tree , hash, o mtodos de almacenamiento GIST.
Posee herencia de tablas, reglas del sistema y eventos de base de datos. Adems es altamente
personalizable, ejecuta procedimientos almacenados en ms de una docena de lenguajes de
programacin, incluyendo Java, Perl, Python, Ruby, Tcl, C/C++, y su propio lenguaje PL/pgSQL,
que es similar al PL/SQL de Oracle.
El cdigo fuente de PostgreSQL est disponible bajo una licencia liberal de cdigo abierto: La
licencia PostgreSQL. Esta licencia da la libertad de usar, modificar y distribuir PostgreSQL en
cualquier forma, ya sea cdigo abierto o cerrado. Todas las modificaciones, mejoras o cambios
que realice son suyos para hacer lo que quiera.
Tabla 1: Resumen de caractersticas
Generales Programacin/Desarrollo SQL
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 3
Es una base de datos cien por ciento ACID
Integridad referencial
Tablespaces Nested
transactions (savepoints)
Replicacin asincrnica/sincrnica / Streaming replication - Hot Standby
Two-phase commit
PITR - point in time recovery
Copias de seguridad en caliente (Online/hot backups)
Unicode Juegos de
caracteres internacionales
Regionalizacin por columna
Multi-Version Concurrency Control (MVCC)
Multiples mtodos de autentificacin
Acceso encriptado via SSL
Completa documentacin
Licencia BSD
Funciones/procedimientos almacenados (stored procedures) en numerosos lenguajes de programacion, entre otros PL/pgSQL (similar al PL/SQL de oracle), PL/Perl, PL/Python y PL/Tcl
Bloques annimos de cdigo de procedimientos (sentencias DO)
Numerosos tipos de datos y posibilidad de definir nuevos tipos. Adems de los tipos estndares en cualquier base de datos, tenemos disponibles, entre otros, tipos geomtricos, de direcciones de red, de cadenas binarias, UUID, XML, matrices, etc
Soporta el almacenamiento de objetos binarios grandes (grficos, videos, sonido)
APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC, PHP, Lisp, Scheme, Qt y muchos otros.
SQL92,SQL99,SQL2003,SQL2008 Llaves primarias (primary keys)
y forneas (foreign keys) Check, Unique y Not null
constraints Restricciones de unicidad
postergables (deferrable constraints)
Columnas auto-incrementales Indices compuestos, nicos,
parciales y funcionales en cualquiera de los metodos de almacenamiento disponibles, B-tree, R-tree, hash GiST
Sub-selects Consultas recursivas Funciones 'Windows' Joins Vistas (views) Disparadores (triggers)
comunes, por columna, condicionales.
Reglas (Rules) Herencia de tablas (Inheritance) Eventos LISTEN/NOTIFY
LIMITACIONES DE POSTGRESQL
Lmite Valor Mximo tamao base de dato Ilimitado (Depende de tu sistema de
almacenamiento) Mximo tamao de tabla 32 TB Mximo tamao de fila 1.6 TB Mximo tamao de campo 1 GB Mximo numero de filas por tabla Ilimitado
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 4
Mximo numero de columnas por tabla 250 - 1600 (dependiendo del tipo) Mximo numero de indices por tabla Ilimitado
COMPONENTES DE POSTGRESQL El sistema de PostgreSQL se describe de la siguiente manera:
Tabla 2: Componentes de PostgreSQL
Componente Descripcin Aplicacin Cliente Esta es la aplicacin cliente que utiliza PostgreSQL como
administrador de bases de datos. La conexin puede ocurrir va TCP/IP o sockets locales.
LIBPG Es el responsable de manipular las comunicaciones entre la aplicacin cliente y el postmaster
Postmaster Este es el proceso principal de PostgreSQL. Es el encargado de escuchar por un puerto/socket por conexiones entrantes de clientes. Tambin es el encargado de crear los procesos hijos que se encargaran de autentificar estas peticiones, gestionar las consultas y mandar los resultados a las aplicaciones clientes. El postmaster se configura por medio de los ficheros de Configuracin.
Ficheros de configuracin Los 3 ficheros principales de configuracin utilizados por PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf
Procesos Postgres Procesos hijos que se encargan de autentificar a los clientes, de gestionar las consultas y mandar los resultados a las aplicaciones clientes
PostgreSQL share buffer cache
Memoria compartida usada por PostgreSQL para almacenar datos en cach.
Write-Ahead Log (WAL) Componente del sistema encargado de asegurar la integridad de los datos (recuperacin de tipo REDO)
Kernel disk buffer cache Cach de disco del sistema operativo
Disco Disco fsico donde se almacenan los datos y toda la informacin necesaria para que PostgreSQL funcione
El Proyecto PostgreSQL tiene como objetivo mantener y soportar cada versin de PostgreSQL durante 5 aos desde el momento de su
lanzamiento.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 5
Ilustracin 1: Componentes esenciales de PostgreSQL
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 6
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 7
REQUERIMIENTOS DE POSTGRESQL En general se espera que PostgreSQL 9.3 pueda trabajar con las siguientes arquitecturas de
CPU: x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x, Sparc, Sparc 64, Alpha, ARM,
MIPS, MIPSEL, M68K y PA-RISC. Tambin para M32R, NS32K y VAX, pero estas arquitecturas no
se sabe que hayan sido probadas recientemente.
Adicionalmente se epera que PostgreSQL 9.3 pueda trabajar con los siguientes sistemas
operativos: Linux (todas las recientes distribuciones), Windows (Win2000 SP4 y superior),
FreeBSD, OpenBSD, NetBSD, Mac OS X, AIX, HP/UX, IRIX, Solaris, Tru64 Unix y UnixWare. Otros
tipos de sistemas Unix tambin deberan funcionar pero no an sido probados actualmente.
La documentacin oficial de PostgreSQL no especifica explcitamente los requerimientos
mnimos y recomendados para su funcionamiento, sin embargo, si hace mencin del espacio
de almacenamiento mnimo para su instalacin, arquitectura y sistema operativo soportados.
Por otro lado hay expertos que proporcionan esta informacin, pero que vara segn el criterio
de cada uno.
De la documentacin oficial se tienen los siguientes estimados:
100MB de espacio si se piensa compilar el cdigo fuente.
20MB adicionales para el directorio de instalacin.
35MB adicionales para un clster de Base de Datos vaco.
150MB adicionales si se piensa ejecutar un test de regresin (En Linux).
De fuentes externas se tienen los siguientes requerimientos:
REQUERIMIENTOS MNIMOS:
8 MB de memoria RAM.
30 MB de espacio en disco duro para el cdigo fuente.
5 MB de espacio en disco duro para la instalacin de los ejecutables.
1 MB extra para las bases de datos bsicas.
3 MB de espacio en disco duro para el tarball con el cdigo fuente (Linux).
REQUERIMIENTOS RECOMENDADOS (Para un ambiente de produccin):
CPU de 64bits
SO de 64bits
2GB de RAM
Dual CPU/Core
RAID 1
Un RAID 1 crea una copia exacta (o espejo) de un conjunto de datos en dos o ms discos. Sirve para obtener confiabilidad en el almacenamiento. Un RAID 10 sera preferible pero ac hablamos de requerimientos recomendados por lo que RAID 1 es aceptable.
El core del Sistema Gestor de Bases de Datos Objeto-Relacional de PostgreSQL est disponible
en varias formatos fuete y binarios.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 8
A partir de la versin 8.4 de PostgreSQL, la empresa EnterpriseDB ha puesto a disposicin un
paquete de instalacin independiente del SO, ya sea Windows, MacOS X o algunas
distribuciones de Linux que existe. El presente manual est basado en este paquete, con la
finalidad de unificar la instalacin en Windows como en Linux, adems de que el paquete
permite realizar una instalacin desatendida especificando algunas opciones para su
instalacin o usando un archivo de configuracin.
PRIMEROS PASOS PARA LA INSTALACIN 1- Antes que nada debemos descargar el paquete de instalacin, para ello accedemos a la
siguiente pgina web.
http://www.enterprisedb.com/
2- Accedemos al rea de descargas dando clic en downloads.
3- Clic en la pestaa PostgreSQL.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 9
4- Del cuadro Current Releases podremos descargar el paquete de instalacin de la ltima
versin de PostgreSQL para los Sistemas Operativos disponibles.
5- Para el desarrollo de este manual se ha descargado el paquete de instalacin de
PostgreSQL para Linux-64 (*.run) y Windows-64 (*.exe).
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 10
Para ambos casos (Windows y Linux), al ejecutar el paquete de instalacin va lnea consola se
podrn definir una serie de opciones, de las cuales, si no se especifican tomarn valores
predeterminados. Estas opciones permiten cambiar, por ejemplo, el directorio donde ser
instalado PostgreSQL, la contrasea de administrador, el directorio data, el puerto de escucha,
entre otros. La sintaxis para definir opciones es similar en ambas plataformas, por ejemplo:
Linux:
# ./Postgresql-9.3.1-1-linux-x64.run opcion1 valor1 opcion2 valor2. opcionN valorN
Windows:
-> Postgresql-9.3.1-1-windows-x64.exe opcion1 valor1 opcion2 valor2. opcionN valorN
A continuacin se presenta una tabla con todos los parmetros permitidos.
Tabla 3: Parmetros de instalacin del paquete
OPCIN DESCRIPCIN
--help Despliega una lista con las opciones disponibles
--version Despliega la informacin sobre el producto
--unattendedmodeui
Unattended Mode UI Valor por defecto: minimal Permitidos: none, minimal, minimalWithDialogs
--optionfile Archivo de configuracin para la instalacin
--debuglevel Debug information level of verbosity Valor por defecto: 2 Permitidos: 0, 1, 2, 3, 4
--mode Installation mode Valor por defecto: qt Permitidos: qt, win32, unattended
--debugtrace Debug filename
--installer-language Seleccin de lenguaje Valor por defecto: es Permitidos: en, es, fr
--extract-only Valor por defecto: 0
--superaccount Establece el nombre de usuario de la base de datos de superusuario. Valor por defecto: postgres
--servicename Establece el nombre del servicio de base de datos.
--serviceaccount Establece la cuenta de usuario del sistema operativo que posee el proceso de servidor. Por defecto es 'postgres'.
--servicepassword
Establece la contrasea de la cuenta de usuario del sistema operativo que posee proceso de servidor. Por defecto es la contrasea de superusuario
--install_runtimes Especifica si instala o no el runtime de Microsoft Visual C++ antes de que la instalacin proceda.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 11
Valor por defecto: 1
--enable_acledit acl.check.description Valor por defecto: 0
--create_shortcuts Especifica si crea o no los accesos directos en el men. Valor por defecto: 1
--prefix
Directorio de instalacin Valor por defecto Windows: C:\Program Files (x86)\PostgreSQL\9.3 Valor por defecto Linux: /opt/PostgreSQL/9.3
--datadir
Directorio de Datos Valor por defecto Windows: C:\Program Files (x86)\PostgreSQL\9.3\data Valor por defecto Linux: /opt/PostgreSQL/9.3/data
--superpassword Contrasea del superusuario, por defecto 'postgres'
--serverport Puerto. Valor por defecto: 5432
--locale Configuracin Regional
Tener en cuenta que podemos ejecutar el instalador mediante un archivo de configuracin pasando el nombre de este archivo por la lnea de comando --optionfile /path/to/optionfile.
El archivo puede contener solamente parmetros disponibles en un formato opcin=valor. Por ejemplo: prefix=/usr/local/pgsql84
datadir=/var/lib/pgsql84
port=5678
INSTALACION DE POSTGRESQL 9.3 EN DEBIAN GNU/LINUX 7.2.0 (64 BITS) 1- Accedemos a la terminal de root del sistema, en este caso mediante el escritorio
GNOME (que trae DEBIAN 7.2.0 por defecto), desde
Aplicaciones>Accesorios>Terminal de
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 12
2- Ingresamos la contrasea de superusuario respectiva.
3- Desde la consola, nos desplazamos a la carpeta donde se encuentra el paquete de
instalacin de PostgreSQL que hemos descargado antes. En este ejemplo se encuentra
en Escritorio.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 13
4- Damos permiso de ejecucin al paquete de instalacin con el comando chmod +x.
5- Podemos ver las opciones disponibles en la instalacin de PostgreSQL al ejecutar
./postgresql-9.3.1-linux-x64.run help.
6- Ejecutaremos el instalador en modo desatendido mediante la opcin mode
unattended. Opcionalmente podemos especificar el directorio donde ser instalado
PostgreSQL mediante prefix /directorioDestino, tambin especificar el directorio de
datos mediante datadir /directorioDestino, especificar la contrasea de
administrador con superpassword o bien especificar el puerto mediante
port , entre otros.
7- Veremos un cuadro de dilogo con una barra de progreso de la instalacin.
8- Esperamos a que el cuadro de dilogo desaparezca, y si no hay errores, el proceso de
instalacin de PostgreSQL en Debian ha finalizado. Adicionalmente se habr instalado
la herramienta de administracin de PostgreSQL pgAdmin III y la herramienta
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 14
StackBuilder (con la que se pueden descargar e instalar herramientas adicionales para
PostgreSQL).
INSTALACION DE POSTGRESQL 9.3 EN WINDOWS SERVER 2008 ESTNDAR
EDITION (64 BITS)
Para instalar PostgreSQL 9.3 es necesario tener instalado en Windows el Runtime de Microsoft Visual C++ 2010 Redistributable. El paquete de instalacin de PostgreSQL 9.3 usado para este manual instala por defecto este software antes de proceder a instalar PostgreSQL, sin embargo puede decidir si instalarlo o no mediante el parmetro install_runtimes descrito en la Tabla 3: Parmetros de instalacin del paquete.
1- Damos clic en el men de inicio de Windows, y ejecutamos Smbolo del sistema como
administrador.
2- Acceder a la carpeta donde se encuentra almacenado el paquete de instalacin de
PostgreSQL. En este ejemplo se encuentra en Escritorio.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 15
3- Podemos ver las opciones disponibles en la instalacin de PostgreSQL al ejecutar
postgresql-9.3.1-linux-x64.run help.
4- Ejecutaremos el instalador en modo desatendido mediante la opcin mode
unattended. Opcionalmente podemos especificar el directorio donde ser instalado
PostgreSQL mediante prefix /directorioDestino, tambin especificar el directorio de
datos mediante datadir /directorioDestino, especificar la contrasea de
administrador con superpassword o bien especificar el puerto mediante
port , entre otros.
5- Veremos un cuadro de dilogo con una barra de progreso de la instalacin.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 16
6- Esperamos a que el cuadro de dilogo desaparezca, y si no hay errores, el proceso de
instalacin de PostgreSQL en Windows ha finalizado. Adicionalmente se habr
instalado la herramienta de administracin de PostgreSQL pgAdmin III y la
herramienta StackBuilder (con la que se pueden descargar e instalar herramientas
adicionales para PostgreSQL).
No es recomendado instalar PostgreSQL para Windows a partir del cdigo fuente, esto es solo para usuarios desarrolladores de PostgreSQL o desarrolladores de extensiones para el mismo. A menos que se quiera hacer cambios en algunos parmetros que requieren recompilar, como por ejemplo block_size. Para ms informacin puede consultar la documentacin oficial de PostgreSQL: http://www.postgresql.org/docs/current/static/install-windows.html
CREAR UNA NUEVA INSTANCIA DE POSTGRESQL Al instalar PostgreSQL como se vio anteriormente, el paquete crea y configura
automticamente una instancia de PostgreSQL. La instancia consiste en un Clster de Base de
Datos y un Servidor de bases de datos PostgreSQL que gestiona un nico Clster de Base de
Datos. Cada Servidor de este tipo escucha por un puerto diferente, y cada Clster de BD tiene
una ubicacin fsica diferente a todos los dems Clster existentes. El Clster que se crea de
forma predeterminada para el mtodo de instalacin que se realiza en este manual, tiene su
ubicacin dada por el opcin datadir, as mismo cada Clster posee un superusuario inicial,
dado por la opcin superaccount y su contrasea es dada por superpassword. El Servidor
asociado a este clster se configura automticamente para que se inicie cuando el SO inicia, y
se define su puerto de escucha mediante la opcin port.
Veremos ahora como crear una nueva instancia, es decir, como crear un Clster de Base de
Datos y cmo iniciar un Servidor de Base de Datos que lo gestione.
Existe una gran variedad de opciones que se pueden especificar a la hora de crear un clster e
iniciar un servidor que lo gestione, si desea ahondar visite las siguientes pginas web:
Crear un clster de base de datos: http://www.postgresql.org/docs/9.3/static/app-initdb.html
Administrar un Servidor de base de datos: http://www.postgresql.org/docs/9.1/static/app-pg-
ctl.html
En este manual usaremos la siguiente forma:
Para crear un clster:
initdb U -A -D -E -W
(-W permite que initdb solicite que se ingrese una contrasea para el superusuario)
Y para iniciar o parar un servidor:
pg_ctl D -l -o -p w start
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 17
pg_ctl D -l -o -p w stop
(-w obliga a pg_ctl a esperar mientras se inicia el servidor)
Initdb y pg_ctl son dos programas usados mediante lnea de comandos que se instalan por defecto con PostgreSQL y se encuentran en la carpeta bin del directorio de instalacin de PostgreSQL.
Tener en cuenta que el servidor de base de datos debe iniciarse manualmente cada vez que el Sistema Operativo inicie. Es posible que el servidor pueda iniciarse automticamente, sin embargo la forma de hacerlo vara segn cada Sistema Operativo y no es explicado en este manual ni en ningn otro material de este proyecto investigativo de PostgreSQL.
CREAR INSTANCIA DE POSTGRESQL EN WINDOWS SERVER 2008 ESTNDAR
EDITION (64BITS) 1- Ejecutamos como administrador la ventana de comandos cmd.
2- Navegamos hasta la carpeta bin del directorio de instalacin de PostgreSQL. Para este
caso C:\ PostgreSQL\9.3\bin
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 18
3- Ejecutamos initdb con los parmetros para crear un nuevo Clster de BD.
4- Ingresamos y confirmamos la contrasea para el superusuario del clster.
5- Cuando finalice el proceso de creacin del clster, siempre dentro de la carpeta bin,
ejecutamos pg_ctl con todos los parmetros necesarios para iniciar un servidor
asociado al clster creado.
6- Esperamos a que se inicie el servidor.
7- Ahora podemos establecer conexiones en el puerto 5436 del nuevo clster de BD
creado.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 19
CREAR INSTANCIA DE POSTGRESQL EN DEBIAN GNU/LINUX 7.2.0 (64 BITS) 1- Ejecutamos la Terminal de .
2- Ingresamos la contrasea de Root.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 20
3- Antes que nada, creamos el directorio donde se almacenar el clster, y damos
permisos a la cuenta de usuario que no es Root pasa usar la carpeta del clster. (en
este caso la cuenta de usuario sin privilegios de Root se llama ues)
4- Navegamos hasta la carpeta bin del directorio de instalacin de PostgreSQL. Para este
caso /usr/PostgreSQL/9.3/bin
5- Ahora cambiamos al usuario sin privilegios de Root.
6- Ejecutamos initdb con los parmetros para crear un nuevo Clster de BD.
7- Ingresamos y confirmamos la contrasea para el superusuario del clster.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 21
8- Cuando finalice el proceso de creacin del clster, siempre dentro de la carpeta bin,
ejecutamos pg_ctl con todos los parmetros necesarios para iniciar un servidor
asociado al clster creado.
9- Esperamos a que se inicie el servidor.
10- Ahora podemos establecer conexiones en el puerto 5436 del nuevo clster de BD
creado.
-
Instalacin de PostgreSQL Modulo I
Ing. Elmer Arturo Carballo Ruiz Pgina 22
DESINSTALACIN Si se necesita desinstalar PostgreSQL, solamente se debe ejecutar el en cualquier momento el desinstalador creado durante el proceso de instalacin. Tener en cuenta que el desinstalador nunca eliminar los directorios de datos (clster de base de datos) o la cuenta de servicio de usuario. El desinstalador se encuentra en el directorio donde fue instalado PostgreSQL, y se puede ejecutar de la misma manera en que se ejecut el instalador, a diferencia que para este proceso no se requieren opciones adicionales. En Windows, tambin se puede ejecutar el desinstalador desde Agregar o Quitar Programas del Panel de Control.