Uno de los puntos más importantes dentro de las bases de datos es su mantenimiento y administración. Muchas veces podemos encontrarnos con problemas con el log de transacciones, copias de seguridad incompletas o una mala estrategia de mantenimiento, lo que ocasiona problemas de rendimiento o pérdida irreparable de información. En esta publicación del blog nos centraremos en bases de datos SQL Server, aunque también podría aplicarse la misma filosofía en otros modelos.

A la hora de idear un plan de mantenimiento para una base de datos, tendremos que tener en cuenta varios factores:

  • Modelo de recuperación.
  • Tamaño de la base de datos.
  • Frecuencia de realización de copias de seguridad.


Conceptos iniciales:

  • El log de transacciones es un registro de la base de datos que guarda las instrucciones de todos los cambios realizados. Cualquier actualización, inserción y/o borrado de datos quedará registrado. Gracias a este log se podrá recuperar la información en un momento concreto, deshacer un cambio o reproducirlo.
  • Una copia de seguridad diferencial se trata de un backup parcial que guarda la información a partir de un backup completo. Es decir, sólo guarda la información modificada desde la última copia completa. De esta forma podremos realizar copias de seguridad de forma más regular (ya que ocupan menos espacio) y seremos capaces de volver a un punto concreto utilizando la copia diferencial y completa.

Tipos de modelos de recuperación

Los modelos de recuperación establecen la complejidad de la administración de nuestra base de datos. Dependiendo del tamaño o de la estrategia de copias de seguridad que queramos tener, debemos elegir el modelo apropiado para poder llevar a cabo todo el mantenimiento.

En SQL Server tenemos tres tipos de modelos de recuperación:

  • Simple: Se trata del modelo de recuperación más sencillo de todos, orientado a entornos de pruebas o con muy pocas transacciones. Sólo permite copias de seguridad completas o diferenciales. El log de transacciones deberá ser pequeño y manejable, pero no se podrá realizar un backup del log. Dicho log se truncará cada vez que se realice una copia de la base de datos, ya sea completa o parcialmente.
    Este modelo simplifica la parte administrativa, aunque tiene más riesgos de pérdida de información si la base de datos es muy grande.
  • Completo: El modelo de recuperación más recomendado para cualquier base de datos con un gran número de transacción. Se podrán realizar copias de seguridad completas, diferenciales y del log de transacciones. Se necesitará tener un buen mantenimiento con este tipo de base de datos, ya que una mala estrategia puede ocasionar que el log de transacciones se llene muy rápido y su tamaño sea demasiado grande, o que los backups tarden demasiado en realizarse por programarlos cada mucho tiempo. Aunque tiene más sobrecarga administrativa, simplifica los riesgos y la pérdida de información.
  • Registro masivo: Similar al modelo de recuperación completa pero no guarda las transacciones masivas (inserts masivos, creación de índices…). Consigue un mejor rendimiento y ocupa menos espacio, pero tiene un gran riesgo al no contemplar los cambios masivos en la base de datos.

Mantenimiento de backups

Una vez escogido nuestro modelo de base de datos, debemos diseñar una estrategia de mantenimiento. Podremos realizar backups de forma manual o programando un horario para que se realicen de forma automática. Para esta programación automática tendremos que tener en cuenta varios factores para decidir la mejor estrategia:

  • Escoger un momento del día en el que se prevea poca actividad para las copias de seguridad completas.
  • En el modelo de recuperación simple, se recomienda realizar copias diferenciales entre las copias de seguridad completas para minimizar el riesgo lo máximo posible.
  • En el modelo de recuperación completo, se debe realizar copias del log de transacciones de forma frecuente, con esto conseguiremos disminuir el tiempo que se tarda en realizar copias de seguridad completas, y de nuevo, minimizar el riesgo de pérdida de información.
  • Realizar un estudio del tamaño que se necesitará para guardar las copias de seguridad. Para saber esto, podemos utilizar la función sp_spaceused para saber el espacio real de la información de nuestra base de datos. La copia de seguridad sólo guarda la información real, por lo que lo normal es que ocupe menos que el tamaño de la base de datos, que también contiene espacio en blanco.

