Está en la página 1de 52

Alta Disponibilidad con

PostgreSQL
Introduccin

Agenda

Bases de Datos

PostgreSQL

Alta Disponibilidad (HA)

Trminos

eplicacin

!todos

Balance de "argas

"onsultas Distribuidas

Di#ergencia

A"ID

Tolerancia a $allos

S%ncrona #s& As%ncrona

Diligente #s& ela'ada

Particionado de Datos

"luster

(rid

Discos "ompartidos

S)ared*+ot)ing

Alternati#as

Programas

Bases de Datos
Para entender cmo ,unciona algo lo me'or es
imaginar cmo lo )ar%an los Picapiedras

Bases de Datos
Sistema de Digitali-acin
Almacenamiento de "alidad

Bases de Datos
P.ginas de !emoria
Datacenter

Bases de Datos
"a%da del Sistema

Bases de Datos
egresamos en Bre#e con Los Picapiedras

PostgreSQL
PostgreSQL es un sistema
de gestin de bases de
datos ob'eto*relacional/
distribuido ba'o licencia
BSD 0 con cdigo ,uente
disponible libremente&
1tili-a un modelo
cliente2ser#idor 0 usa
multiprocesos en #e- de
multi)ilos para garanti-ar
la estabilidad del sistema&

PostgreSQL

+ace en la
1ni#ersidad de
Ber3ele0 en 4566

Sinnimo de7

8stabilidad

Potencia

obuste-

$acilidad de
administracin

8st.ndares

Alta Disponibilidad

Alta Disponibilidad
Seg9n :i3ipedia7
;Alta disponibilidad (Hig) a#ailabilit0) es un protocolo de dise<o del
sistema 0 su implementacin asociada =ue asegura un cierto grado
absoluto de continuidad operacional durante un per%odo de medicin
dado& Disponibilidad se re,iere a la )abilidad de la comunidad de
usuarios para acceder al sistema/ someter nue#os traba'os/ actuali-ar
o alterar traba'os e>istentes o recoger los resultados de traba'os
pre#ios& Si un usuario no puede acceder al sistema se dice =ue est.
no disponible& 8l trmino tiempo de inacti#idad (do?ntime) es usado
para de,inir cu.ndo el sistema no est. disponible@

Alta Disponibilidad

Aiene de,inida por el resultado/ no por la


estrategia a implementar&

Se mide en trminos de ;Tiempo al Aire@ 0


;Tiempo $uera@&

8l enemigo a #encer son las ca%das de ser#icio


0 tiempos de recuperacin&

A la Alta Disponibilidad se le suma en las


Bases de Datos todos los aspectos de "alidad
relacionadas con los ser#icios de este tipo&

Alta Disponibilidad

ecuperar un sistema
toma su tiempo

La estrategia por
e>celencia es la
redundancia de
recursos

8n los recursos
redundantes
)acemos copias
(eplicacin)

Algunos Trminos 0 De,iniciones de
Alta Disponibilidad

eplicacin
BQu entendemos por eplicacinC

eplicacin
Para los sistemas de base de datos/ la
replicacin es un proceso de
intercambio de datos de transacciones
para garanti-ar la co)erencia entre los
nodos de la base de datos
redundantes& 8sto me'ora la tolerancia
a ,allos/ lo =ue conduce a una ma0or
con,iabilidad del sistema en general&
La replicacin de bases de datos
tambin se puede llamar bases de
datos distribuidas/ especialmente
cuando se combina con otras
caracter%sticas interesantes&

eplicacin
8n Bases de Datos

!todos de eplicacin
Replicacin de Transacciones

"opia cada una de las transacciones e'ecutadas en


el sistema donde se encuentran conectados los
usuarios )acia un con'unto de bases de datos
secundarias&

8stas bases de datos secundarias recibe los


cambios propagados por la base de datos primaria a
tra#s de un canal de comunicacin&

8n esta tcnica e>iste el posible incon#eniente de las


di,erencias generadas por ,unciones no
determin%sticas como no?() o random()&

!todos de eplicacin
Replicacin por Bitcoras (logs)

Dtro mtodo com9nmente utili-ado es el en#%o de


logs (bit.coras de la base de datos)&

8ste mtodo presenta el problema =ue muc)as


#eces dic)as bit.coras no siempre son pensadas
como elementos de intercambio para e,ectos de
replicacin&

