Está en la página 1de 21

PostgreSQL: Respaldo y restauración de datos.

Cuando se trabaja con base de datos, uno de las cosas más importantes de hacer es respaldar los
datos en caso de que ocurra cualquier situación que dañe nuestro servidor de base de datos. De
nada nos serviría hacer esos respaldos si no los podemos volver a cargar (restaurar) cuando lo
necesitemos.
En este post, trataremos la forma de hacer respaldos y restauración de datos cuando se utiliza
postgreSQL como DBMS.
Respaldando los datos: pg_dump

pg_dump es una herramienta de línea de comandos que nos permita hacer un respaldo de alguna
de las bases de datos (o todas) en nuestro servidor postgres.
Permite hacer el volcado de datos en diferentes formatos ya sean compresos, texto plano, etc. En
resumen, escribe en un archivo (o salida estándar) las instrucciones SQL necesarias para hacer un
respaldo de la base de datos.

El formato del comando pg_dump es:

pg_dump [opciones] [nombre_base]

Entre las opciones que se pueden utilizar están:


 dbname: Nombre de la base de datos de la que se desea hacer respaldo.
 -a o --data-only: Hace un volcado solo de los datos y no del esquema.
 -c o --clean: Crea instrucciones para eliminar los elementos antes de crearlos. Es útil para evitar los
errores del tipo 'la relacion nombre_relación ya existe' a la hora de restaurar el respaldo.
 -C o --create: Escribe las instrucciones para la creación de la base de datos dentro del script del
respaldo.
 -f <archivo> o --file=<archivo>: Escriba la salida (el volcado) en el archivo especificado. En caso
de que no se utilice esta opción, el volcado se hace a la salida estándar.
 -F <formato_de_archivo> o --format=<formato_de_archivo>: Permite especificar el formato de la
salida del dump. El formato de salida puede ser:
 p o plain: Texto plano.
 c o custom: Formato de salida customizable. Este tipo de salida siempre se realiza compreso por
defecto.
 t o tar: Crea la salida en formato tar.
 -n <nombre_esquema> o --schema=<nombre_esquema>: Realiza el dumpúnicamente del
esquema (y todos los objetos que contengan) que concuerde con el<nombre_esquema>. Si no se
especifica, se hará un dump de todos los esquemas que no sean del sistema y que estén en la base
destino. Si se quiere incluir en el dump más de un esquema se pueden poner multiples -n
<nombre_esquema> como sean necesarios.
 -N <nombre_esquema> o --exclude-schema=<nombre_esquema>: Omite los esquemas que
concuerden con <nombre_esquema> del dump a realizarse. Se pueden incluir tantos -N como sean
necesarios.
 -s o --schema-only: Hace un volcado únicamente del esquema, no de los datos.
 -t <nombre_tabla> o --table=<nombre_tabla>: Hace un volcado solo de las tablas que se
especifiquen. Se pueden utilizar -t <nombre_tabla> tantas veces como se necesite. Se debe tener
en cuenta que pg_dump no hace un seguimiento de las tablas de las que pueda depender la tabla
que se desee volcar con el dump, así que hay que tener cuidado de incluirlas todas las que sean
necesarias (que tengan relación con llaves primarias o foráneas) para garantizar que se puede hacer
la restauración de los datos exitosamente.
 -T <nombre_tabla> o --exclude-table: <nombre_tabla>: Excluye deldump las tablas listadas. Esta
opción puede ser utilizada más de una vez.
 --inserts: Utiliza inserts en lugar de copy en las instrucciones de SQL.
 --port = <puerto>: Especifica el puerto TCP o local en el cual el servidor está escuchando.
 -U <nombre_de_usuario>: Especifica el nombre de usuario con el que se hará la conexión a la base
de datos que se desea respaldar.
Ejemplos:
Si tenemos una base de datos llamada base_de_prueba y queremos respaldarla completamente en
un archivo llamado base_de_prueba.sql, podemos utilizar el siguiente comando:
pg_dump base_de_prueba > base_de_prueba.sql

Para hacer el volcado en un archivo de extensión personalizada (opción -F y c paracustom):

pg_dump -Fc base_de_prueba > base_de_prueba.dump

Para volcar solo una tabla de la base:

pg_dump -t nombre_tabla base_de_prueba > mi_tabla_dump.sql

Restaurando los datos: pg_restore

Para realizar la restauración de los datos volcados con pg_dump, podemos utilizar la
herramienta pg_restore. pg_restore restaura una base de datos que ha sido respaldada
con pg_dump.

Entre las ventajas de utilizar esta utilidad para la restauración es que se puede seleccionar qué partes
del respaldo se quieren restaurar o incluso reordenar los items antes de hacer la restauración

La sintáxis del comando es la siguiente:

pg_restore [opciones] [fichero_a_restaurar]

Entre las opciones más comunes utilizadas con este comando están:

 -a o --data-only: Restaura solo los datos, no el esquema.


 -c o --clean: Elimina los objetos antes de volverlos a crear.
 -C o --create: Crea la base de datos especificada con la opción -d, sin embargo, los datos son
restaurados a la base de datos que aparece en el script.
 -d <nombre_base> o --dbname=<nombre_base>: Conecta a la base de datos<nombre_base> y
restaura los datos directamente en ella.
 -j <numero> o --jobs=<numero>: Realiza la restauración de los datos utilizando<numero> hilos o
procesos (dependiendo del sistema operativo). Cada jobs es un proceso o hilo que utiliza una
conexión separada. La utlización de esta opción, permite poder restaurar un dump en una forma más
rápida, sin embargo, utiliza más recursos en el servidor. La velocidad de la restauración, por tanto,
depende en gran medida de la configuración del hardware del servidor.
 -n <nombre_esquema> o --schema=<nombre_esquema>: Realiza la restauración únicamente del
esquema llamado <nombre_esquema>.
 -s o --schema-only: Restura solo el esquema, no los datos.
 -t <nombre_tabla> o --table=<nombre_tabla>: Restaura únicamente la tabla con el
nombre <nombre_tabla>. <nombre_tabla> puede ser una expresión regular.
 -U <nombre_usuario> o --username=<nombre_usuario>: Nombre de usuario con el que se desea
hacer la conexión.
Uno de las cosas a tomar en cuenta a la hora de restaurar un respaldo es que si éste ha sido hecho
en un formato particular (custom), no podrá ser visible con herramientas comomore, cat o algún
editor de texto.
Debido a que no se puede ver que usuarios se utilizan o a que base de debe conectar, se pueden
correr problemas a la hora de quererlos restaurar en otra máquina que no tenga los usuarios o bases
que correspondan con los que están en el archivo creado con pg_dump.
Una forma de solucionar esto es hacer una restauración sin especificar la base de datos a la que se
desea restaurar los datos. Esto hace que pg_restore mande la salida a la salida estandar. Esta salida
estandar puede ser enviada a un archivo que contendrá las instrucciones de respaldo en texto plano.
Por ejemplo, asumiendo que tenemos un archivo creado con pg_dump en formato .dump,
llamado respaldo-base.dump y queremos pasarlo a texto plano en un fichero, podemos hacer lo
siguiente:

