sql恢复修改前数据

sql 2000 修改数据的时候改错了,问如何恢复到修改前?顺便问怎么可以实时本分数据库到另一个磁盘,实时的哦

1、首先运行Recovery for SQL Server。

2、点击:Next > Next--》进入 Recovery Configuration 界面。

3、接着选中 Search for deleted records,并选择要恢复的数据库的日志文件路径log file path。

4、点击next-》开始恢复。

5、点击:Next,选择被恢复数据存放的目标数据库。

6、最后点击Finish,然后就完成数据的恢复数据。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-28
一,如果是oracle数据库,且刚删除不久,那么可以执行下面语句
insert into 表名 select * from 表名 as of timestamp to_timestamp('2007-07-23 10:20:00', 'yyyy-mm-dd hh24:mi:ss');
语句中的日期时间改成你误操作之前的最近时间

二,如果是sqlserver数据库,那么
1、首先对误删后的数据库做个日志备份;
backup log 数据库名 to disk='路径及日志备份文件名'
2、把数据库恢复到最近一次全库备份的日期;
RESTORE DATABASE 数据库名 FROM DISK='路径及数据库备份文件名'
WITH REPLACE,NORECOVERY
3、用步骤1的日志备份把数据库恢复到你误删的那一刻之前;
RESTORE LOG 数据库名 FROM DISK='路径及日志备份文件名'
WITH RECOVERY,STOPAT='2009-4-24 16:40:10'
语句中的日期时间改成你误操作之前的最近时间

三,如果修改之前有做数据库备份,可以新建一个库,把备份还原上去,导出表数据,再导入到现在用的库中去。.

实时备份数据库到另一个磁盘,有多种不同的实现方式,例如:
1,有两台服务器的话可以做双机热备
2,只有一台服务器可以做磁盘镜像
3,也可以用专门的数据库备份软件本回答被提问者采纳
第2个回答  2011-02-25
sql2000修改错误的值无法恢复,除非在修改之前有备份,可以将备份恢复。数据库实时备份到另一个磁盘的问题较复杂,sql2000本身有计划任务可以实现在某个时间,例如每天晚上12点,将数据备份到可访问的任意磁盘位置。如果必须要求实时备份,则考虑购买专业的数据备份软件,或可上网搜索共享的实时备份软件。
第3个回答  2011-02-25
完全备份恢复数据库,并使其为日志恢复做好准备。

RESTORE DATABASE pubs FROM DISK = N'C:\Backups\Fullbackup.bak' WITH NORECOVERY

现在您可以将日志前滚到合适的时间点,并使数据库可供使用。请注意,STOPAT在数据库正在执行大容量日志时禁止执行。

RESTORE LOG pubs FROM DISK=N'C:\Backups\Logbackup.bak' WITH RECOVERY,STOPAT='02/11/2002 17:35:00'

例2:使用数据库标记将日志恢复到预定义时间点的语句
在事务日志中置入一个标记。请注意,被标记的事务至少须提交一个更新,以标记该日志。

BEGIN TRAN MyMark WITH MARK
UPDATE pubs.dbo.LastLogMark SET MarkTime = GETDATE()
COMMIT TRAN MyMark

按照您常用的方法备份事务日志。

BACKUP LOG pubs TO DISK='C:\Backups\Fullbackup.bak' WITH INIT

现在您可以将数据库恢复至日志标记点。首先恢复数据库,并使其为接受日志恢复做好准备。

RESTORE DATABASE pubs FROM DISK=N'C:\Backups\Fullbackup.bak' WITH NORECOVERY

现在将日志恢复至包含该标记的时间点,并使其可供使用。请注意,STOPAT在数据库正在执行大容量日志时禁止执行。

RESTORE LOG pubs FROM DISK=N'C:\Backups\Logbackup.bak' WITH RECOVERY,
STOPAT='02/11/2002 17:35:00'

—Microsoft SQL Server 开发团队
第4个回答  2011-02-25
试试看把,我在oracle里用的...
create table tableName_bak
as
select * from tableName as of TIMESTAMP to_timestamp('20081126 103435','yyyymmdd hh24miss');

/*tableName是你要恢复的表,tableName_bak 是tableName的备份表,讲tableName_bak的数据恢复到tableName里面
'20081126 103435'根据你自己的情况改,改成你删掉数据之前的时间,不过这个办法只能查出2天左右的数据,时间久了估计不行 */
相似回答