Inicio
Software
Programación
HTML Programación - PHP (ini) Programación - PHP POO Programación - PHP / HTML SQL Java
Hardware
Desarrollos
Quién soy Mapa del sitio

MSSQL - Compresion y guardado

Imprimir
Categoría: SQL
Escrito por Ch4rl1X Visitas: 489

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!