$ pg_restore respaldo-base.dump > respaldo-base.sql


El operador > redirecciona la salida de la salida estándar (pantalla) al archivo respaldo-base.sql.
Después de haberse ejecutado el comando, el fichero puede ser leido con cualquier editor de texto.

Otros ejemplos:

$ pg_restore -C -d postgres db.dump

Crea la base de datos postgres (por la opción -C) pero siempre vuelca los datos en la base que el
script especifica.

$ pg_restore -d mi_base db.dump


Restaura los datos en la base llamada mi_base. Esta base debe haber sido creada previamente.

Como habrán notado, las herramientas pg_dump y pg_restore comparten muchas opciones
comunes entre sí y representan un par de herramientas bastante útiles a la hora de restaurar y
manipular los respaldos hechos de nuestras bases de datos.

PostgreSQL: Respaldo y restauración de datos.

Cuando se trabaja con base de datos, uno de las cosas más importantes de hacer es respaldar los
datos en caso de que ocurra cualquier situación que dañe nuestro servidor de base de datos. De
nada nos serviría hacer esos respaldos si no los podemos volver a cargar (restaurar) cuando lo
necesitemos.
En este post, trataremos la forma de hacer respaldos y restauración de datos cuando se utiliza
postgreSQL como DBMS.
Respaldando los datos: pg_dump

pg_dump es una herramienta de línea de comandos que nos permita hacer un respaldo de alguna
de las bases de datos (o todas) en nuestro servidor postgres.
Permite hacer el volcado de datos en diferentes formatos ya sean compresos, texto plano, etc. En
resumen, escribe en un archivo (o salida estándar) las instrucciones SQL necesarias para hacer un
respaldo de la base de datos.

El formato del comando pg_dump es:

pg_dump [opciones] [nombre_base]


Entre las opciones que se pueden utilizar están:
 dbname: Nombre de la base de datos de la que se desea hacer respaldo.
 -a o --data-only: Hace un volcado solo de los datos y no del esquema.
 -c o --clean: Crea instrucciones para eliminar los elementos antes de crearlos. Es útil para evitar los
errores del tipo 'la relacion nombre_relación ya existe' a la hora de restaurar el respaldo.
 -C o --create: Escribe las instrucciones para la creación de la base de datos dentro del script del
respaldo.
 -f <archivo> o --file=<archivo>: Escriba la salida (el volcado) en el archivo especificado. En caso
de que no se utilice esta opción, el volcado se hace a la salida estándar.
 -F <formato_de_archivo> o --format=<formato_de_archivo>: Permite especificar el formato de la
salida deldump. El formato de salida puede ser:
 p o plain: Texto plano.
 c o custom: Formato de salida customizable. Este tipo de salida siempre se realiza compreso por
defecto.
 t o tar: Crea la salida en formato tar.
 -n <nombre_esquema> o --schema=<nombre_esquema>: Realiza el dump únicamente del
esquema (y todos los objetos que contengan) que concuerde con el <nombre_esquema>. Si no se
especifica, se hará un dump de todos los esquemas que no sean del sistema y que estén en la base
destino. Si se quiere incluir en el dump más de un esquema se pueden poner multiples -n
<nombre_esquema> como sean necesarios.
 -N <nombre_esquema> o --exclude-schema=<nombre_esquema>: Omite los esquemas que
concuerden con<nombre_esquema> del dump a realizarse. Se pueden incluir tantos -N como sean
necesarios.
 -s o --schema-only: Hace un volcado únicamente del esquema, no de los datos.
 -t <nombre_tabla> o --table=<nombre_tabla>: Hace un volcado solo de las tablas que se
especifiquen. Se pueden utilizar -t <nombre_tabla> tantas veces como se necesite. Se debe tener
en cuenta que pg_dump no hace un seguimiento de las tablas de las que pueda depender la tabla
que se desee volcar con el dump, así que hay que tener cuidado de incluirlas todas las que sean
necesarias (que tengan relación con llaves primarias o foráneas) para garantizar que se puede hacer
la restauración de los datos exitosamente.
 -T <nombre_tabla> o --exclude-table: <nombre_tabla>: Excluye del dump las tablas listadas. Esta
opción puede ser utilizada más de una vez.
 --inserts: Utiliza inserts en lugar de copy en las instrucciones de SQL.
 --port = <puerto>: Especifica el puerto TCP o local en el cual el servidor está escuchando.
 -U <nombre_de_usuario>: Especifica el nombre de usuario con el que se hará la conexión a la base
de datos que se desea respaldar.
Ejemplos:
Si tenemos una base de datos llamada base_de_prueba y queremos respaldarla completamente en
un archivo llamadobase_de_prueba.sql, podemos utilizar el siguiente comando:
pg_dump base_de_prueba > base_de_prueba.sql

Para hacer el volcado en un archivo de extensión personalizada (opción -F y c para custom):

pg_dump -Fc base_de_prueba > base_de_prueba.dump

Para volcar solo una tabla de la base:

pg_dump -t nombre_tabla base_de_prueba > mi_tabla_dump.sql

Restaurando los datos: pg_restore

Para realizar la restauración de los datos volcados con pg_dump, podemos utilizar la
herramienta pg_restore. pg_restore restaura una base de datos que ha sido respaldada
con pg_dump.

Entre las ventajas de utilizar esta utilidad para la restauración es que se puede seleccionar qué partes
del respaldo se quieren restaurar o incluso reordenar los items antes de hacer la restauración

La sintáxis del comando es la siguiente:

pg_restore [opciones] [fichero_a_restaurar]

Entre las opciones más comunes utilizadas con este comando están:

 -a o --data-only: Restaura solo los datos, no el esquema.


 -c o --clean: Elimina los objetos antes de volverlos a crear.
 -C o --create: Crea la base de datos especificada con la opción -d, sin embargo, los datos son
restaurados a la base de datos que aparece en el script.
 -d <nombre_base> o --dbname=<nombre_base>: Conecta a la base de datos <nombre_base> y
restaura los datos directamente en ella.
 -j <numero> o --jobs=<numero>: Realiza la restauración de los datos utilizando <numero> hilos o
procesos (dependiendo del sistema operativo). Cada jobs es un proceso o hilo que utiliza una
conexión separada. La utlización de esta opción, permite poder restaurar un dump en una forma más
rápida, sin embargo, utiliza más recursos en el servidor. La velocidad de la restauración, por tanto,
depende en gran medida de la configuración del hardware del servidor.
 -n <nombre_esquema> o --schema=<nombre_esquema>: Realiza la restauración únicamente del
esquema llamado<nombre_esquema>.
 -s o --schema-only: Restura solo el esquema, no los datos.
 -t <nombre_tabla> o --table=<nombre_tabla>: Restaura únicamente la tabla con el
