今天笔者讲讲怎样利用LDF文件还原数据方法,恢复过程是先创建数据TEST、创建表TEMP_01,在表TEMP_01中插入100条数据,接着备份现有的数据库,再次向表TEMP_01中插入50条数据,记录下当前正确数据的时间time1,二分钟后模拟数据文件MDF损坏,备份数据库尾日志,最后将数据库恢复到time1 时间。
数据库详细还原步骤:
1) 创建数据TEST
CREATE DATABASE TEST
2) 创建表TEMP_01
CREATE TABLE TEMP_01
(ID [int] NOT NULL PRIMARY KEY,
NAME [datetime] NOT NULL,
ADDRESS varchar(50) NOT NULL)
3) 在表TEMP_01中插入100条数据
use TEST
declare @i int
set @i=1
while(@i<=100)
begin
INSERT INTO TEMP_01 VALUES (@i,getdate(),’ADDRESS ‘ + convert(varchar(50),@i))
set @i=@i+1
end
查看数据
select * from TEST
4) 备份现有的数据库
--------做一次完整数据库备份
backup database TEST to disk =N’f:\db-recovery\TEST.bak’
5) 再次向表TEMP_01 中插入50条数据
use TEST
declare @i int
set @i=101
while(@i<=150)
begin
INSERT INTO TEMP_01 VALUES (@i,getdate(),’ADDRESS ‘ + convert(varchar(50),@i))
set @i=@i+1
end
查看数据
select * from TEMP_01
6) 记录下当前正确数据的时间time1
当前时间为:2009-8-21 15:18:33
7) 2分钟后模拟数据文件损坏
停止SQL SERVER 服务 net stop mysqlserver
删除TEST.mdf 文件
新建文本文件,并重命名为:TEST.mdf
启动SQL SERVER 服务 net stop mysqlserver
数据库TEST无法打开,证明已损坏
8) 备份数据库尾日志
启动 sqlcmd 管理工具
备份尾日志
backup log TEST to disk=N’f:\db-recovery\aaaa.bak’ with no_truncate
解释一下no_truncate的作用:
如果数据库处于离线状态并且无法启动。
尝试执行尾日志备份。由于此时不会发生任何事务,所以 WITH NORECOVERY 是可选的。如果数据库受损,请使用
WITH CONTINUE_AFTER_ERROR 或 WITH NO_TRUNCATE。
BACKUP LOG database_name TO [WITH { CONTINUE_AFTER_ERROR " NO_TRUNCATE }
重要提示:
除非数据库受损,否则不建议使用 NO_TRUNCATE。
9) 将数据库恢复到time1时间
–恢复最后一次正常配置
在sqlcmd中执行如下语句进行恢复
restore database test from disk=’f:\db-recovery\TEST.bak’ with norecovery
restore log test from disk=’f:\db-recovery\aaaa.bak’ with recovery
解释一下 with norecovery 和 with recovery的作用
NORECOVERY:每当您准备对数据库继续执行还原操作时,请使用 NORECOVERY。NORECOVERY 使数据库进入还原状态。这确保了数据库在尾日志备份后不会更改。
RECOVERY:将数据库从恢复状态改变到正常状态
以上是数据库恢复过程,是利用LDF文件将数据库数据还原,希望对您有帮助!
由于我是个对磁盘空间过敏的人,每当磁盘空间少到几百兆,就会想办法删掉不用的软件,时...
1.查看磁带中的目录 #tar tvf /dev/st0 2.查看磁带中的目录,并输出到一个文件中 #t...
当世界上规模最大的磁盘制造商上周联合发布磁盘加密的单项标准后,迅速在用户中间产生了...
首先我们先启动EasyRecovery软件,点击左边列表中的数据修复。 数据修复里面有六个选项...
很多的朋友都在使用U盘,用它进行数据存储的工作,使用过U盘的朋友们也都会碰到如下的情...
主板架构,如下图: 2011-3-1 21:30:31 上传 下载附件 (52 KB) 上电时序: 2011-3-1...
错误操作导致高级格式化分区后的数据恢复在 DOS 时代有一个非常不错工具称为 UnFormat...