/*
使用事务日志恢复数据的实验
*/
--1.创建测试数据库
CREATE DATABASE Db_test
ON
( NAME = Db_test_DATA,
FILENAME = 'c:/Db_test.mdf' )
LOG ON
( NAME = Db_test_LOG,
FILENAME = 'c:/Db_test.ldf')
GO
--2.故障还原模型设置为full模型,默认的简单模型备份事务日志是没用的
ALTER DATABASE Db_test SET RECOVERY FULL | BULK_LOGGED
--3.创建测试表
CREATE TABLE [dbo].[BackupTabToTxt] (
[TabName] [varchar] (200) ,
)
--4.插入测试数据
insert into BackupTabToTxt(TabName) values('test1')
insert into BackupTabToTxt(TabName) values('test2')
insert into BackupTabToTxt(TabName) values('test3')
select * from BackupTabToTxt
--5.备份数据库
BACKUP DATABASE Db_test TO DISK='c:/test_data.bak'
--6.删除数据,备份日志
delete from BackupTabToTxt where TabName='test3' --17:06
BACKUP LOG Db_test TO DISK='c:/test_log_1706.bak' --备份日志
delete from BackupTabToTxt where TabName='test2' --17:07
BACKUP LOG Db_test TO DISK='c:/test_log_1707.bak' --备份日志
select * from BackupTabToTxt
--7.使用事务日志恢复数据
RESTORE database Db_test from DISK='c:/test_data.bak' WITH NORECOVERY
RESTORE LOG Db_test FROM DISK='c:/test_log_1706.bak' with stopat='2009-09-24 17:06' ,NORECOVERY
RESTORE LOG Db_test FROM DISK='c:/test_log_1707.bak' with stopat='2009-09-24 17:07'
select * from BackupTabToTxt
--8.删除测试库
drop database Db_test
本文通过创建测试数据库、设置故障还原模型、进行数据备份及删除等步骤,详细演示了如何利用事务日志来恢复丢失的数据。
3017

被折叠的 条评论
为什么被折叠?