nombre <nombre_tabla>.<nombre_tabla> puede ser una expresión regular.
 -U <nombre_usuario> o --username=<nombre_usuario>: Nombre de usuario con el que se desea
hacer la conexión.
Uno de las cosas a tomar en cuenta a la hora de restaurar un respaldo es que si éste ha sido hecho
en un formato particular (custom), no podrá ser visible con herramientas como more, cat o algún
editor de texto.
Debido a que no se puede ver que usuarios se utilizan o a que base de debe conectar, se pueden
correr problemas a la hora de quererlos restaurar en otra máquina que no tenga los usuarios o bases
que correspondan con los que están en el archivo creado con pg_dump.
Una forma de solucionar esto es hacer una restauración sin especificar la base de datos a la que se
desea restaurar los datos. Esto hace que pg_restore mande la salida a la salida estandar. Esta salida
estandar puede ser enviada a un archivo que contendrá las instrucciones de respaldo en texto plano.
Por ejemplo, asumiendo que tenemos un archivo creado con pg_dump en formato .dump,
llamado respaldo-base.dump y queremos pasarlo a texto plano en un fichero, podemos hacer lo
siguiente:

$ pg_restore respaldo-base.dump > respaldo-base.sql


El operador > redirecciona la salida de la salida estándar (pantalla) al archivo respaldo-base.sql.
Después de haberse ejecutado el comando, el fichero puede ser leido con cualquier editor de texto.

Otros ejemplos:

$ pg_restore -C -d postgres db.dump


Crea la base de datos postgres (por la opción -C) pero siempre vuelca los datos en la base que el
script especifica.

$ pg_restore -d mi_base db.dump


Restaura los datos en la base llamada mi_base. Esta base debe haber sido creada previamente.

Como habrán notado, las herramientas pg_dump y pg_restore comparten muchas opciones
comunes entre sí y representan un par de herramientas bastante útiles a la hora de restaurar y
manipular los respaldos hechos de nuestras bases de datos.

Crear una copia de seguridad completa de base de datos (SQL Server)

 12/06/2017
 Tiempo de lectura: 34 minutos
 Colaboradores
o

SE APLICA A: SQL Server Azure SQL Database Azure SQL Data Warehouse
Almacenamiento de datos paralelos

Para SQL Server 2014, vaya a Crear una copia de seguridad completa de base de datos (SQL
Server).

En este tema se explica cómo crear una copia de seguridad completa de la base de datos en SQL
Server 2017 mediante SQL Server Management Studio, Transact-SQLo PowerShell.

Para obtener información sobre la copia de seguridad de SQL Server en el servicio de Windows
Azure Blob storage, vea SQL Server Backup and Restore with Microsoft Azure Blob Storage
Service (Copia de seguridad y restauración de SQL Server con el servicio de Microsoft Azure Blob
Storage) y Copia de seguridad en URL de SQL Server.
Antes de comenzar
Limitaciones y restricciones

 La instrucción BACKUP no se permite en una transacción explícita o implícita.


 Las copias de seguridad que se crean en una versión más reciente de SQL Server no se
pueden restaurar en versiones anteriores de SQL Server.
 Para obtener información general, pero también especializada, sobre los conceptos y las
tareas de las copias de seguridad, vea Información general de copia de seguridad (SQL
Server) antes de comenzar.
Recomendaciones

 A medida que la base de datos aumenta de tamaño, las copias de seguridad completas
requieren una mayor cantidad de tiempo para finalizar y espacio de almacenamiento. En el
caso de una base de datos grande, considere la posibilidad de complementar una copia de
seguridad completa con una serie de copias de seguridad diferenciales. Para más
información, consulte SQL Server Backup to URL.
 Calcule el tamaño de una copia de seguridad completa de la base de datos mediante el
procedimiento almacenado del sistema sp_spaceused .
 De forma predeterminada, cada operación de copia de seguridad correcta agrega una
entrada en el registro de errores de SQL Server y en el registro de eventos del sistema. Si
realiza copias de seguridad con frecuencia, estos mensajes de aprobación se acumularán
rápidamente, lo que dará lugar a enormes registros de errores. Esto puede dificultar la
búsqueda de otros mensajes. En esos casos, puede suprimir estas entradas de registro de
copia de seguridad con la marca de seguimiento 3226 si ninguno de los scripts depende de
ellas. Para obtener más información, vea Marcas de seguimiento (Transact-SQL).
Seguridad

TRUSTWORTHY se establece en OFF en una copia de seguridad de base de datos. Para obtener
información sobre cómo establecer TRUSTWORTHY en ON, vea Opciones de ALTER DATABASE
SET (Transact-SQL).

A partir de SQL Server 2012 (11.x) las opciones PASSWORD y MEDIAPASSWORD no se pueden
utilizar para crear copias de seguridad. Todavía puede restaurar las copias de seguridad creadas
con contraseñas.
Permissions

De forma predeterminada, los permisos BACKUP DATABASE y BACKUP LOG corresponden a los
miembros del rol fijo de servidor sysadmin y de los roles fijos de base de
datos db_owner y db_backupoperator .

Los problemas de propiedad y permisos del archivo físico del dispositivo de copia de seguridad
pueden interferir con una operación de copia de seguridad. SQL Server debe poder leer y escribir
en el dispositivo y la cuenta en la que se ejecuta el servicio SQL Server debe tener permisos de
escritura. En cambio, sp_addumpdevice, que agrega una entrada para un dispositivo de copia de
seguridad en las tablas del sistema, no comprueba los permisos de acceso a los archivos. Es
posible que estos problemas con el archivo físico del dispositivo de copia de seguridad no
aparezcan hasta que se tenga acceso al recurso físico, al intentar la copia de seguridad o la
restauración.
Usar SQL Server Management Studio

Al especificar una tarea de copia de seguridad mediante SQL Server Management Studio, puede
generar el script Transact-SQL BACKUP script by clicking the Script button and selecting a script
destination.
Realizar una copia de seguridad de una base de datos

1. Después de conectarse a la instancia apropiada de Microsoft Motor de base de datos de


SQL Server, en el Explorador de objetos, haga clic en el nombre del servidor para expandir
el árbol correspondiente.
2. Expanda Bases de datosy seleccione la base de datos de un usuario o expanda Bases de
datos del sistema y seleccione una base de datos del sistema.
3. Haga clic con el botón derecho en la base de datos, seleccione Tareasy haga clic en Copia
de seguridad. Aparece el cuadro de diálogo Copia de seguridad de base de datos .

Página General

4. En la lista desplegable Base de datos , compruebe el nombre de la base de datos. También


puede seleccionar otra base de datos en la lista.
5. El cuadro de texto Modelo de recuperación es solo para referencia. Puede realizar una
copia de seguridad de la base de datos en cualquier modelo de recuperación
(FULL, BULK_LOGGEDo SIMPLE).
6. En la lista desplegable Tipo de copia de seguridad , seleccione Completo.

