Bucardo

Instalación

Añadiendo repositorios de postgresql
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Añadiendo llave del repositorio y actualizando el sistema de paquetes
sudo apt-get install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade

Instalando paquetes necesarios para Bucardo
sudo apt-get install postgresql-9.6 bucardo postgresql-plperl-9.6

##Instalando Bucardo## Preparando la base de datos bucardo
Editar /etc/postgresql/9.1/main/pg_hba.conf y añadir:

local bucardo bucardo md5
host bucardo bucardo localhost md5

Crear base de datos bucardo
createdb bucardo
create role bucardo with superuser noinherit;
grant bucardo to bucardo;

Crear un usuario para bucardo y dando permisos a las rutas de este
useradd bucardo
passwd bucardo ****
chown postgres /etc/bucardorc
mkdir /var/run/bucardo && chown postgres /var/run/bucardo
usermod -aG bucardo postgres
alter user bucardo with encrypted password 'el_secret_de_la_DB';
grant all privileges on database bucardo to bucardo;
CREATE LANGUAGE plperlu;
grant all privileges on database bucardo to bucardo;
alter database bucardo owner to bucardo;

Editar el archivo bucardorc (este sera tomado como referencia del instalador)

dbport = 5432
dbhost = localhost
dbname = bucardo
dbuser = bucardo
dbpass = **

Correr el instalador de bucardo
su - postgres -c "bucardo install"

  1. Host: localhost
  2. Port: 5432
  3. User: bucardo »> Normalmente aparece postgres
  4. Database: bucardo
  5. PID directory: /var/run/bucardo

    Nota: Seguramente aparecera un error de password luego de correr la instalación, antes de darte dolores de cabeza, verifica el siguiente paso y ejecuta bucardo status

Editar el archivo /usr/bin/bucardo +/- en la linea 85

79 quiet => 0,
80 verbose => 0,
81 quickstart => 0,
82 bcverbose => 1,
83 dbname => ‘bucardo’,
84 dbuser => ‘bucardo’,
85 dbpass => ‘el_secret_de_la_DB’, (cambia undef; por el valos de tu md5 en la DB bucardo)
86 sendmail => 0,
87 extraname => ‘’,
88 logseparate => 0,
89 logextension => ‘’,
90 logclean => 0,
91 batch => 0,

Usando Bucardo

Agregar bases de datos a bucardo
bucardo add db name_01 db=db-name user=username pass=secret_md5 host=hostname01
bucardo add db name_02 db=db-name user=username pass=secret_md5 host=hostname02

Agregar tablas a replicar y crear grupo de replicación
bucardo add all tables db=name_01 relgroup=name_relgroup

Crear Grupo de replicación
bucardo add dbgroup name_dbgroup name_01:source name_02:source

Crear reglas de sincronización
bucardo add sync name_sync dbgroup=name_dbgroup relgroup=name_relgroup conflict_strategy=bucardo_source onetimecopy=2 autokick=0

Indicar metodo de syncronizacion, en este caso automatico
bucardo update sync qa_sync autokick=1

Aplicar cambios realizados
bucardo reload config

Chequear estado del servicio
bucardo status All