数据库修改了怎么恢复上一步(数据库修改了怎么恢复上一步设置)
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日志记录,这个软件就是把日志里的作进行反向作达成回复目的~
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。