Tenga en cuenta que después de crear una copia de seguridad completa de la base de
datos, puede crear una copia de seguridad diferencial; para obtener más información,
vea Crear una copia de seguridad diferencial de una base de datos (SQL Server).

7. También puede activar la casilla Copia de seguridad de solo copia para crear una copia
de seguridad de solo copia. Una copia de seguridad de solo copia es una copia de seguridad
deSQL Server independiente de la secuencia de copias de seguridad convencionales
de SQL Server. Para obtener más información, vea Copias de seguridad de solo copia (SQL
Server).Una copia de seguridad de solo copia no está disponible para el tipo de copia de
seguridad Diferencial.
8. En Componente de copia de seguridad, seleccione el botón de radio Base de datos .
9. En la sección Destino , use la lista desplegable Copia de seguridad en para seleccionar el
destino de la copia de seguridad. Haga clic en Agregar para agregar objetos o destinos de
copia de seguridad adicionales.

Para eliminar un destino de copia de seguridad, selecciónelo y haga clic en Quitar. Para ver
el contenido de un destino de copia de seguridad existente, selecciónelo y haga clic
en Contenido.

Página Opciones de medios

10. Para ver o seleccionar las opciones multimedia, haga clic en Opciones multimedia en el
panel Seleccionar una página .
11. Seleccione una opción de Sobrescribir medios ; para ello, haga clic en una de las opciones
siguientes:
Importante

La opción Sobrescribir medios está deshabilitada si seleccionó Dirección URL como


destino de la copia de seguridad en la página General. Para obtener más información,
vea Copia de seguridad de la base de datos (página Opciones multimedia).

 Hacer copia de seguridad en el conjunto de medios existente


Importante

Si piensa usar cifrado, no seleccione esta opción. Si selecciona esta opción, las opciones de
cifrado de la página Opciones de copia de seguridad estarán deshabilitadas. No se admite
el cifrado al anexar al conjunto de copia de seguridad existente.
Para esta opción, haga clic en Anexar al conjunto de copia de seguridad
existente o Sobrescribir todos los conjuntos de copia de seguridad existentes. Para
obtener más información, vea Conjuntos de medios, familias de medios y conjuntos de
copias de seguridad (SQL Server).

Opcionalmente, seleccione Comprobar nombre de conjunto de medios y fecha de


expiración del conjunto de copia de seguridad para que la operación de copia de
seguridad compruebe la fecha y la hora en que expiran el conjunto de medios y el conjunto
de copia de seguridad.

También puede escribir un nombre en el cuadro de texto Nombre del conjunto de


medios .Si no especifica ningún nombre, se creará un conjunto de medios con un nombre
en blanco.Si especifica un nombre para el conjunto, los medios (cinta o disco) se
comprueban para ver si el nombre real coincide con el nombre especificado aquí.

 Hacer copia de seguridad en un nuevo conjunto de medios y borrar todos los


conjuntos de copia de seguridad existentes

Para esta opción, especifique un nombre en el cuadro de texto Nuevo nombre del conjunto
de medios y, si lo desea, describa el conjunto de medios en el cuadro de texto Nueva
descripción del conjunto de medios .

1. Opcionalmente, en la sección Confiabilidad , seleccione:


 Comprobar copia de seguridad al finalizar.
 Realizar suma de comprobación antes de escribir en los medios. Para obtener
más información sobre las sumas de comprobación, vea Errores posibles de medios
durante copia de seguridad y restauración (SQL Server).
 Continuar después de un error.
2. La sección Registro de transacciones se encuentra inactiva salvo que vaya a realizar una
copia de seguridad de un registro de transacciones (según se haya especificado en la
sección Tipo de copia de seguridad de la página General ).
3. En la sección Unidad de cinta , la opción Descargar la cinta después de realizar la copia
de seguridad está activa si va a realizar una copia de seguridad en una unidad de cinta
(según se haya especificado en la sección Destino de la página General ). Al hacer clic en
esta opción se activa la opción Rebobinar la cinta antes de descargar .

Página Opciones de copia de seguridad

4. Para ver o seleccionar las opciones de copia de seguridad, haga clic en Opciones de copia
de seguridad en el panel Seleccionar una página .
5. En el cuadro de texto Nombre , acepte el nombre del conjunto de copia de seguridad
predeterminado o escriba otro nombre para el conjunto de copia de seguridad.
6. En el cuadro de texto Descripción , también puede escribir una descripción del conjunto de
copia de seguridad.
7. Especifique cuándo expirará el conjunto de copia de seguridad y se podrá sobrescribir sin
omitir explícitamente la comprobación de los datos de expiración:
 Para que el conjunto de copia de seguridad expire al cabo de un número de días
específico, haga clic en Después de (opción predeterminada) y escriba el número de
días tras la creación del conjunto en que este expirará. Este valor puede estar entre 0
y 99999 días; el valor 0 significa que el conjunto de copia de seguridad no expirará
nunca.
El valor predeterminado se establece en la opción Tiempo predeterminado de
retención de medios de copia de seguridad (días) del cuadro de
diálogo Propiedades del servidor (página Configuración de base de datos). Para
acceder a esta opción, en el Explorador de objetos, haga clic con el botón derecho en
el nombre del servidor y seleccione Propiedades; después, seleccione la
página Configuración de base de datos .

 Para que el conjunto de copia de seguridad expire en una determinada fecha, haga
clic en Ely escriba la fecha en la que expirará.

Para obtener más información sobre las fechas de expiración de la copia de


seguridad, vea BACKUP (Transact-SQL).

8. En la sección Compresión , use la lista desplegable Establecer la compresión de copia


de seguridad para seleccionar el nivel de compresión que desea. SQL Server 2008
Enterprise y las versiones posteriores admiten la compresión de copia de seguridad. De
forma predeterminada, el hecho de que se comprima una copia de seguridad depende del
valor de la opción de configuración del servidor backup-compression default . Pero,
independientemente del valor predeterminado actual de nivel de servidor, puede comprimir
una copia de seguridad si activa Comprimir copia de seguridade impedir la compresión si
activa No comprimir copia de seguridad.

Para más información sobre la configuración de la compresión de copia de seguridad,


consulte Ver o establecer la opción de configuración del servidor de compresión de copia de
seguridad predeterminada.

9. En la sección Cifrado , use la casilla Cifrar copia de seguridad para decidir si usar el
cifrado en la copia de seguridad. Use la lista desplegable Algoritmo para seleccionar un
algoritmo de cifrado. Use la lista desplegable Certificado o clave asimétrica para
seleccionar un certificado o una clase asimétrica existente. El cifrado se admite en SQL
Server 2014 o posterior. Para obtener más detalles sobre las opciones de cifrado, vea Copia
de seguridad de la base de datos (página Opciones de copia de seguridad).