Un ejemplo de mantenimiento de una base de datos de tamaño medio/grande, con el modo de recuperación completo, podría ser:

  • Una copia de seguridad completa de forma nocturna.
  • Una copia de seguridad diferencial a medio día.
  • Copias del log de transacciones cada cuatro horas.

Crear copia de seguridad manualmente

1. Abrir SQL Server Managment Studio.

2. Botón derecho sobre el nombre de nuestra base de datos, Tareas -> Copia de seguridad.

3. En la pestaña General elegiremos el tipo de copia de seguridad (completo o diferencial), y el directorio en el que se va a ubicar la copia.

4. En la pestaña Opciones, podremos configurar cómo queremos mantener nuestras copias. Podemos seleccionar que la copia que realicemos sobrescriba la copia existente, o que se mantengan por separado.


Además, marcaremos el check de “Comprobar copia de seguridad al finalizar” para comprobar su integridad una vez finalice.

5. Al pulsar en Aceptar, se realizará la copia de nuestra base de datos.


Crear plan de mantenimiento

Con el asistente de planes de mantenimiento en SQL Server podremos crear distintos planes para crear y administrar nuestras copias de seguridad de forma automática.

1. Abrir SQL Server Managment Studio.

2. Expandir servidor en el que queremos crear el plan de mantenimiento -> expandir carpeta Administración -> botón derecho en la carpeta “Planes de mantenimiento” -> Asistente para planes de mantenimiento.

3. En el asistente, podremos indicar el la información inicial de nuestro plan (nombre y descripción). Podremos especificar distintas programaciones para cada tarea, o una sola programación para todo el plan. Si elegimos la segunda opción, podremos pulsar en “Cambiar…” y establecer toda la información referente a la programación del plan.

4. El pulsar en “Cambiar…” podremos especificar el nombre de la nueva programación, el tipo, y la información referente a la frecuencia de ejecución. Por ejemplo, si queremos un mantenimiento de copias de seguridad completas de forma diaria, especificaremos en el campo “Sucede:” el valor Diario. Además, se podrá indicar la hora y la fecha de inicio.

5. Una vez configurada la periodicidad del plan, elegiremos la acción a realizar. En este caso, como ejemplo seleccionaremos “Copia de seguridad (completa)”, aunque como vemos tenemos todas las opciones disponibles.


6. Una vez seleccionadas las acciones a realizar, elegiremos el orden de ejecución (en caso de elegir más de una acción):

7. Al pulsar en siguiente, nos aparecerá una ventana de configuración similar a la que podemos ver cuando hacemos una copia manual. Podremos elegir la base de datos sobre la que se realizará la copia de seguridad, y el destino en el que se ubicará.

8. El siguiente paso es opcional, ya que nos permite crear un informe del plan que estamos creando.



9. Por último, tendremos un resumen en el que podremos ver las acciones programadas y la base de datos destino, con toda la información sobre el plan de mantenimiento.


Este mismo ejemplo se podría aplicar para crear planes de copias diferenciales, del log de transacciones o de cualquier otra acción de mantenimiento de base de datos (limpieza de espacio vacío, regeneración de índices).

Con todo lo visto en este artículo podremos realizar una estrategia de administración, eligiendo un modelo de recuperación y un plan de copias de seguridad eficaz que mantendrán la base de datos segura y acorde a nuestras necesidades.

Daniel Concellón

Daniel Concellón

PeopleSoft Technical Consultant at BNB
Daniel is a Computer Engineer working as PeopleSoft Technical Consultant in Madrid since February 2018. He has enthusiasm for day-to-day learning and a great spirit of overcoming.
Daniel Concellón

Latest posts by Daniel Concellón (see all)