8ste mtodo generalmente se delega para


porciones de la base de datos o #entanas de
mantenimiento 0 sincroni-aciones menores de
bases de datos&

!todos de eplicacin
Replicacin con Formatos Especficos

8stos casos generalmente conlle#an a


con,iguraciones adicionales&

Balance de "argas
+o es lo mismo esto&&

Balance de "argas
&& =ue esto&

Balance de "argas

(eneralmente asociado al concepto de


replicacin est. el Balance de "arga para
me'orar el desempe<o de lectura&

Algunas soluciones para Hig) A#ailabilit0


incorporan balanceadores de carga dentro de
sus caracter%sticas esenciales& Dtros reposan
esta responsabilidad sobre programas
altamente dependientes de la plata,orma de
Sistema Dperati#o o programas de Terceros&

"onsultas Distribuidas
8s pr.cticamente otro nombre =ue recibe el
Balance de "argas& Dentro de la documentacin
de PostgreSQL se le conoce como ;!ulti*Ser#er
Parallel Quer0 8>ecution@

Di#ergencia
8ncuentre las di,erencias&&

Di#ergencia
8ncuentre las di,erencias&&

Di#ergencia

!antener la co)erencia de los datos a tra#s de


m9ltiples nodos replicados es un proceso costoso
debido a la latencia de red&

8s as% como algunos sistemas es=ui#an el costo por


latencia permitiendo =ue los nodos di#er'an le#emente/
lo =ue signi,ica =ue es posible =ue se realicen
transacciones en con,licto&

Para retomar bases de datos co)erentes 0 consistentes/


estos con,lictos deben ser resueltos cuanto antes de
,orma autom.tica o manual&

Di#ergencia

8stos con,lictos rompen las condiciones A"ID


de los sistemas gestores de bases de datos/ en
cu0o caso las aplicaciones reposen ba'o
sistemas con di#ergencia deben estar al tanto e
implementar sistemas de re#isin&

A"ID

Acrnimo de los trminos7

Atomicit0

"onsistenc0

Isolation

Durabilit0

Descrito en la norma ISD2I8" 4EEFG*47 455F


seccin H&

A"ID

Atomicit0 (Atomicidad) es la propiedad =ue


asegura =ue la operacin se )a reali-ado o no/
0 por lo tanto ante un ,allo del sistema no
puede =uedar a medias&

"onsistenc0 (Integridad) 8s la propiedad =ue


asegura =ue slo se empie-a a=uello =ue se
puede acabar& Por lo tanto se e'ecutan a=uellas
operaciones =ue no #an a romper las reglas 0
directrices de integridad de la base de datos

A"ID

Isolation (Aislamiento) es la propiedad =ue


asegura =ue una operacin no puede a,ectar a
otras& 8sto asegura =ue la reali-acin de dos
transacciones sobre la misma in,ormacin sean
independientes 0 no generen ning9n tipo de
error&

Durabilit0 (Durabilidad) es la propiedad =ue


asegura =ue una #e- reali-ada la operacin/
sta persistir. 0 no se podr. des)acer aun=ue
,alle el sistema&

Tolerancia a $allos
8'emplos de Tolerancia 0 ecuperacin de $allos

Tolerancia a $allos
Aenido de los trminos en ingls $ailo#er 0 S?itc)o#er/
es la tcnica =ue permite el cambio de ,orma autom.tica
entre nodos redundantes de un arreglo de
computadores (o instancias de bases de datos)&
Se pre# su uso para sal#aguardar los ser#icios
pro#istos por ser#idores 0 aplicaciones de la interrupcin
de ,orma anormal de los ser#icios de red/ ser#idores 0
aplicaciones instalados en los nodos acti#os de un
arreglo&

Tolerancia a $allos
A ni#el de ser#idores se con,igura igualmente
#alidaciones de IHeart)beatI (incluso en -onas
geogr.,icas distantes) para mantener
sincroni-ados dos o m.s computadores/ de ,orma
de =ue si )a0 un ,allo e>ista la posibilidad de
)acer I)otI s?itc) entre ser#idores 0 e#itar el
tiempo ,uera (do?ntime)&

Tolerancia a $allos

Algunos sistemas/ de ,orma


intencional/ no reali-an el ,ailo#er
completamente automati-ado&

mantienen un tiempo ,uera de


Isolo lecturaI )asta la
inter#encin de un operario&

