Backup SQL Server 2014 con archivos .bat

Hace unos días, me preguntó un amigo si existía alguna forma de poder crear Backups de nuestras bases de datos de SQL Server 2014 de manera automática y luego de creado el backup obtener un archivo de formato plano con el resultado de la operación y que todo esto fuera realizado por medio de un archivo de extensión .bat.

Para poder lograr esto solo debemos seguir algunos sencillos pasos:

  • Abrir un bloc de notas: en este bloc de notas escribiremos el código necesario para convertirlo luego en un archivo de extensión .bat
  • Utilizar el SQLCMD para comunicarnos con el servidor de bases de datos.
  • Conocer el nombre del servidor y/o su dirección IP. En este ejemplo utilizaremos la dirección IP de nuestro SQL Server en lugar del nombre de instancia.

Código de ejemplo:

1> SQLCMD -S 192.168.2.120,1433 -U SQLBackup -P QWEasd123* 
2> -Q "BACKUP DATABASE AdventureWorks2012 
3> TO DISK = '\\192.168.2.120\respaldos\esta.bak' WITH INIT, 
4> NAME = N'Backup Automatico de database', STATS = 10" 
5> -o E:\esta\11.txt

Explicación del código de ejemplo. Línea 1, SQLCMD:

Como comentamos un poco más arriba debemos utilizar el SQLCMD para conectarnos a nuestro servidor.

-S 192.168.2.120, 1433 : corresponde al nombre de nuestra instancia y su respectivo puerto de conexión. Podemos utilizar el nombre del servidor y la instancia directamente, pero es mejor utilizar la dirección IP de cada instancia para evitar confusiones y/o choques entre los servidores, el puerto utilizado por defecto es el 1433 sin embargo este puede cambiar según las necesidad y configuración que haya realizado nuestro DBA.

-U SQLBackup: Corresponde al usuario que tiene los privilegios de poder realizar copias de seguridad, creación y escritura dentro de nuestro SQL Server, el usuario puede ser «sa» o cualquier otro que hayamos creado con los privilegios necesarios, en este ejemplo nuestro usuario es SQLBackup.

-P QWEasd123*: Pertenece a la contraseña que utiliza nuestra usuario SQLBackup para conectarse al servidor.

Líneas 2 hasta la 4 pertenecen a una sola sentencia que ocupa una sola línea, la cual trataremos de explicar lo mejor posible:

-Q «BACKUP DATABASE: Estamos indicando una consulta directa sobre el servidor y estamos estableciendo que debe hacer un Backup de la base de datos AdventureWorks, este nombre lo cambiaremos por el que corresponda a la base de datos que vamos a respaldar.

TO DISK = 192…. Indicamos la dirección física en donde queremos alojar el backup y establecemos el nombre que tendrá el respaldo al finalizar, en este caso el nombre de nuestro respaldo será «esta.bak«.

WITH INIT: especifica que se deben sobrescribir todos los conjuntos de copia de seguridad, pero conservando el encabezado de los medios.

NAME: especificamos un nombre para identificar el backup que estamos realizando, en este ejemplo lo hemos identificado como «Backup Automatico de database».

STATS = 10: para mostrarnos el porcentaje completado desde el umbral para informarnos del próximo intervalo, es decir cada 10 porciento cubierto nos indicará el siguiente.

Línea 5, -o E:\esta\11.txt: indicamos el directorio y el nombre del archivo mas su extension en la cual almacenaremos la información de los resultados de la operación de respaldo.

Ahora para finalizar solo necesitaremos guardar nuestro archivo del bloc de notas con la extensión .bat, para ello vamos al menú archivo, guardar como, escribir el nombre que le daremos a nuestro archivo y no olvidar colocarle la extensión .bat, en tipo seleccionar todos los archivos y por último damos clic en el botón guardar.

backupbat-01

Ahora para ejecutar nuestro archivo .bat para crear nuestros backups solo debemos seleccionarlo con el botón derecho de nuestro mouse y ejecutarlo como administrador.

Con nuestro archivo se ejecutará con los privilegios de administrador y creará nuestro backup «esta.bak» en el directorio establecido.

Saludos!

Roberto Pozo

 

2 respuestas to “Backup SQL Server 2014 con archivos .bat”

  1. pablomat Says:

    Hola, una consulta, como se puede hacer un backup de una base de datos alojada en una computadora y guardarla en otra computadora que se encuentra conectada a la misma red?

    Me gusta

Deja un comentario