최근 포토로그


특정테이블을 데이터를 날렸습니다. 어떻게 복구하나요?

제목 : 특정테이블을 데이터를 날렸습니다. 어떻게 복구하나요? | MS-SQL2005/09/27 13:09

http://blog.naver.com/kukky/17796744


ALTER DATABASE testdb SET RECOVERY full
-- 이라는 전제 하에서 설명 합니다.
backup database testdb to disk = 'c:\testdb.bak' with noinit
-- 이런 파일도 있다고 생각 하겠습니다.
-- 이제부터 사고 치겠습니다.

select count(*) from dbo.tbl_idxTemp
-- 99개 있음

select getdate()
-- 현재시간 2005-09-03 15:54:14.030
delete from dbo.tbl_idxTemp
-- 옷~~~~ -_- 조때심~
select * from dbo.tbl_idxTemp
-- 한마리도 없습니다. ㅠ.ㅠ 죽었습니다. 땀 납니다.

-- 로그를 백업 합니다.
BACKUP LOG testdb TO DISK='c:\testdblog' WITH NO_TRUNCATE, INIT

-- 리스토어 할때 다른 디비로 리스토어 합니다.
-- 사표 쓰기 싫으면 정신 바짝 차립니다.
-- sp_helpdb testdb

-- 복구정보 확인 합니다.
-- C:\Program Files\Microsoft SQL Server\MSSQL\data\testdb.mdf
-- C:\Program Files\Microsoft SQL Server\MSSQL\data\testdb_log.LDF



RESTORE FILELISTONLY FROM DISK = 'c:\testdb.bak'

에서 LogicalName 을 확인합니다. -_-; 이렇게 하면 원래의 백업 이름을 알 수 있습니다.
LogicalName

-------------

testdb

testdb_log








RESTORE DATABASE testdb_fail
FROM DISK='c:\testdb.bak'
with norecovery
, move 'testdb' to 'c:\c.mdf'
,move 'testdb_log' to 'c:\c.ldf'
,replace


RESTORE LOG testdb_fail FROM DISK='c:\testdblog'
WITH STOPAT=' 2005-09-03 15:54:14.030', RECOVERY


use testdb_fail

go
select count(*) from dbo.tbl_idxTemp
-- 옷 살아 있습니다.
-- -----------
-- 99

-- 사표 안써도 됩니다. ㅠ.ㅠ



이제부터는 땀좀 식히고 이걸 원본 디비로 밀어 넣으시면 되겠습니다. 관계 설정도 다시 해주시고요~


덧글

댓글 입력 영역