Puede usar el Asistente para planes de mantenimiento para crear copias de seguridad de base de
datos.
Ejemplos
A. Crear copia de seguridad completa en disco en una ubicación predeterminada

En este ejemplo, se creará una copia de seguridad de la base de datos Sales en disco en la
ubicación de copia de seguridad predeterminada. Nunca se ha creado una copia de seguridad
de Sales .

1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos de SQL
Server y expándala.
2. Expanda Bases de datos, haga clic con el botón derecho en Sales, seleccione Tareasy,
luego, haga clic en Copia de seguridad...
3. Haga clic en Aceptar.
B. Crear copia de seguridad completa en disco en una ubicación no predeterminada

En este ejemplo, se creará una copia de seguridad de la base de datos Sales en disco
en E:\MSSQL\BAK. Se han creado copias de seguridad de

Sales anteriores.
1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos de SQL
Server y expándala.
2. Expanda Bases de datos, haga clic con el botón derecho en Sales, seleccione Tareasy,
luego, haga clic en Copia de seguridad...
3. En la página General , en la sección Destino , seleccione Disco en la lista
desplegable Copia de seguridad en: .
4. Haga clic en Quitar hasta que se quiten todos los archivos de copia de seguridad existentes.
5. Haga clic en Agregar y se abrirá el cuadro de diálogo Seleccionar destino de la copia de
seguridad .
6. Escriba E:\MSSQL\BAK\Sales_20160801.bak en el cuadro de texto nombre de archivo .
7. Haga clic en Aceptar.
8. Haga clic en Aceptar.
C. Crear una copia de seguridad cifrada

En este ejemplo, se creará una copia de seguridad de la base de datos Sales con cifrado en la
ubicación de copia de seguridad predeterminada. Ya se creó una clave maestra de base de
datos .Ya se creó un certificado con el nombre MyCertificate. Puede ver un ejemplo T-SQL de
cómo crear una clave maestra de base de datos y un certificado en Crear una copia de
seguridad cifrada.

1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos de SQL
Server y expándala.
2. Expanda Bases de datos, haga clic con el botón derecho en Sales, seleccione Tareasy,
luego, haga clic en Copia de seguridad...
3. En la página Opciones de medios , en la sección Sobrescribir medios , seleccione Hacer
copia de seguridad en un nuevo conjunto de medios y borrar todos los conjuntos de
copia de seguridad existentes.
4. En la página Opciones de copia de seguridad , en la sección Cifrado , active la
casilla Cifrar copia de seguridad .
5. En la lista desplegable Algoritmo , seleccione AES 256.
6. En la lista desplegable Certificado o clave asimétrica , seleccione

1. MyCertificate.
2. Haga clic en Aceptar.
D. Copia de seguridad en el servicio de Azure Blob Storage
Pasos comunes

Los tres ejemplos siguientes realizan una copia de seguridad completa de la base de
datos Salesen el servicio de almacenamiento de blobs de Microsoft Azure. El nombre de la cuenta
de almacenamiento es mystorageaccount. El contenedor se denomina myfirstcontainer. Por
motivos de brevedad, los cuatro primeros pasos se enumeran aquí una vez y todos los ejemplos se
iniciarán en el paso 5.

1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos de SQL
Server y expándala.
2. Expanda Bases de datos, haga clic con el botón derecho en Sales, seleccione Tareasy,
luego, haga clic en Copia de seguridad...
3. En la página General de la sección Destino , seleccione URL en la lista desplegable Copia
de seguridad en: .
4. Haga clic en Agregar y se abrirá el cuadro de diálogo Seleccionar destino de la copia de
seguridad .

D1. Ya existen una copia de seguridad distribuida en URL y una credencial de SQL
Server
Se ha creado una directiva de acceso almacenada con derechos de lectura, escritura y
lista. La credencial de SQL
Server, https://mystorageaccount.blob.core.windows.net/myfirstcontainer, se creó con una
firma de acceso compartido asociada a la directiva de acceso almacenada.
*

a. Seleccione https://mystorageaccount.blob.core.windows.net/myfirstcontainer en el cuadro


de texto Contenedor de almacenamiento de Azure .
b. En el cuadro de texto Archivo de copia de seguridad ,
escriba Sales_stripe1of2_20160601.bak.
c. Haga clic en Aceptar.
d. Repita los pasos 4 y 5.
e. En el cuadro de texto Archivo de copia de seguridad ,
escriba Sales_stripe2of2_20160601.bak.
f. Haga clic en Aceptar.
g. Haga clic en Aceptar.

D2. Existe una firma de acceso compartido pero no una credencial de SQL Server

h. Escriba https://mystorageaccount.blob.core.windows.net/myfirstcontainer en el cuadro de


texto Contenedor de almacenamiento de Azure .
i. Escriba la firma de acceso compartido en el cuadro de texto Directiva de acceso
compartido .
j. Haga clic en Aceptar.
k. Haga clic en Aceptar.

D3. No existe ninguna firma de acceso compartido

l. Haga clic en el botón Nuevo contenedor y se abrirá el cuadro de


diálogo Conectarse a una suscripción de Microsoft .
m. Complete el cuadro de diálogo Conectarse a una suscripción de Microsoft y
haga clic en Aceptar para volver al cuadro de diálogo Seleccionar destino de la copia
de seguridad .Vea Connect to a Microsoft Azure Subscription (Conectarse a una
suscripción de Microsoft Azure) para obtener más información.
n. Haga clic en Aceptar en el cuadro de diálogo Seleccionar destino de la copia de
seguridad .
o. Haga clic en Aceptar.
Usar Transact-SQL
Crear una copia de seguridad completa de base de datos

1. Ejecute la instrucción BACKUP DATABASE para crear la copia de seguridad de base de


datos completa, especificando:
 El nombre de la base de datos de la que se va a realizar una copia de seguridad.
 El dispositivo de copia de seguridad en el que se escribe la copia de seguridad de
base de datos completa.

La sintaxis básica de Transact-SQL para crear una copia de seguridad de base de


datos completa es:

BACKUP DATABASE database

TO backup_device [ ,...n ]

[ WITH with_options [ ,...o ] ] ;


Opción Descripción

database Es la base de datos cuya copia de seguridad se desea hacer.

backup_device[ ,...n ] Especifica una lista de 1 a 64 dispositivos de copia de seguridad que se


pueden utilizar en la operación de copia de seguridad. Puede especificar
un dispositivo físico de copia de seguridad o puede especificar un
dispositivo de copia de seguridad lógico correspondiente, si ya se
definió. Para especificar un dispositivo de copia de seguridad físico, use la
opción DISK o TAPE:

{ DISK | TAPE } =nombre_dispositivo_copia de seguridad_física

Para obtener más información, vea Dispositivos de copia de seguridad


(SQL Server).

WITH with_options [ ,...o ] De forma opcional, puede especificar una o varias opciones, o. Para
obtener información sobre algunas de las opciones de WITH básicas, vea
el paso 2.

