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-