1n tipo de ,ailo#er autom.tico


con con,irmacin )umana&

Busca e#aluar el impacto de la


ca%da 0 elementos a recuperar al
le#antar los ser#icios&

eplicacin S%ncrona
Se reali-a tan pronto como se reali-a una
transaccin la misma se e'ecuta en todos los
nodos& 8sto es mu0 costoso en trminos de
latencia 0 la cantidad de mensa'es =ue se
en#iar.n/ pero e#ita la di#ergencia

eplicacin As%ncrona
Los nodos del JclusterJ pueden aplicar los datos
de transacciones en cual=uier momento posterior/
por lo =ue los nodos pueden ser#ir di,erentes
simult.neamente distinta data&

eplicacin Diligente
+ormalmente en la documentacin de Bases de
Datos se utili-an como sinnimos de
replicaciones S%ncronas 0 As%ncronas& 8n
principio toda replicacin diligente o entusiasta es
s%ncrona/ pues se busca tener una copia e>acta e
indntica en cada nodo&

eplicacin ela'ada
8n el caso de las replicaciones rela'adas el
proceso de di#ergencia es controlado/ es decir/
se establecen un con'unto de reglas 0 par.metros
=ue permitan una di#ergencia le#e =ue no a,ecte
el ,uncionamiento del proceso general&

Particionado de Datos
Particionado Vertical
Similar al proceso de
normali-acin separa en
tablas con menor cantidad de
columnas los datos de una
misma entidad&
Particionado Horiontal
Permite almacenar registros
de di,erentes tablas&

Particionado de Datos

8n sistemas !ulti !aestro puede utili-arse


para distribuir la tro-os de data a tra#s de los
nodos&

8l uso de particionado re=uiere del uso de


consultas distribuidas&

educe la carga total de su ;cluster@



"luster

"luster

8n general la de,inicin de ;"luster@ o


;"lustering@ es bastante #aga en la
documentacin

Suele re,erirse al agrupamiento de ser#idores


seg9n la tcnica =ue lo emplee&

A cada ser#idor se le conoce como nodo&



(rid

+ombre comercial para ;"luster@

+ormalmente montado sobre redes de


cone>iones redundantes/ o no dirigidas o con
inter,aces sobre la Internet seg9n el autor =ue
se consulte&

eplicacin de Discos
$orma donde se delega la replicacin a
componentes del sistema de arc)i#o =ue se
replican&
Puede ser una solucin simple 0 elegante para
abordar el ,ailo#er por disco&

S)ared*+ot)ing

Ar=uitectura de "omputacin Distribuida donde


se segmentan elementos de los ser#icios a
ser#idores indi#iduales (o con'untos pe=ue<os
de ser#idores en cluster) =ue no comparten
nada entre si&

Ampliamente utili-ado para atender


aplicaciones de alto #olumen de consultas 0
transacciones separadas por .mbitos

BK cmo )acemos todo esto con
PostgreSQLC

BK cmo )acemos todo esto con
PostgreSQLC
Alternati#as de HA con PostgreSQL

Programas para HA con PostgreSQL

Programa !icencia "ad#re "etodo de Replicacin $incroniacin
Pool de
%one&in
Balanceo de %arga
Particionamiento de
%ons#ltas
P("luster BSD
Aer los detalles
en la pagina ?eb
!aestro*!aestro S%ncrono +D SI +D
Pgpool*I BSD 8stable S%ncrono SI SI +D
Pgpool*II BSD
Liberada
recientemente
S%ncrono SI SI SI
Slon0*I BSD 8stable !aestro*8scla#o As%ncrono +D +D +D
Bucardo BSD 8stable
!aestro*!aestro
!aestro*8scla#o
As%ncrono +D +D +D
Londiste BSD 8stable !aestro*8scla#o As%ncrono +D +D +D
!ammot) BSD 8stable !aestro*8scla#o As%ncrono +D +D +D
ub0rep !IT
Liberada
recientemente
!aestro*!aestro
!aestro*8scla#o
As%ncrono +D +D +D
Aeamos a)ora cmo
traba'a pgpool
Crditos
@carlosgr_arahat
@lennincaro
@leninmhs
@deglip
@gregoria126
@cnti
Fuentes:
documentacin pgpool;
documentacin proyecto postgresql-r;
i!ipedia

También podría gustarte