lunes, 14 de agosto de 2017

Genera respaldos automáticos en SQL SERVER EXPRESS

Buenas noches queridos lectores, el dia de ho veremos como generar respaldos automáticos en SQL SERVER, anteriormente habíamos visto ya un artículo similar, utilizando el Agente SQL, sin embargo esa utilidad esta disponible solo en versiones de pago, en el SQL EXPRESS no se puede iniciar el agente y por lo tanto, no podemos generar las tareas, pero siempre podemos recurrir al maravilloso cmd para generar script, y lo haremos usando a heramienta sqlcmd, pero basta ya de charlas, vamos a la práctica que es lo que nos interesa.



Para generar los respaldos, vamos a ir a la linea de comandos, puede ser del mismo CMD o del Power Shell, y ejecutaremos el comando sqlcmd, como se muestra en la siguiente imagen:

Uso del comando sqlcmd

 Vemos que se muestra el error, entro otros Microsoft ODBC Driver 13 for SQL SERVER: Named Pipes Provider: Could not open a connection to SQL Server

 Ese error, mas allá que me falten algunos parámetros al comando se puede solucionar de varias maneras, la primera es configurar el Firewall de Windows, en mi caso, yo lo desactivé para más fácil, pero si es recomendable configurarlo.

Yo desactivé el Firewall de Windows
Otra de las cosas que hay que revisar es que en la configuración del SQL SERVER esté activado el protocolo Named Pipes, como se muestra en la siguiente imagen.

Verificar que el protocolo Named Pipes, esté activado
Una vez que ya verificamos o corregimos eso, iniciamos otra vez el sqlcmd, pero utilizaremos los parametros -S para poder loguearnos, tal como se muestra en la siguiente imagen:

Esta es la consola del cmdsql
 Si nos aparece el 1> quiere decir que todo ha salido correctamente, este es como un Manager Studio, solo que pare ejecutar las instrucciones tendremos que porner forzosamente el comando GO, veamos un ejemplo:

Para poder ejecutar un comando, hay que teclear el comando GO
Pues bien, ya sabiendo que existe esta herramienta, y que, se puede utilizar para realizar cualquier instrucción de SQL, vamos a crear las instrucciones que necesitaremos y las vamos a guardar en un archivo .sql, el archivo quedaría mas o menos así.

respaldar.sql



DECLARE @fecha VARCHAR(50)
declare @archivo varchar(100)
select @fecha = CONVERT(nvarchar(10), GETDATE(),105)
set @archivo = 'C:\p\test' + @fecha + '.bak'
BACKUP DATABASE pronosticos2 TO DISK =@archivo;

Como ven, lo que hace este script es obtener la fecha actual del sistema y convertirla a texto, después guardamos en otra variable la ruta y el nombre del archivo con la fecha actual y la extensión .bak, y por último respaldamos la base de datos indicandole la ruta y el nombre que vamos a querer como nombre. 

Ya tenemos el script, ahora lo que vamos a hacer es crear el archivo .bat para ejecutar ese script.

respaldar.cmd

sqlcmd -S DESKTOP-UK3T0EF\SQLEXPRESS -i c:\p\respaldar.sql 

Este archivo .cmd lo que hace es ejecutar sqlcmd en el servidor y la instancia indicada y con el parámetro -i le indicamos que ejecutará el script guardado en el archivo respaldar.sql. La carpeta quedaría más o menos así:


Ahora lo que seguirá es ejecutar el archivo respaldo.cmd para que ejecute el script de SQL que crea los respaldos.


Una vez que termine de ejecutarse el script veremos como aparece el respaldo realizado en la carpeta que les mostré anteriormente.


Como ven aparece ahí el respaldo con la fecha en la que se realizó.

Ahora lo que falta es crear una tarea de Windows para programar la frecuencia con la cuál se ejecutará ese script. Para eso, abriremos la interface de las tareas automáticas de Windows, llamado Programador de Tareas y llenamos el nombre de la tarea, así como su descripción, tal como se muestra en la imagen.

Programador de tareas de Windows

En la pestaña Acciones, indicaremos cuál es el programa que se va a ejecutar con la tarea, en este caso sería respaldar.cmd, como se muestra en la siguiente imagen.


Ahora, vamos a configurar el horario, o las condiciones para ejecutar esa tarea, para eso darémos clic en la pestaña Desencadenadores, por ejemplo, yo quisiera que la tarea se ejecutara cada lunes, entonces, lo configuraré semanalmente, como se muestra en la siguiente imagen:


Una vez terminada la configuración, ya tenemos nuestra tarea creada, y ahora sí pueden probarla para que vean que funciona.

Espero este post haya sido de su agrado y utilidad, espero compartan, comenten, den +1 o clic a algún anuncio que les interese; cualquier cosa o duda que tengan pueden pregutar, estoy a la orden.

Saludos

Banderas de Visitantes

Flag Counter