Professional Documents
Culture Documents
CTEDRA:
BASE DE DATOS.
CATEDRTICO:
Ing. Ernesto Alexander Caldern Peraza.
PRESENTADO POR:
Chacn Linares, Franco Eder.
Cruz Salazar, Jos Manuel.
Figueroa Jimnez, Carlos Enrique.
Reinoza Arocha, Giovanni Ernesto.
CICLO:
I 2010.
NDICE ................................................................................................................................. II
POSTGRESQL ................................................................................................................... 11
INSTALACIN. ................................................................................................................ 12
PGPOOLII ........................................................................................................................ 12
INSTALACIN. ................................................................................................................ 13
II
REQUISITOS DEL PROYECTO
SERVIDORES.
3
SISTEMA OPERATIVO
INTRODUCCIN.
En este tutorial se utilizarn tres equipos, un servidor y dos clientes, vale aclarar
tambin que, para propsitos de enseanza, se utilizarn como nombres de equipo
(hostname) deb seguido de algn nmero (es decir deb1, deb2 y deb3).
PRIMEROS PASOS.
El siguiente apartado indica los pasos bsicos a seguir para la correcta instalacin
del sistema operativo utilizado, pero lamentablemente al momento de la realizacin del
presente manual slo se tena a disposicin una versin anterior del mismo (Debian 4.0
Etch); afortunadamente el proceso de instalacin se ha mantenido idntico en ambas
versiones, por lo que igualmente los pasos a continuacin an son vlidos.
Si todo sali bien aparecer una pantalla como la que muestra la Figura 3 en su monitor.
4
El instalador proceder a revisar el disco de instalacin, el hardware encontrado en
el equipo y configurar la red con DHCP de encontrar una conexin que conecte a un
servidor DHCP en la red. Ver las Figuras 7 a 12.
PARTICIONAMIENTO.
Ahora usted tendr que particionar su disco duro (Figura 16). En este paso, hay que
prestar atencin especial al crear una particin que posea el espacio libre suficiente para
cumplir los requisitos mnimos para la correcta instalacin de todos los paquetes necesarios
para la implementacin de nuestro proyecto; si lo desea puede revisar el apartado referente
a los Requisitos del Proyecto, en las Pginas 4 y 5 del presente manual.
5
Despus de un rato, sus nuevas particiones estn creadas y formateadas (Figura 23).
ADMINISTRACIN DE USUARIOS.
A continuacin se le preguntar por una contrasea para el Sper Usuario (root).
Y una confirmacin de la contrasea anterior para evitar errores de escritura (Figuras 25 y
26).
EL SISTEMA BASE.
A continuacin se proceder a instalar el sistema base (Figuras 31 a 33).
Cabe destacar que en este paso dejamos dos posibles selecciones de rplicas a
manera de ejemplos; las cuales pueden ser revisadas observando las Figuras 35 y 36 para
Espaa, y las Figuras 37 y 38 para El Salvador.
A menos que se utilice un servicio de Proxy HTTP, dejaremos este campo en blanco
y se proceder a seleccionar la opcin de Continuar (Figura 39).
6
apt se encargar ahora de actualizar su base de paquetes disponibles para instalar
(Figuras 40 y 41).
Despus se preguntar acerca de si se desea ser parte de una encuesta sobre el uso
de los paquetes (como un concurso de popularidad pero de software), queda a eleccin del
usuario elegir el participar o no (Figura 43).
Los paquetes seleccionados estn siendo ahora instalados en el sistema. Este paso
puede demorar algo de tiempo dependiendo de las caractersticas del equipo y de la
cantidad de actualizaciones disponibles, as como de la velocidad de la conexin a Internet
que se posea (Figuras 46 y 47).
CONFIGURACIONES Y ACTUALIZACIONES
Antes de pasar a la configuracin propia de la red, hay que tomar en cuenta que la
mayora de comandos que utilizaremos a continuacin solo pueden ejecutarse si se poseen
privilegios de Sper Usuario, as que procedemos a cambiar de cuenta ejecutando:
7
su
CONFIGURACIN DE LA RED.
Ahora bien, debido a que el instalador de Debian tuvo que configurar nuestro
sistema para obtener sus opciones de red mediante DHCP, nos corresponde cambiar dicha
configuracin, esto debido a que se supone que un servidor debera poseer una direccin IP
esttica o fija.
nano /etc/network/interfaces
###############################################################
# Para Desechar una IP Asignada por DHCP Comentamos...
# allow-hotplug eth0
# iface eth0 inet dhcp
8
auto eth0:1
iface eth0:1 inet static
address 192.168.1.23
network 192.168.1.0
netmask 255.255.255.0
###############################################################
/etc/init.d/networking restart
nano /etc/hosts
###############################################################
# Comentar...
# 127.0.0.1 localhost
# 127.0.1.1 deb2.bdd.edu deb2
# Y Agregar...
127.0.0.1 localhost.localdomain localhost
192.168.1.11 deb1.bdd.edu deb1
192.168.1.22 deb2.bdd.edu deb2
192.168.1.33 deb3.bdd.edu deb3
192.168.1.44 pgpool2.bdd.edu pgpool2
###############################################################
Ahora ejecutamos:
9
Y procedemos a reiniciar el sistema:
Despus ejecutamos:
hostname
hostname -f
Recuerde que en Debian puede volverse Sper Usuario o usuario root ejecutando
la orden su e ingresando la contrasea que le fue proporcionada a dicha cuenta al momento
de la instalacin del SO.
nano /etc/apt/sources.list
#
# Disco de Instalacin...
# deb cdrom:[Debian GNU/Linux 4.0 r3 _Etch_ - Official i386 DVD Binary-1
20080217-11:31]/ etch contrib main
# deb cdrom:[Debian GNU/Linux 4.0 r3 _Etch_ - Official i386 DVD Binary-1
20080217-11:31]/ etch contrib main
###############################################################
# Repositorio Primario de Espaa...
deb http://ftp.es.debian.org/debian/ etch main
deb-src http://ftp.es.debian.org/debian/ etch main
10
Si se necesita conocer la direccin de algn otro repositorio de paquetes, se puede
consultar la pgina oficial de la lista de las rplicas de Debian
(http://www.debian.org/mirror/list), y colocar dicha rplica dentro del archivo
/etc/apt/sources.list, como ya se hizo anteriormente.
Despus ejecutamos:
apt-get update
apt-get upgrade
POSTGRESQL
11
INSTALACIN.
En esta oportunidad veremos como instalar y configurar un servidor de base de
datos con PostgreSQL 8.4 en Debian 5.0.4. Pues bien, lo primero es descargar la versin de
PostgreSQL 8.4 del sitio oficial (http://www.postgresql.org/download) y ejecutar en
consola la siguiente orden dependiendo donde tengamos guardado nuestro archivo de
PostgresSQL:
./postgresql-8.4.bin
A veces resulta necesario otorgarle ciertos permisos de ejecucin a los archivos, por
ejemplo, en caso de ser necesario aplicamos el siguiente comando como sper-usuario:
chmod +x postgresql-8.4.bin
PGPOOLII
Pgpool-II se podra considerar como un intrprete que habla entre los extremos de
frontend y backend de PostgreSQL, y pasa las conexiones entre ellos. De ese modo, una
aplicacin de base de datos (frontend) cree que pgpool-II es el verdadero servidor de
PostgreSQL, y el servidor (backend) ve a pgpool-II como uno de sus clientes. Debido a que
pgpool-II es transparente tanto para el servidor como para el cliente, una aplicacin de base
de datos existente puede empezar a usarse con pgpool-II casi sin ningn cambio en su
cdigo fuente.
12
Agrupacin de Conexiones. Pgpool-II mantiene abiertas las conexiones a los servidores
PostgreSQL y las reutiliza siempre que se solicita una nueva conexin con las mismas
propiedades (nombre de usuario, base de datos y versin del protocolo). Ello reduce la
sobrecarga en las conexiones y mejora la productividad global del sistema.
Replicacin. Pgpool-II puede gestionar mltiples servidores PostgreSQL. El uso de la
funcin de replicacin permite crear una copia en dos o ms discos fsicos, de modo que
el servicio puede continuar sin parar los servidores en caso de fallo en algn disco.
Balanceo de Carga. Si se replica una base de datos, la ejecucin de una consulta
SELECT en cualquiera de los servidores devolver el mismo resultado. pgpool-II se
aprovecha de la caracterstica de replicacin para reducir la carga en cada uno de los
servidores PostgreSQL distribuyendo las consultas SELECT entre los mltiples
servidores, mejorando as la productividad global del sistema. En el mejor caso, el
rendimiento mejora proporcionalmente al nmero de servidores PostgreSQL. El
balanceo de carga funciona mejor en la situacin en la cul hay muchos usuarios
ejecutando muchas consultas al mismo tiempo.
Consultas en Paralelo. Al usar la funcin de paralelizacin de consultas, los datos
pueden dividirse entre varios servidores, de modo que la consulta puede ejecutarse en
todos los servidores de manera concurrente para reducir el tiempo total de ejecucin. La
paralelizacin de consultas es una solucin adecuada para bsquedas de datos a gran
escala.
INSTALACIN.
Un detalle a tomar muy en cuenta es que al momento de implementar este proyecto,
se utiliz la versin 2.2.6 de Pgpool-II, as que en varios comandos debe de cambiarse el
2.2.6 por la versin utilizada por el usuario.
cd /usr/local/src
wget http://pgfoundry.org/frs/download.php/2478/pgpool-II-2.2.6.tar.gz
tar --extract --gzip --file pgpool-II-2.2.6.tar.gz
cd pgpool-II-2.2.6
./configure --prefix=/opt/pgpool2
make
make install
13
ARCHIVOS DE CONFIGURACIN
PGPOOL-II.
Con una instalacin exitosa procederemos a modificar los archivos
pcp.conf.sample y pgpool.conf.sample; para obtener estos archivos copie los archivos
de ejemplo y renmbrelos:
cp /opt/pgpool2/etc/pcp.conf.sample /opt/pgpool2/etc/pcp.conf
cp /opt/pgpool2/etc/pgpool.conf.sample /opt/pgpool2/etc/pgpool.conf
cp /opt/pgpool2/etc/pool_hba.conf.sample /opt/pgpool2/etc/pool_hba.conf
/opt/pgpool2/bin/pg_md5 <contrasea>
###############################################################
# USERID:MD5PASSWD
# usuario pgpool
# contrasea pgpool
pgpool:ba777e4c2f15c11ea8ac3be7e0440aa0
###############################################################
###############################################################
listen_addresses = '*'
port = 9999
pcp_port = 9898
socket_dir = '/var/run/postgresql'
pcp_socket_dir = '/var/run/postgresql'
backend_socket_dir = '/var/run/postgresql'
pcp_timeout = 10
num_init_children = 32
max_pool = 100
child_life_time = 300
logdir = '/var/run/postgresql'
pid_file_name = '/var/run/pgpool/pgpool.pid'
replication_mode = true
load_balance_mode = true
reset_query_list = 'ABORT; DISCARD ALL'
14
health_check_timeout = 20
health_check_period = 60
health_check_user = 'pgpool'
system_db_hostname = 'localhost'
system_db_port = 5432
system_db_dbname = 'pgpool'
system_db_schema = 'pgpool_catalog'
system_db_user = 'pgpool'
system_db_password = ''
backend_hostname0 = '172.1.1.2'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/opt/PostgreSQL/8.4/data'
backend_hostname1 = '172.1.1.3'
backend_port1 = 5432
backend_weight1 = 1
backend_data_directory1 = '/opt/PostgreSQL/8.4/data'
backend_hostname2 = '172.1.2.3'
backend_port2 = 5432
backend_weight2 = 1
backend_data_directory2 = '/opt/PostgreSQL/8.4/data'
###############################################################
mkdir /var/run/pgpool
mkdir /var/run/postgresql
chmod R 777 /var/run/pgpool
chmod R 777 /var/run/postgresql
###############################################################
# "host" records. In that case you will also need to make pgpool listen
# on a non-local interface via the listen_addresses configuration
parameter.
15
La nica configuracin que cabe explicar es que por efectos didcticos se pone que
acepte conexiones de cualquier direccin, no obstante este valor se puede cambiar a
determinada red o porcin de red, por motivos de seguridad.
POSTGRESQL.
Procedemos ahora con el archivo pg_hba.conf que se encuentra en
/opt/PostgreSQL/8.4/data:
###############################################################
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
listen
# on a non-local interface via the listen_addresses configuration
parameter,
# or via the -i or -h command line switches.
###############################################################
#! /bin/sh
PATH=/opt/pgpool2/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/opt/pgpool2/bin/pgpool
PIDFILE=/var/run/pgpool/pgpool.pid
case "$1" in
start)
echo iniciando demonio pgpool espere
/etc/init.d/postgresql-8.4 start
/opt/pgpool2/bin/pgpool -n &
sleep 3
;;
16
stop)
echo deteniendo el demonio pgpool espere
/opt/pgpool2/bin/pgpool stop
sleep 3
;;
restart)
echo reiniciando los servicios de pgpool
/etc/init.d/postgresql-8.4 restart
/opt/pgpool2/bin/pgpool stop
/opt/pgpool2/bin/pgpool -n &
sleep 3
;;
*)
echo error de comando pruebe: start, stop o restart
;;
esac
###############################################################
Y con este ltimo archivo finalizamos nuestra configuracin, luego solamente nos
queda reiniciar el proceso de pgpool-II y comprobar nuestra implementacin.
su postgres
/opt/postgresql/8.4/bin/createdb h [host] p 9999 <nombre_base_de_datos>
Despus de aplicar el comando anterior, debera de existir una base de datos idntica
(respaldada) en cada uno de los servidores configurados mediante los pasos vistos a lo largo
de todo este documento.
17
GALERA DE IMGENES
18
Figura 6: Configuracin del Teclado.
19
Figura 14: Configuracin del Nombre de Dominio.
20
Figura 20: Clculo de las Nuevas Particiones.
21
Figura 26: Clave del Sper Usuario (II).
22
Figura 32: Instalacin del Sistema Base (II).
23
Figura 38: Seleccin de la Rplica (El Salvador).
24
Figura 44: Seleccin de Programas (II).
25
Figura 50: Instalacin del GRUB.
26
FUENTES DE CONSULTA
Todas las fuentes a continuacin citadas fueron consultadas por ltima vez a las
4:30 P.M. el 14 de Junio de 2010.
Timme, Falko. (2007). The Perfect Setup Debian Etch (Debian 4.0).
http://www.howtoforge.com/perfect_setup_debian_etch/.
Timme, Falko. (2009). The Perfect Server Debian Lenny (Debian 5.0) [ISPConfig
2]. http://www.howtoforge.com/perfect-server-debian-lenny-ispconfig2/.
27