如何返回故障前一步?

jantzen 2003-12-12 09:32:23
各位大哥好小弟想请教下,我现在有一各SQL备份的问题想问下大家(我是新手啊,请帮下忙就是c步骤不太会,ABC步骤都可以在企业管理器中实现)有一个数据库MYDATE中的表employee有10条记录,备份步骤如下:
A 先完全备份1-10条记录
B 然后删除记录1和7进行事务日志备份
c 增加记录12,13删除了记录2后来发现不能删除记录2怎样返回上一步既只增加记录12,13,不删除了记录2(既返回故障前一步)
用point in time restore能回到回故障前一步,但就是要记住时间才能方便使用,请各位大哥写出以上过程的语句好吗?备份设备名为c:\backup\backdevice.bak,谢谢!
...全文
14 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jantzen 2003-12-14
谢谢各位热心解答!!
  • 打赏
  • 举报
回复
zjcxc 2003-12-13
--你只能用这个工具来实现你的要求

Log Explorer

http://www.ttdown.com/SoftDown.asp?ID=14562
http://www.yiii.net/app/servlet/net.yiii.club.DownloadServlet?Information_Id=I00023471
解压缩密码 www.heibai.net

http://www.ttdown.com/softview_8647.htm


注册机产生的是注册码,是两个

用解压缩密码解开后,压缩包里也有一个注册机的

打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
T-sql代码就可以了

例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....


  • 打赏
  • 举报
回复
zjcxc 2003-12-13
A 先完全备份1-10条记录

backup database 数据库名 to disk='c:\backup\backdevice.bak'



B 然后删除记录1和7进行事务日志备份

backup log 数据库名 to disk='c:\backup\backdevice.bak'



c 增加记录12,13删除了记录2后来发现不能删除记录2怎样返回上一步既只增加记录12,13,不删除了记录2(既返回故障前一步)

--这里只能返回到删除记录1和7后的状态,因为你删除记录12,13后没有做备份.
user master --切换到master数据库才能恢复
go
--还原完整备份
restore database 数据库名 from disk='c:\backup\backdevice.bak' with file=1,norecovery

--还原日志备份的内容
restore database 数据库名 from disk='c:\backup\backdevice.bak' with file=2,recovery
go

use 数据库名
go
select * from 表
  • 打赏
  • 举报
回复
txlicenhe 2003-12-13


/************************************* 差异备份 ********************/
http://expert.csdn.net/Expert/topic/2317/2317894.xml?temp=.8740045
下面的是详细的过程:

--清除环境,防止现有的数据影响测试结果
exec master..xp_cmdshell 'del c:\text.bak'
if exists(select * from master..sysdatabases where name='test')
drop database test
go

--创建数据库
create database test
go

--打开创建的数据
use test
go

--创建测试表
create table t(a int)

--切换回master数据库
use master
go

--插入数据1
insert into test..t select 1
go

--然后进行一次完整备份
backup database test to disk='c:\test.bak'
go

--插入数据2
insert into test..t select 2
go

--再进行一次完整备份
backup database test to disk='c:\test.bak'
go

--插入3,4
insert into test..t select 3
insert into test..t select 4
go

--差异备份:
backup database test to disk='c:\test.bak' with differential

--删除数据库
drop database test

--还原数据库和差异数据库备份
--还原完整备份
restore database test from disk='c:\test.bak' with file=2,norecovery
--还原差异备份的内容
restore database test from disk='c:\test.bak' with file=3,recovery

--显示恢复后的数据
select * from test..t

  • 打赏
  • 举报
回复
相关推荐
发帖
应用实例
加入

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2003-12-12 09:32
社区公告
暂无公告