Download MSSQL 2014 Respaldo de Datos Predecible - tech
Document related concepts
no text concepts found
Transcript
MSSQL 2014 Respaldo de Datos Predecible eficiente y flexible 1.1 Configurando nuestros respaldo de datos En esta sección ejecutaremos una serie de pasos para respaldar nuestros datos. Tareas 1. Iniciando Microsoft SQL Server Management Studio Pasos Detallados 1. Presionar botón Windows 2. Clic en SQL Server Management Studio 3. Verifique que TZ-W2012\SQL2014 este en Server Name 4. Verifique que Authentication: es Windows Authentication 5. Clic Connect 6. Esperar que se cargue completamente 7. Clic New Query 2. Creando nuestra base de datos y nuestra tabla exec xp_cmdshell N'date 1/1/2014' --Creando nuestra base de datos IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'mydb01') DROP DATABASE [mydb01] create database mydb01 go create table mydb01..mytbl01 (i int, mydate datetime) go 3. Haciendo el respaldo inicial --respaldo inicial BACKUP DATABASE [mydb01] TO DISK = N'C:\mySQL2014\MSSQL12.SQL20124\MSSQL\Backup\mydb01.bak' WITH NOFORMAT, NOINIT, NAME = N'mydb01-Full01', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO 4. Realizando modificacion es en los datos --Declarando nuestras varaibles declare @myday int = 1 declare @mymonth int = 1 declare @myyear int = 2014 declare @myhour int = 0 declare @myminute int = 0 declare @myt nchar (25) = 'time ' declare @myd nchar (25) = 'date ' declare @myq nchar (25) declare @mylog int = 1 declare @mydif int = 1 declare @mybklog nchar (20) = N'mydb01-Log' declare @mybkdif nchar (20) = N'mydb01-dif' -1- Autor: Rillmar Ortiz 8. Ejecutar todos los queries siguientes. declare @mybklog1 nchar (20) declare @mybkdif1 nchar (20) declare @m int =1 declare @k int =720 --configurando dia set @myq = Concat (substring(@myd,1,5) , @mymonth , '/', @myday, '/', @myyear) exec xp_cmdshell @myq --Llenando datos y tomando backups while @m <= @k begin /*--configurando hora y dia set @myq = Concat (substring(@myd,1,5) , @mymonth , '/', @myday, '/', @myyear) exec xp_cmdshell @myq*/ --tomando log backups cada 6 horas y differential backup cada 24 horas if @myhour = 4 begin set @mybklog1 = concat (substring(@mybklog,1,9), @mylog) BACKUP LOG [mydb01] TO DISK = N'C:\mySQL2014\MSSQL12.SQL20124\MSSQL\Backup\mydb01.bak' WITH NOFORMAT, NOINIT, NAME = @mybklog1, SKIP, NOREWIND, NOUNLOAD, STATS = 10 set @mybkdif1 = concat (substring(@mybkdif,1,9), @mydif) BACKUP DATABASE [mydb01] TO DISK = N'C:\mySQL2014\MSSQL12.SQL20124\MSSQL\Backup\mydb01.bak' WITH DIFFERENTIAL , NOFORMAT, NOINIT, NAME = @mybkdif1, SKIP, NOREWIND, NOUNLOAD, STATS = 10 set @mylog = @mylog + 1 set @mydif = @mydif + 1 end else if @myhour = 10 begin set @mybklog1 = concat (substring(@mybklog,1,9), @mylog) BACKUP LOG [mydb01] TO DISK = N'C:\mySQL2014\MSSQL12.SQL20124\MSSQL\Backup\mydb01.bak' WITH NOFORMAT, NOINIT, NAME = @mybklog1, SKIP, NOREWIND, NOUNLOAD, STATS = 10 set @mylog = @mylog + 1 end -2- Autor: Rillmar Ortiz set @myq = Concat (substring(@myt,1,5) , @myhour , ':00') exec xp_cmdshell @myq waitfor delay '00:00:01' else if @myhour = 18 begin set @mybklog1 = concat (substring(@mybklog,1,9), @mylog) BACKUP LOG [mydb01] TO DISK = N'C:\mySQL2014\MSSQL12.SQL20124\MSSQL\Backup\mydb01.bak' WITH NOFORMAT, NOINIT, NAME = @mybklog1, SKIP, NOREWIND, NOUNLOAD, STATS = 10 set @mylog = @mylog + 1 end else if @myhour = 22 begin set @mybklog1 = concat (substring(@mybklog,1,9), @mylog) BACKUP LOG [mydb01] TO DISK = N'C:\mySQL2014\MSSQL12.SQL20124\MSSQL\Backup\mydb01.bak' WITH NOFORMAT, NOINIT, NAME = @mybklog1, SKIP, NOREWIND, NOUNLOAD, STATS = 10 set @mylog = @mylog + 1 end if @myhour < 23 set @myhour = @myhour + 1 else begin set @myhour = 0 set @myday = @myday + 1 set @myq = Concat (substring(@myd,1,5) , @mymonth , '/', @myday, '/', @myyear) exec xp_cmdshell @myq end declare declare declare declare @i int =1 @j int =5 @l int =1 @sql nchar (25) set @m = @m + 1 end 5. Revisando los datos almacenados --Revisando los datos Registrados select * from mydb01..mytbl01 6. Revisando los backups tomados --Revisando los backups tomados SELECT sysdb.name as Nombre_BD, bkup.backup_finish_date as Fecha, -3- Autor: Rillmar Ortiz while @i <= @j begin insert mydb01..mytbl01 values (@i, GETDATE()) set @i = @i + 1 set @l = @l + 1 end case when type='D' then '** FULL **' when type='I' then 'DIFFERENTIAL' when type='L' then 'LOG' end as Tipo_Backup, (STR(ABS(DATEDIFF(day, GetDate(),(backup_finish_date))))) as 'Dias_Atras', ceiling(bkup.backup_size /1048576) as 'Tamaño Mb' , first_lsn, last_lsn, checkpoint_lsn FROM master.dbo.sysdatabases sysdb LEFT OUTER JOIN msdb.dbo.backupset bkup ON bkup.database_name = sysdb.name where backup_finish_date > DATEADD(DAY, -60, (getdate())) ORDER BY sysdb.name, bkup.backup_finish_date asc 1.2 Realizando Restauraciones Usando Timeline Veremos como timeline nos ayuda a restaurar los datos de una manera visual. Tareas 1. Iniciar Restore Database Pasos Detallados 1. Ir a Object Explorer 2. Expandir Databases 3. Botón secundario sobre mydb01 4. Clic Tasks 5. Clic Restore 6. Clic Database… 2. Ingresando a Timeline 1. En Restore Database – mydb01 2. Click Timeline… 3. Configurar una restauración a una fecha definida 1. Seleccionar Specific date and time 2. En date ingresar 1/15/2014 3. Con el scroll vertical situarse a entre las 20:00 y 21:00 4. Clic OK 4. Restaurando la base de datos a la fecha y hora definida 1. Revisar en Restore Plan los backups involucrados 5. Revisar los datos restaurados 2. Clic OK 1. Ir al query analyzer 2. Ejecutar la siguiente consulta select * from mydb01..mytbl01 -4- Autor: Rillmar Ortiz Backup Timeline: mydb01 debe de abrirse Autor: Rillmar Ortiz 3. Observar los registros este debe estar entre las horas programadas -5-