2. Opcionalmente, especifique una o varias opciones de WITH. A continuación se describen


algunas de las opciones de WITH básicas. Para obtener información sobre todas las
opciones de WITH, vea BACKUP (Transact-SQL).
 Opciones de WITH básicas del conjunto de copia de seguridad:

{ COMPRESSION | NO_COMPRESSION }
En SQL Server 2008 Enterprise y versiones posteriores únicamente, especifica si
la compresión de copia de seguridad se realiza en esta copia de seguridad, lo que
invalida la configuración predeterminada del servidor.

ENCRYPTION (ALGORITHM, SERVER CERTIFICATE |ASYMMETRIC KEY)


En SQL Server 2014 o versiones posteriores únicamente, especifica el algoritmo de
cifrado que se va a utilizar y el certificado o la clave asimétrica que se va a usar para
proteger el cifrado.

DESCRIPTION = { 'text' | @text_variable }


Especifica el texto sin formato que describe el conjunto de copia de seguridad. La
cadena puede tener un máximo de 255 caracteres.

NAME = { nombre conjunto_copia_seguridad | @variable_nombre_conjunto_copia de


seguridad }
Especifica el nombre del conjunto de copia de seguridad. Los nombres pueden tener
un máximo de 128 caracteres. Si no se especifica NAME, está en blanco.

 Opciones de WITH básicas del conjunto de copia de seguridad:

De forma predeterminada, BACKUP DATABASE anexa la copia de seguridad a un


conjunto de medios existente, conservando los conjuntos de copia de seguridad
existentes. Para especificar esto explícitamente, utilice la opción NOINIT. Para
obtener información sobre la anexión a conjuntos de copia de seguridad existentes,
vea Conjuntos de medios, familias de medios y conjuntos de copias de seguridad
(SQL Server).

Opcionalmente, para dar formato a los medios de copia de seguridad, utilice la opción
FORMAT:

FORMAT [ , MEDIANAME= { media_name | @media_name_variable } ]


[ ,MEDIADESCRIPTION = { text | @text_variable } ]
Utilice la cláusula FORMAT cuando emplee los medios por primera vez o cuando
desee sobrescribir todos los datos existentes. De manera opcional, puede asignar a
los nuevos medios un nombre y una descripción.
Importante

Tenga mucho cuidado cuando utilice la cláusula FORMAT de la instrucción BACKUP,


ya que destruye cualquier copia de seguridad existente en el medio de copia de
seguridad.
Ejemplos (Transact-SQL)
A. Realizar la copia de seguridad en un dispositivo de disco

En el ejemplo siguiente se realiza una copia de seguridad completa de la base de


datosAdventureWorks2012 en el disco y se usa

FORMAT para crear un conjunto de medios nuevo.


SQLCopiar
USE AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
TO DISK = 'Z:\SQLServerBackups\AdventureWorks2012.Bak'
WITH FORMAT,
MEDIANAME = 'Z_SQLServerBackups',
NAME = 'Full Backup of AdventureWorks2012';
GO
B. Realizar la copia de seguridad en un dispositivo de cinta

En este ejemplo se realiza una copia de seguridad en cinta de la base de


datosAdventureWorks2012 completa y se anexa a las copias de seguridad anteriores.
SQLCopiar
USE AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
TO TAPE = '\\.\Tape0'
WITH NOINIT,
NAME = 'Full Backup of AdventureWorks2012';
GO
C. Realizar la copia de seguridad en un dispositivo de cinta lógico

En este ejemplo, se crea un dispositivo de copia de seguridad lógico para una unidad de cinta. A
continuación, se realiza una copia de seguridad completa de la base de
datosAdventureWorks2012 en dicho dispositivo.
SQLCopiar
-- Create a logical backup device,
-- AdventureWorks2012_Bak_Tape, for tape device \\.\tape0.
USE master;
GO
EXEC sp_addumpdevice 'tape', 'AdventureWorks2012_Bak_Tape', '\\.\tape0'; USE
AdventureWorks2012;
GO
BACKUP DATABASE AdventureWorks2012
TO AdventureWorks2012_Bak_Tape
WITH FORMAT,
MEDIANAME = 'AdventureWorks2012_Bak_Tape',
MEDIADESCRIPTION = '\\.\tape0',
NAME = 'Full Backup of AdventureWorks2012';
GO
Usar PowerShell

Use el cmdlet Backup-SqlDatabase . Para indicar explícitamente que esta es una copia de
seguridad completa de la base de datos, especifique el parámetro -BackupAction con su valor
predeterminado, Database. Este parámetro es opcional para las copias de seguridad de base de
datos completas.
Ejemplos
A. Copia de seguridad local completa

En el ejemplo siguiente se crea una copia de seguridad completa de la base de datos MyDB en la
ubicación de copia de seguridad predeterminada de la instancia de
servidor Computer\Instance.Opcionalmente, en este ejemplo se especifica -BackupAction
Database.
PowerShellCopiar
Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction
Database
B. Copia de seguridad completa en Microsoft Azure

En el ejemplo siguiente se crea una copia de seguridad completa de la base de datos Sales de la
instancia de MyServer en el servicio de almacenamiento de blobs de Microsoft Azure. Se ha creado
una directiva de acceso almacenada con derechos de lectura, escritura y lista. La credencial de
SQL Server, https://mystorageaccount.blob.core.windows.net/myfirstcontainer, se creó con una
firma de acceso compartido asociada a la directiva de acceso almacenada. El comando de
PowerShell usa el parámetro BackupFile para especificar la ubicación (dirección URL) y el nombre
del archivo de copia de seguridad.
PowerShellCopiar
import-module sqlps;
$container = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer';
$FileName = 'Sales.bak';
$database = 'Sales';
$BackupFile = $container + '/' + $FileName ;

Backup-SqlDatabase -ServerInstance "MyServer" -Database $database -BackupFile $BackupFile;

Para configurar y usar el proveedor de SQL Server PowerShell

 Proveedor de SQL Server PowerShell Provider


Alta disponibilidad con PostgreSQL

Cuando hablamos de Alta Disponibilidad nos referimos a la creación de un protocolo para nuestro
sistema que pueda proporcionar una protección completa de datos y su disponibilidad para poder
asegurar un cierto grado de continuidad operacional durante un periodo de medición dado (los
famosos nueves anuales, por ejemplo).

¿Qué herramientas tenemos en PostgreSQL para la Alta Disponibilidad?

Disponemos de multitud de herramientas para poder implementar este protocolo y escalar


PostgreSQL en varios servidores.

Entre otras opciones debemos de decidir si queremos:

 Almacenamiento compartido
 Redundancia de datos (Replicación)
 Streaming Replication
 Maestro – Esclavo
 Síncrono
 Asíncrono
 Multi – Maestro

En próximas entradas iremos detallando las diferentes opciones que tenemos para cada una de
ellas. Además disponemos de un curso donde se indaga más en algunas de estas opciones y se
realiza la configuración necesaria para dichos métodos.

