Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Mostrando entradas con la etiqueta replication. Mostrar todas las entradas
Mostrando entradas con la etiqueta replication. Mostrar todas las entradas

Cluster PostgreSQL 9 con Centos

Los sistemas de hoy en día requieren alta disponibilidad para poder sobrevivir a la competencia, en esto nos pueden ayudar los clusteres. Esta vez les mostrare como instalar y configurar un cluster PostgreSQL de 4 nodos con Centos. Todo el trabajo se realizara desde la cuenta root.

Requerimientos:
Centos 5.6
PostgreSQL 9.0.4

Servidores:
vepg1 - 192.168.1.37 - nodo
vepg2 - 192.168.1.38 - nodo
vepg3 - 192.168.1.39 - nodo
vepg4 - 192.168.1.40 - nodo
vepgp - 192.168.1.41 - manejador de cluster

-Instalamos, actualizamos y configuramos los 5 servers Centos 5.6
-Activar localtime en todos los servers ya que deben tener la misma hora

-Cambios en vepgp

-Descargamos e instalamos pgpool
wget -c ftp://ftp.pbone.net/mirror/ftp.pramberger.at/systems/linux/contrib/rhel5/i386/pgpool-II-3.0.4-1.el5.pp.i386.rpm
wget -c ftp://ftp.pbone.net/mirror/ftp.pramberger.at/systems/linux/contrib/rhel5/i386/pgpool-II-libs-3.0.4-1.el5.pp.i386.rpm

rpm -vi pgpool-II-libs-3.0.4-1.el5.pp.i386.rpm
rpm -vi pgpool-II-3.0.4-1.el5.pp.i386.rpm

rpm -qa|grep pgpool
pgpool-II-3.0.4-1.el5.pp
pgpool-II-libs-3.0.4-1.el5.pp

-Modificamos el file hosts del server vepgp
vi /etc/hosts
::1 localhost.localdomain localhost
127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
192.168.1.41    vepgp.hyettemail.com    vepgp
192.168.1.37    vepg1.hyettemail.com    vepg1
192.168.1.38    vepg2.hyettemail.com    vepg2
192.168.1.39    vepg3.hyettemail.com    vepg3
192.168.1.40    vepg4.hyettemail.com    vepg4

-Copiamos el conf de replicacion
cd /etc/pgpool-II
cp pgpool.conf.sample-replication pgpool.conf

-Lo modificamos
vi pgpool.conf
listen_addresses = '*'
backend_hostname0 = 'vepg1'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/data'
backend_hostname1 = 'vepg2'
backend_port1 = 5432
backend_weight1 = 1
backend_data_directory1 = '/data'
backend_hostname0 = 'vepg3'
backend_port0 = 5432
backend_weight0 = 1
backend_data_directory0 = '/data'
backend_hostname1 = 'vepg4'
backend_port1 = 5432
backend_weight1 = 1
backend_data_directory1 = '/data'

Salimos guardando y lo ejecutamos

service pgpool start

-Hacemos algunos cambios
touch /tmp/pgpool_status
chown postgres.postgres /tmp/pgpool_status
touch pool_passwd
chown postgres.postgres pool_passwd

-Descargamos pgpoolAdmin y lo descomprimimos en /var/www/html. En mi caso lo descomprimo en /var/www/html/pgpadm/

wget -c http://pgfoundry.org/frs/download.php/2964/pgpoolAdmin-3.0.3.tar.gz
chown -R apache.apache /var/www/html/pgpadm/

-Creamos un password en MD5

pg_md5 passworddeprueba
vi /etc/pgpool-II/pcp.conf
user:72b5d515911cc4e30d4696e333573727

-Instalamos php
yum install php-cli php-mbstring php-pdo php php-pgsql php-gd php-soap php-mysql php-pear php-common php-devel

-Damos restart al httpd
service httpd restart

-Apuntamos con un browser a http://192.168.1.41/pgpadm/install/phpinfo.php y verificamos que Multibyte Support y PostgreSQL Support estan Enabled

-Cambiamos permisos
chmod 777 /var/www/html/pgpadm/templates_c/
chown apache /etc/pgpool-II/pgpool.conf
chmod 644 /etc/pgpool-II/pgpool.conf
chown apache /etc/pgpool-II/pcp.conf
chmod 644 /etc/pgpool-II/pcp.conf
chown apache /etc/pgpool-II

-Ejecutamos el instalador en http://192.168.1.41/pgpadm/install/index.php

-Eliminamos el instalador despues de terminar de instalar
rm -Rf /var/www/html/pgpadm/install

-Cambios en nodos
-Excluimos los rpm de postgresql para que solo se instalen de PGDG

 cd /etc/yum.repos.d/
 vi CentOS-Base.repo

agregamos a  [base] y [updates]
exclude=postgresql*

Salimos guardando

-Instalamos el rpm del repositorio yum
wget -c http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm
rpm -vi pgdg-centos-9.0-2.noarch.rpm

yum install postgresql90-server postgresql90-plperl postgresql90-contrib compat-postgresql-libs postgresql90-odbc-debuginfo postgresql90-debuginfo postgresql90-libs postgresql90-test postgresql90-plpython postgresql90-devel postgresql90-odbc postgresql90-docs postgresql90 postgresql90-pltcl

Si nos da error:
Transaction Check Error:
  file /usr/lib/libpq.so.4.1 from install of compat-postgresql-libs-4-1PGDG.rhel5.i686 conflicts with file from package postgresql-libs-8.1.23-1.el5_6.1.i386

rpm -e --nodeps postgresql-libs

-Iniciamos posgresql en los 4 nodos
service postgresql-9.0 initdb

-Modificamos los conf para permitir conexiones desde el manejador
vi pg_hba.conf
local all all trust
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 trust

vi postgresql.conf
listen_addresses = '*'
port = 5432

-Iniciamos el servicio de postgresql
service postgresql-9.0 start

-Creamos una db de pruebas para verificar este funcionando el cluster. Desde cualquiera de los nodos ejecutamos.

createdb -h 192.168.1.41 -p 9999 -U postgres --no-password dbtest

Si cae en el prompt sin dar ningun mensaje es que ya creo la db perfecto y el pgpool ejecuto la orden en todos los nodos creando la db replicada.





Con esto finalizamos, espero les sirva




Share/Bookmark