Como hacer respaldo de bases de datos en SqlServer
El objetivo principal es hacer un procedimiento para generar de forma automática respaldo de las bases de datos de SqlServer.
EL procedimientoconsta de dos archivos, uno .bat el cual es principal y el otro es un script .sql que será llamado por el proceso principal.
La estructura de directorios donde están los archivos, yo los tengo en unaunidad e, y en directorio respaldos, el cual tiene otro directorio llamado sqlreser, donde caerán los archivos .bak generados.
Voy a suponer que saben cómo crear y editar archivos de texto, al igualsupongo que saben que es un archivo .bat o .cmd, también supongo que saben que es un script.
El procedimiento principal es el siguiente, el cual llamare ExecuteSQL_diario.bat:
@echo off
delE:\respaldos\sqlserver\*.bak
@echo on
SQLCMD.exe -S localhost\schema -U usuario –p contraseña -i "e:\respaldos\SQLBackup.sql" -o "e:\respaldos\sqlserver\SQLBackup_Log.txt"
:End
El script SqlServer lo llamareSQLBackup.sql, con el siguiente contenido:
DECLARE @_BD VARCHAR(50) --BASE DE DATOS
DECLARE @FECHA VARCHAR(10)
SET @FECHA = CONVERT(VARCHAR(10),GETDATE(),112)
DECLARE TMPCURSOR01 CURSOR FORSELECT NAME AS BDS
FROM sys.databases
WHERE name in ('base_de_datos1','base_de_datos2','base_de_datos3','base_de_datos4','base_de_datos5')
OPEN TMPCURSOR01
FETCH NEXT FROM TMPCURSOR01INTO @_BD
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC( 'BACKUP DATABASE ['+@_BD+'] TO DISK = N''e:\respaldos\sqlserver\'+@_BD+@FECHA+'.bak'' WITH NOFORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS= 10 ' )
print 'BACKUP DATABASE ['+@_BD+'] TO DISK = N''e:\respaldos\sqlserver\'+@_BD+@FECHA+'.bak'' WITH NOFORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, STATS = 10 '
FETCH NEXT FROM TMPCURSOR01 INTO@_BD
END
CLOSE TMPCURSOR01
DEALLOCATE TMPCURSOR01
El unico cambio que se necesita hacer, es cambiar los nombres de las bases de datos que se quieren respaldar, este procedimiento genera un...
Regístrate para leer el documento completo.