Herramienta para el diseño de BD de PostgreSQL, pgModeler

Bienvenidos a una nueva entrada en nuestro portal formativo en PostgreSQL. Esta semana
estaremos hablando de una de las herramientas de modelado más importantes de PostgreSQL.

Cuando empezamos un nuevo proyecto, debemos de crear las estructuras que contienen los
datos dentro de una base de datos. Para ello deberíamos de realizar el diseño en papel o utilizar
una herramienta para el diseño de bases de datos.

Existen varias herramientas para el diseño de las estructuras de datos, con las que nos resultará
más fácil crear los modelos de tablas con sus columnas. Incluyendo las restricciones y relaciones
entre las demás tablas.

La mayoría de estas herramientas para el diseño de bases de datos son de pago.


Lamentablemente, las herramientas Open Source están desactualizadas, por lo que no soportan
las últimas versiones de PostgreSQL.
pgModeler es una herramienta muy útil que podemos utilizar para diseñar las estructuras de datos
de nuestras bases de datos en PostgreSQL. Hacer uso de las últimas características
implementadas en el servidor PostgreSQL 10. Y Administrar nuestras bases de datos desde la
propia herramienta.

La herramienta pgModeler

Este programa es Open Source y se utiliza para el modelado de las bases de datos. Implementa
una serie de características y utilidades que vamos a ver a continuación.

 Podemos crear y editar de forma sencilla y rápida modelos de bases de datos con una
interfaz simple. También incluye unos formularios con una serie de campos que se deben de
completar para generar el código SQL de forma correcta.
 Tenemos a nuestra disposición el código fuente en un repositorio publico para poder
modificar y redistribuir a nuestro antojo. Además, es multiplataforma, por lo que podemos
compilar el código fuente en varios Sistemas Operativos, como Windows, Linux y macOS.
 Cuando hemos terminado de diseñar nuestras bases de datos con sus tablas, columnas y
tipos de datos, y hemos especificado las relaciones entre tablas. Nos permite exportar las
estructuras de datos a los servidores de PostgreSQL.
 Actualmente soporta desde la versión 9.0 de PostgreSQL. En la reciente versión estable
0.9.1, incluyen el soporte hasta la versión 10 de PostgreSQL. Es por ello que esta
herramienta es la más utilizada para el modelado de datos para Postgres.
 pgModeler también proporciona un módulo de administración de bases de
datos simple pero útil. Con el que es posible ejecutar comandos SQL, explorar los objetos y
manejar datos.
 Otra de las funciones adicionales de pgModeler, es que podemos generar scripts SQL que
contienen los comandos necesarios para mantener sincronizada la base de datos con
respecto al modelo.

Ahora que conocéis las características y utilidades de esta herramienta podéis plateros la
utilización de la misma en los nuevos proyectos que tengáis en plan.

 [PostgreSQL-ES] Replicacion y alta disponibilidad


Hola a todos.
Estamos tratando de migrar una base de datos Ideafix a postgres y tenemos
que justificar el proyecto frente a la compra de Oracle.
Les comento como operan hoy:
La planta tiene dos servers principales IBM, uno primario y otro "muleto" al
cual se le copian las modificaciones con un rsync.
Los aplicativos y "base de datos" estan replicados en ambos servers y las
lineas de produccion ejecutan remotamente al primario las aplicaciones. Como
esta planta necesita una alta disponibilidad de datos porque no puede dejar
parada las lineas de corte, encajado, etc. necesitamos implementar algo que
haga automaticamente los que hacemos manualmente hoy. (De por si, si algo le
ocurre al primario los aplicativos se tienen que reiniciar pero el tema es
que lo haga con el menor impacto posible).
Por ahora, y solo por ahora los aplicativos se van a dejar en el mismo
primario (se replicaran al muleto tambien) y no en un server aparte.

Por lo que vi en post anterior, hay un esquema (habian varios pero este me
parecio el que mas se adecuaba) que podria reemplazar el esquema actual,
http://www.linuxjournal.com/article/7834 ,pero del cual no tengo noticias
si se implemento exitosamente y que performance tiene.

Este Lunes fuimos con la gente de sistemas del frigorifico a Oracle


argentina para que le ofrezcan su producto (yo fui de colado nomas). Y vi
que les ofrecian RAC junto con DataGuard pero cambiando el esquema de
trabajo actual a uno con muchos mas equipos(para el RAC) y finalmente con un
punto de fallo el san, aunque ellos digan que es MUY improbable que se caiga
el san le ofrecieron dataguard que le les hace el switchover/switchfail muy
simple. Todo esto como se imaginaran les va a costar demasiada mosca, por el
tema de los cores del rac y de los san ademas de los equipos y el ancho de
banda que les consume el RAC, etc.
Entonces ahi es cuando nuestro proyecto empieza a tomar valor ya que en este
esquema no tiene una alta carga de consultas lo cual (para mi) no es
indispensable el cluster y su excesivo consumo de la red. Y en lo que
contingencias se trate existe como se menciono heartbeat con slony que
teoricamente anda perfecto.
Aparte de los casos de exito, benchmarks y demas, les presentamos un esquema
heartbeat+slony con un caso de exito tendriamos altas probabilidades de que
nos aprueben el proyecto. Por lo pronto estoy tratando de probarlo en los
laboratorios pero por escaso tiempo todavia no terminamos de hacer las
pruebas. y para ganar tiempo antes que se tome alguna decision les pedia a
ustedes si conocen algun caso de exito o benchmarks de este esquema.
Disculpen por lo extenso del mail y disculpas si me mande alguna (ya que
Alvaro es demasiado puntilloso con los newbies)

Alta Disponibilidad con PgPool-II en PostgreSQL


POR LENINMHS · PUBLICADA MAYO 9, 2012 · ACTUALIZADO NOVIEMBRE 27, 2018

Aunque el común denominador suele referirse a estas soluciones de base de datos como cluster o
clusterización por el hecho de que normalmente implica varios servidores, varias instancias o
instalaciones de bases de datos distribuidas tal vez hasta geográficamente, lo correcto es referirse
a “Alta Disponibilidad” del ingles “High Availability“ (en muchos textos se abrevia HA) por que
nos indica que la prioridad es “Mantener la Continuidad Operativa” de nuestro servicio, de nuestras
operaciones, de la infraestructura tecnológica que soporta un negocio que simplemente no se puede
dar el lujo de detenerse, o en caso de falla tiene que recuperarse y restaurarse bajo unas reglas
definidas previamente, es por ello que hablamos de Alta Disponibilidad y no de cluster. Pgpool-II es
una de las mejores y mas completa herramienta para brindar soluciones de alta disponibilidad en el
manejador de bases de datos libres PostgreSQL. PgPool-II es software libre que trabaja
como intermediario (middleware) entre clientes que se conecten contra postgres (psql, pgadmin,
DBA’s, software, aplicativos, etc..) y otras instancias de bases de datos (nodos) para distribuir el
trabajo o la carga entre los distintos nodos con los que cuente nuestro diseño o implementación de
alta disponibilidad. Los clientes ven y se conectan a PgPool a través de una cadena de conexión
común y silvestre como si fuera una base de datos mas, y a su vez cada uno de los nodos ven a
PgPool como si fuera un cliente mas, de ahí que PgPool podría ser considerado desde este punto
de vista como cliente y servidor al mismo tiempo.

