MSSQL - Compresion y guardado
Después de bajar nuestras bases de datos a directorio, vamos a requerir comprimirlas y guardarlas en directorio. Para eso vamos a utilizar una tecnica de batch y posterior ejecución de algunos parámetros de winrar.
Antes que nada, para descargar el programa rar al que le pasaremos parámetros, click <aquí> (es un .exe)
Vamos a pensar que tenemos los archivos de ejecución de las sentencias, en la unidad H: donde apuntábamos las bases de datos.
Teniendo como referencia la entrega anterior, el script sería el siguiente:
h: cd\ cd BackUp del *.bak osql -S TUSERVER\SQLEXPRESS -U sa -PSuperSa2017 -i "h:\Backup\Backup.sql" @ECHO off set v_day= set v_month= set v_year= SETLOCAL ENABLEEXTENSIONS if "%date%A" LSS "A" (set toks=1-3) else (set toks=2-4) ::DEBUG echo toks=%toks% for /f "tokens=2-4 delims=(-)" %%a in ('echo:^|date') do ( ::DEBUG echo first token=%%a if "%%a" GEQ "A" ( for /f "tokens=%toks% delims=.-/ " %%i in ('date/t') do ( set '%%a'=%%i set '%%b'=%%j set 'yy'=%%k ) ) ) if %'yy'% LSS 100 set 'yy'=20%'yy'% set Today=%'yy'%-%'mm'%-%'dd'% ENDLOCAL & SET v_year=%'yy'%& SET v_month=%'mm'%& SET v_day=%'dd'% ECHO Today is Year: [%V_Year%] Month: [%V_Month%] Day: [%V_Day%] set datestring=%V_Year%%V_Month%%V_Day% echo %datestring% :EOF h: cd\ cd \BackUp md %datestring% h:\Backup\Rar.exe a -r -m5 -v80M -hpBackup2018 -ag_hh-mm-ss h:\BackUp\%datestring%\%datestring%-BasesDeDatos H:\BackUp\*.bak
El anterior archivo debe ser generado en directorio, por ejemplo como h:\Backup\Backup.bat.
Analizando el código, lo primero que hacemos es ir hacia el directorio en donde se encuentran los archivos que se hayan backupeado anteriormente y eliminarlos, esto lo hacemos por la función que tiene la instrucción backup database, que acumula dentro de un .bak los backups de manera incremental.
Luego con un poco de batch logramos generar la variable datestring que contendrá la fecha y hora actual (estilo inglés, esto se puede variar). El script continúa hacia el directorio h:\Backup, genera un directorio con la fecha y luego ejecuta la instrución hacia el rar, que le pasa los parámetros de compresión, diciendo que particiones cada archivo en 80 megas, le asigne contraseña agregando fecha y hora, desde el directorio h:\BackUp, solamente para los archivos que son ".bak"
Espero que sirva.
Saludos, Ch4rl1X!