M*******r 发帖数: 522 | 1 SQL Server 2008,某个重要Table被人一不小心删了上万行数据 --- 最惨的是该DB
Instance虽然是Full BackUp Mode,却从来没有BackUp过(坑爹呀~~)
据说只能从Transaction Log下手找补了。。。 我已经吩咐他们不要再动这个数据库,
但是请问怎样才能把删除掉的数据恢复过来。。。
有人说用 Apex SQL Log,有人说TOAD Log Explorer。。。 请问哪位有过这经验?
江湖救急,多谢多谢! |
B*****g 发帖数: 34098 | 2 悬,你可以给zenny发信问问,上次他好像说没有full backup,那个谁谁来了也没用
【在 M*******r 的大作中提到】 : SQL Server 2008,某个重要Table被人一不小心删了上万行数据 --- 最惨的是该DB : Instance虽然是Full BackUp Mode,却从来没有BackUp过(坑爹呀~~) : 据说只能从Transaction Log下手找补了。。。 我已经吩咐他们不要再动这个数据库, : 但是请问怎样才能把删除掉的数据恢复过来。。。 : 有人说用 Apex SQL Log,有人说TOAD Log Explorer。。。 请问哪位有过这经验? : 江湖救急,多谢多谢!
|
a9 发帖数: 21638 | 3 感觉上日志只能从开始往后走。
DB
库,
【在 B*****g 的大作中提到】 : 悬,你可以给zenny发信问问,上次他好像说没有full backup,那个谁谁来了也没用
|
i****a 发帖数: 36252 | 4 I think you are referring to "Full" recovery mode. All it does it it
keeps
all the transactions in log until you do a backup, either tranlog backup
or
full data backup.
1. take a tranlog backup now. (make sure it's tranlog backup, not data
backup). If you can't take a tranlog backup then that means your
database has never had any data backup.
2. and find your last full data backup
When you have both, find a test server to restore the full data backup,
and
then restore the tranlog backup onto it.
【在 M*******r 的大作中提到】 : SQL Server 2008,某个重要Table被人一不小心删了上万行数据 --- 最惨的是该DB : Instance虽然是Full BackUp Mode,却从来没有BackUp过(坑爹呀~~) : 据说只能从Transaction Log下手找补了。。。 我已经吩咐他们不要再动这个数据库, : 但是请问怎样才能把删除掉的数据恢复过来。。。 : 有人说用 Apex SQL Log,有人说TOAD Log Explorer。。。 请问哪位有过这经验? : 江湖救急,多谢多谢!
|
i****a 发帖数: 36252 | 5 http://www.red-gate.com/products/dba/sql-log-rescue/
【在 M*******r 的大作中提到】 : SQL Server 2008,某个重要Table被人一不小心删了上万行数据 --- 最惨的是该DB : Instance虽然是Full BackUp Mode,却从来没有BackUp过(坑爹呀~~) : 据说只能从Transaction Log下手找补了。。。 我已经吩咐他们不要再动这个数据库, : 但是请问怎样才能把删除掉的数据恢复过来。。。 : 有人说用 Apex SQL Log,有人说TOAD Log Explorer。。。 请问哪位有过这经验? : 江湖救急,多谢多谢!
|
B*****g 发帖数: 34098 | 6 full back up从来没run过
【在 i****a 的大作中提到】 : I think you are referring to "Full" recovery mode. All it does it it : keeps : all the transactions in log until you do a backup, either tranlog backup : or : full data backup. : 1. take a tranlog backup now. (make sure it's tranlog backup, not data : backup). If you can't take a tranlog backup then that means your : database has never had any data backup. : 2. and find your last full data backup : When you have both, find a test server to restore the full data backup,
|
M*******r 发帖数: 522 | 7 RedGate试过了,只能在SQL Server 2000上用,2005/2008没有更新。。。
【在 i****a 的大作中提到】 : http://www.red-gate.com/products/dba/sql-log-rescue/
|
c*****d 发帖数: 6045 | 8 oracle里一个tablespace(对应于sql server中的database)
如果没有备份,但是有从创建到delete这段时间所有的log
是可以恢复的
举个例子,比如创建的时候是状态0
log里记录了状态0-1-2-3-4-5的变化
在状态5的时候table被删除
如果有0的备份, apply 0-1-2-3-4的变化, stop, done
没有0的备份, 如果有办法产生一个空库, apply 0-1-2-3-4的变化, stop, done
it could be done in oracle, but I am not sure sql server |
B*****g 发帖数: 34098 | 9 你说的这个“存创建到delete这段时间所有的log”有人干嘛?
【在 c*****d 的大作中提到】 : oracle里一个tablespace(对应于sql server中的database) : 如果没有备份,但是有从创建到delete这段时间所有的log : 是可以恢复的 : 举个例子,比如创建的时候是状态0 : log里记录了状态0-1-2-3-4-5的变化 : 在状态5的时候table被删除 : 如果有0的备份, apply 0-1-2-3-4的变化, stop, done : 没有0的备份, 如果有办法产生一个空库, apply 0-1-2-3-4的变化, stop, done : it could be done in oracle, but I am not sure sql server
|
c*****d 发帖数: 6045 | 10 data is recoverable only if this condition exists
otherwise no backup + no log = no way
【在 B*****g 的大作中提到】 : 你说的这个“存创建到delete这段时间所有的log”有人干嘛?
|
|
|
B*****g 发帖数: 34098 | 11 问题是会不会有人存下所有的log?
【在 c*****d 的大作中提到】 : data is recoverable only if this condition exists : otherwise no backup + no log = no way
|
B*****g 发帖数: 34098 | 12 另外你们的server有backup吗?
【在 M*******r 的大作中提到】 : SQL Server 2008,某个重要Table被人一不小心删了上万行数据 --- 最惨的是该DB : Instance虽然是Full BackUp Mode,却从来没有BackUp过(坑爹呀~~) : 据说只能从Transaction Log下手找补了。。。 我已经吩咐他们不要再动这个数据库, : 但是请问怎样才能把删除掉的数据恢复过来。。。 : 有人说用 Apex SQL Log,有人说TOAD Log Explorer。。。 请问哪位有过这经验? : 江湖救急,多谢多谢!
|
g***l 发帖数: 18555 | |
a9 发帖数: 21638 | 14 他没备份过,是不是就代表transaction log是全的?
【在 B*****g 的大作中提到】 : 问题是会不会有人存下所有的log?
|
g***l 发帖数: 18555 | 15 当然是全的,但你没有最初的FULL BACKUP,LOG没有用处。你赶紧把其他的DATABASE都
做个FULL BACKUP,别过几天其他的DB又丢了数据。
【在 a9 的大作中提到】 : 他没备份过,是不是就代表transaction log是全的?
|
p*********t 发帖数: 2690 | 16 能不能用deep freeze之类的软件把系统还原到刚开机时的状态?
【在 g***l 的大作中提到】 : 当然是全的,但你没有最初的FULL BACKUP,LOG没有用处。你赶紧把其他的DATABASE都 : 做个FULL BACKUP,别过几天其他的DB又丢了数据。
|
g***l 发帖数: 18555 | 17 你是说把硬盘恢复到刚开机的状态吧,有搞数据恢复的,比如这个,但你得花钱请人恢
复,在美国一切都是钱,最好不要自己做,自己做担责任,恢复不了遭开除,公司请人
,责任不在我。
http://www.michigandatarecovery.com/sqlserver.html
【在 p*********t 的大作中提到】 : 能不能用deep freeze之类的软件把系统还原到刚开机时的状态?
|
z***y 发帖数: 7151 | 18 Please run this script first. Check the database properties first to get the
create date of the database
select * from sysdatabases
the crdate(?) is the create date for that database.
Then run the following script to find out available backups.
I'm on vacation now. So cannot verify the following script. If there's typo
or grammar error, please correct it yourself:
SELECT
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_start_date,
msdb.dbo.backupset.backup_finish_date,
msdb..backupset.type,
msdb.dbo.backupset.backup_size,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupset.name AS backupset_name
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id
= msdb.dbo.backupset.media_set_id
WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >=
GETDATE() - 900)
where
msdb.dbo.backupset.database_name = 'your db name goes here'
【在 M*******r 的大作中提到】 : SQL Server 2008,某个重要Table被人一不小心删了上万行数据 --- 最惨的是该DB : Instance虽然是Full BackUp Mode,却从来没有BackUp过(坑爹呀~~) : 据说只能从Transaction Log下手找补了。。。 我已经吩咐他们不要再动这个数据库, : 但是请问怎样才能把删除掉的数据恢复过来。。。 : 有人说用 Apex SQL Log,有人说TOAD Log Explorer。。。 请问哪位有过这经验? : 江湖救急,多谢多谢!
|
a**d 发帖数: 4285 | 19 这事向你的老板说了没有?看起来没有backup应该不是你的责任,但是你如果不说,恢
复不好,没准都成你的罪过了。
【在 M*******r 的大作中提到】 : SQL Server 2008,某个重要Table被人一不小心删了上万行数据 --- 最惨的是该DB : Instance虽然是Full BackUp Mode,却从来没有BackUp过(坑爹呀~~) : 据说只能从Transaction Log下手找补了。。。 我已经吩咐他们不要再动这个数据库, : 但是请问怎样才能把删除掉的数据恢复过来。。。 : 有人说用 Apex SQL Log,有人说TOAD Log Explorer。。。 请问哪位有过这经验? : 江湖救急,多谢多谢!
|
c*****d 发帖数: 6045 | 20 应该是没有备份,run你的语句可以确认一下
zenny:
我说的这个sql server可以做吗
http://www.mitbbs.com/article/Database/31161597_0.html
the
typo
【在 z***y 的大作中提到】 : Please run this script first. Check the database properties first to get the : create date of the database : select * from sysdatabases : the crdate(?) is the create date for that database. : Then run the following script to find out available backups. : I'm on vacation now. So cannot verify the following script. If there's typo : or grammar error, please correct it yourself: : SELECT : : msdb.dbo.backupset.database_name,
|
gy 发帖数: 620 | 21
【在 c*****d 的大作中提到】 : oracle里一个tablespace(对应于sql server中的database) : 如果没有备份,但是有从创建到delete这段时间所有的log : 是可以恢复的 : 举个例子,比如创建的时候是状态0 : log里记录了状态0-1-2-3-4-5的变化 : 在状态5的时候table被删除 : 如果有0的备份, apply 0-1-2-3-4的变化, stop, done : 没有0的备份, 如果有办法产生一个空库, apply 0-1-2-3-4的变化, stop, done : it could be done in oracle, but I am not sure sql server
|
gy 发帖数: 620 | 22 In SQL Server, a FULL backup is the base for the other backups, ie: log and
differential backup.
If you don't have a FULL backup in SQL Server, you are finished.
【在 c*****d 的大作中提到】 : oracle里一个tablespace(对应于sql server中的database) : 如果没有备份,但是有从创建到delete这段时间所有的log : 是可以恢复的 : 举个例子,比如创建的时候是状态0 : log里记录了状态0-1-2-3-4-5的变化 : 在状态5的时候table被删除 : 如果有0的备份, apply 0-1-2-3-4的变化, stop, done : 没有0的备份, 如果有办法产生一个空库, apply 0-1-2-3-4的变化, stop, done : it could be done in oracle, but I am not sure sql server
|