Un diagrama siempre ayuda a entender

Alta Disponibilidad PgPool

PgPool sobresale sobre otras herramientas de software libre que brindan o buscan brindar alta
disponibilidad para PostgreSQL por tener soporte para las siguientes características:
 Agrupación de Conexiones ( Connection Pooling )
PgPool-II guarda las conexiones establecidas con los servidores PostgreSQL (nodos), y las vuelve
a usar cada vez que una nueva conexión con las mismas propiedades (usuario, base de datos,
puerto, versión del protocolo) es necesitada. Esto reduce la sobrecarga de la conexión y mejora
considerablemente el rendimiento general de los sistemas.

 Replicación ( Replication )
PgPool-II puede gestionar múltiples servidores PostgreSQL. Habilitando la funcionalidad de
replicación permite crear una copia de seguridad en tiempo real de dos (2) o mas servidores
Postgres, de modo que en caso de fallo de alguno de esos nodos el servicio puede continuar sin
interrupción.

 Balanceo de Carga ( Load Balance )


Si una base de datos se replica (porque se ejecuta en modo replicación o bien en modo maestro /
esclavo), la ejecución de una consulta tipo SELECT en cualquier de los servidores devolverá siempre
el mismo resultado. pgPool-II toma ventaja de la función de replicación con el fin de reducir la carga
sobre cada servidor PostgreSQL. Lo hace mediante la distribución de las consultas SELECT entre
los servidores disponibles, mejorando el rendimiento global del sistema. En un escenario ideal, el
rendimiento de lectura podría mejorar proporcionalmente a la cantidad de servidores PostgreSQL.
El rendimiento mejora en proporción al número de servidores PostgreSQL. El balance de cargas
funciona mejor en escenarios donde hay una gran cantidad de usuarios que ejecutan múltiples
consultas de sólo lectura (read-only), al mismo tiempo.

 Limite de Conexiones excedidas ( Limiting Exceeding Connections )


Existe un limite del máximo numero de conexiones simultaneas o concurrentes que PostgreSQL
permite, y nuevas conexiones son rechazadas cuando este limite es alcanzado. Aumentar este
numero máximo de conexiones causa un impacto negativo penalizando el rendimiento general del
sistema. PgPool-II también tiene un numero máximo de conexiones, pero las conexiones adicionales
se pondrán en cola de espera en vez de retornar error inmediatamente.

 Consultas en Paralelo ( Parallel Query )


Utilizando la funciónalidad de consulta en paralelo, los datos se pueden dividir entre los múltiples
servidores, de modo que una consulta se puede ejecutar en todos los servidores al mismo tiempo
para reducir el tiempo de ejecución global. Las Consultas en paralelo funcionan mejor cuando se
buscan datos de gran escala. Este breve articulo se escribe en el marco del 3er Encuentro de Bases
de Datos Libres que se realizo el 04/05/2012 realizada por el CNTI en CANTV, las laminas que use
son las siguientes:

1. Alta Disponibilidad (High Availability) <=>Continuidad operativa del servicio. 24 - 7 Por lo


general, consiste en ● Servidor maestro (s) ● Servidor esclavo (s) ● Software para detectar
la falta de un maestro ● Software para promover un esclavo a maestro ● Software o
hardware para garantizar la coherencia de datos ● entre el maestro (s) y el esclavo (s) ●
Software para restaurar el servicio luego de caída o falla ¿Que NO es alta disponibilidad en
Bases de Datos?● Una forma de aumentar el rendimiento● Una manera de simplificar tu
trabajo, la red, el mantenimiento● Fácil de implementar
2. 4. pgpool-IIEs una capa intermedia de software (middleware), que nos provee de
unainterfaz de conexión con uno o mas nodos de PostgreSQL. Nuestros clientesse
conectaran en realidad al PgPool y este a su vez repartirá el trabajo a losNodos según se
haya configurado. Es una de las soluciones mas completade alta disponibilidad en software
libre. Nos Proporciona : ● Replicación ● Balanceo de Cargas (Load Balance) ● Tolerancia
a fallos (FailOver) ● Conexiones Agrupadas (Pool Connection) ● Consultas Distribuidas
(Parallel Query) ● Limite de Conexiones Excedidas
3. 5. Una imagen vale más que mil palabras Q Q Q Q R E R R E R Clientes R E R R E R y y
y y IP Puerto Usuario PgPool-II Contraseña Se comporta como cliente y servidor Q Q Q R
R R E E E R R R y y y Agregar o eliminar nodos en caliente IP IP IP Puerto Puerto Puerto
Usuario Usuario UsuarioContraseña Contraseña Contraseña nodo1 nodo2 nodo3 Pool de
servidores PostgreSQL
4. 6. Puntos a favor de PgPool● Es Software Libre. Licencia BSD● Funciona sobre
Linux,FreeBSD,Solaris y xUnix● PostgreSQL >= 6.4 , más óptimo en >= 9.0● Comunidad y
Desarrollo muy activo Versiones: 3.1.3 (23/04/12) – 3.1.2 (31/01/12) – 3.1.1 (6/12/11)●
Colabora con Slony y Streaming Replication Otras soluciones de alta disponibilidad:
Bucardo Slony RubyRep PostgreSQL 9 Londiste PgCluster Mammoth
5. 7. Instalar PgPool-IICamino largo, doloroso y recomendadopara entornos en producción
Camino corto, varias Descargar versiones atras, recomendado Compilar Descomprimir
solo para pruebas cd pgpool3.1 aptitude install pgpool2 ./configure –prefix=/opt/pgpool3/
Cargar reglas y catálogos make make install Cargar reglas y catálogos Configurar PgPool-
II listen_addresses = *Tres (3) archivos port = 9999de configuración: replication_mode =
true load_balance_mode = true parallel_mode = true ●pgpool.conf master_slave_mode =
on backend_hostname0 = 192.168.0.10 ●pcp.conf backend_port0 = 5432 ●pool_hba.conf
backend_weight0 = 1 backend_hostname1 = 192.168.0.20 backend_port1 = 5433
backend_weight1 = 1
6. 8. PgPoolAdminHerramienta de Administración de PgPool de interfaz web,similar a
PhpPgAdmin, escrita en PHP que nos permiteadministrar, configurar, monitoriar y aplicar
algunasacciones sobre nuestra instalación de PgPool ó nuestrosnodos.
7. 9. Twitter: @tu_bd_libreBlog: le

También podría gustarte