sql恢复修改前数据

完全备份恢复数据库,并使其为日志恢复做好准备。

数据库修改了怎么恢复上一步(数据库修改了怎么恢复上一步设置)数据库修改了怎么恢复上一步(数据库修改了怎么恢复上一步设置)


数据库修改了怎么恢复上一步(数据库修改了怎么恢复上一步设置)


RESTORE

DATABASE

pubs

FROM

DISK

=N'C:BackupsFullbackup.bak'

WITH

NORECOVERY

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

RESTORE

LOG

pubs

FROM

DISK=N'C:BackupsLogbackup.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:BackupsFullbackup.bak'

WITH

INIT

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

RESTORE

DATABASE

pubs

FROM

DISK=N'C:BackupsFullbackup.bak'

WITH

NORECOVERY

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

RESTORE

LOG

pubs

FROM

DISK=N'C:BackupsLogbackup.bak'

WITH

RECOVERY,

STOPAT='02/11/2002

17:35:00'

—Microsoft

SQL

开发团队

试试看把,我在oracle里用的...

create

table

tableName_bak

as

select

from

tableName

as

of

TIMESP

to_timestamp('20081126

103435','yyyymmdd

hh24miss');

/tableName是你要恢复的表,tableName_bak

是tableName的备份表,讲tableName_bak的数据恢复到tableName里面

'20081126

103435'根据你自己的情况改,改成你删掉数据之前的时间,不过这个办法只能查出2天左右的数据,时间久了估计不行

/

数据库修改了怎么恢复上一步(数据库修改了怎么恢复上一步设置)


sql恢复修改前数据

一,如果是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,也可以用专门的数据库备份软件

sql2000修改错误的值无法恢复,除非在修改之前有备份,可以将备份恢复。数据库实时备份到另一个磁盘的问题较复杂,sql2000本身有任务可以实现在某个时间,例如每天晚上12点,将数据备份到可访问的任意磁盘位置。如果必须要求实时备份,则考虑购买专业的数据备份软件,或可上网搜索共享的实时备份软件。

完全备份恢复数据库,并使其为日志恢复做好准备。

RESTORE DATABASE pubs FROM DISK = N'C:BackupsFullbackup.bak' WITH NORECOVERY

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

RESTORE LOG pubs FROM DISK=N'C:BackupsLogbackup.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:BackupsFullbackup.bak' WITH INIT

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

RESTORE DATABASE pubs FROM DISK=N'C:BackupsFullbackup.bak' WITH NORECOVERY

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

RESTORE LOG pubs FROM DISK=N'C:BackupsLogbackup.bak' WITH RECOVERY,

STOPAT='02/11/2002 17:35:00'

—Microsoft SQL 开发团队

试试看把,我在oracle里用的...

create table tableName_bak

as

select from tableName as of TIMESP to_timestamp('20081126 103435','yyyymmdd hh24miss');

/tableName是你要恢复的表,tableName_bak 是tableName的备份表,讲tableName_bak的数据恢复到tableName里面

'20081126 103435'根据你自己的情况改,改成你删掉数据之前的时间,不过这个办法只能查出2天左右的数据,时间久了估计不行 /

建议:养成一个好的习惯,在update数据之前先把表的数据备份,在更新后确认没问题后再删掉。

另,在更新时用过程判断,更新完了后检查数据,符合要求就commit,否则就Rollback。

使用mysql时候不小心多update了数据,想问一下如何才能够返回上一步?

D:xamppmysqlbinmysqlbinlog.exe –database=”mydatabase” –stop-date=”2010-06-07 9:30:00″ –result-file=”c:my.sql” ../data/mysql-bin.000050 | mysql -uroot –p123456

按这个格式就是调用binlog

database:要恢复的数据库,stop-date:恢复到的时间点。再后面是数据库的某个要执行的二进制文件路径与名称,可以是地址或相对于mysqlbinlog.exe 所在位置的相对地址。面|之后的是数据库访问权限设置,-u表示用户名,-p表示密码。如果用户名、密码为root、123456

之前开启事务管理 ,出现错误后回滚事务 正确就递交事务

去找binlog,然后恢复

sql数据库误改怎样恢复

可以用的备份,进行恢复:

1、备份数据库文件

backup database to disk='d:数据库文件.bak'

backup log to disk='d:日志文件.bak'

2、备份数据库日志

restore database to disk='d:数据库文件.bak'

restore log to disk='d:日志文件.bak'

1、还原备份

2、手工修改记录

3、利用字段相互影响,可以批量更新status,使错误降到

可以安装一个log explorer,用它把从早上开始你对这个表的所有更改作查询出来,然后把它的反作语句倒出来,到sql里执行就可以了

将数据库中的所数据修改了,怎样才能恢复

看你是什么数据库了,SQL的就好办了

去下载一个logExplorer,很快搞定

原理是:

你修改、添加或删除数据的时候,所有的命令都会被LOG日志记录,这个软件就是把日志里的作进行反向作达成回复目的~