parent nodes: SQLapuntes

Backup de base de datos con OSQL

Si se usa una versión little o express de Sql Server puede que no tengamos forma de crear un plan de mantenimiento de la base de datos.

Para, al menos, poder hacer copia de seguridad hay que usar el OSql y las tareas programadas de windows.


Tarea programada

Inicio > Configuración > Panel de control > Tareas programadas

Datos necesarios:

Archivo de proceso por lotes .bat

Tendrá la llamada al script SQL a ejecutar por osql
osql -S <NOMBRE_DOMINIO>\<NOMBRE_SERVIDOR> -U >usuario_con_permisos> -P <password> -d <nombre_bdd> -i <scrip_SQL>

Por ejemplo (dominio, servidor y password son de mentira)


osql -S COLEGIO\SERVERSQLEXPRESS -U sa -P 12345678 -d SIGC_COL -i "C:\MSSQL\Backup\backupBD.sql"

Script SQL

Crear el nombre del archivo de copia, lo hacemos siguiendo el estilo del SQL Server: base de datos + fecha + hora + minuto + .bak
Dar la orden de backup con el nombre de archivo de destino.
DECLARE @TODAY     AS CHAR( 8 )
DECLARE @FILE_NAME AS CHAR( 255 )
DECLARE @HOUR      AS CHAR( 2 )
DECLARE @MINUTE    AS CHAR( 2 )

SET @HOUR      = DATEPART( hh, GETDATE() )
SET @MINUTE    = DATEPART( mi, GETDATE() )
SET @TODAY     = CONVERT( CHAR( 8 ), GETDATE(), 112 )
SET @FILE_NAME = 'C:\MSSQL\Backup\SIGC_COL' + @TODAY + @HOUR + @MINUTE + '.BAK'


BACKUP DATABASE [SIGC_COL] TO DISK = @FILE_NAME

Limitaciones