--Creating the database for the demo
create database DemoDB
go
--Make sure that the database is in full recovery model
alter database DemoDB set recovery full
go
--Making the first full backup. From now on I can use log backups
backup database DemoDB to disk = 'c:\DemoDB_1.bak' with init
go
--Creating a new object in the database
use DemoDB
go
create table DemoTable (i int)
go
--backup the log
backup log DemoDB to disk = 'c:\DemoDB_1.trn' with init
go
--Inserting a record that doesn't exist in all the backups that were taken into the table
insert into DemoTable (i) values (1)
go
--Creating a second full backup. I won't be using this backup when I'll restore the database
backup database DemoDB to disk = 'c:\DemoDB_2.bak' with init
go
insert into DemoTable (i) values (2)
go
--Creating the second log backup that includes the second record in DemoTable
backup log DemoDB to disk = 'c:\DemoDB_2.trn' with init
go
--Dropping the table (to mimic an error)
drop table DemoTable
go
--Now I'll restore the database. I'll use only the first full backup
--with the 2 log backups. This proves that I don't need to use the
--copy_only switch, if I have a full backup with all log backups that
--were taken since then even if another full backup was taken between
--the log backups
use master
go
restore database DemoDB from disk = 'C:\DemoDB_1.bak' with norecovery, replace
restore log DemoDB from disk = 'c:\DemoDB_1.trn' with norecovery
restore log DemoDB from disk = 'c:\DemoDB_2.trn' with recovery
go
Use DemoDB
go
--Notice that I have the table with 2 records
select * from DemoTable
go
--cleanup
use master
go
drop database DemoDB
Thursday, October 1, 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment