2010年10月2日 星期六

SQL 2008 Recovery 3 - 特定page error

USE master
GO
BACKUP DATABASE AdventureWorks2008
TO DISK = 'C:\Backups\AWDBBackup.bak' with format
GO

--尋找production.location 的page file
--執行完dbcc checkalloc後find production.location
--要注意是要找的是 root 不是 firstiam
--FirstIAM (1:834). Root (1:833). Dpages 57.
USE AdventureWorks2008
GO
DBCC CHECKALLOC
GO
--使用corrupt指令去破壞

--破壞後用以下指令去看有問題的table與page
--此時production.location table已經不能正常使用
--但是以下資訊,在page修復後並不會消失,類似log
use msdb
go
select * from suspect_pages


--restore
--注意,這邊不用再進行tail-log的備份

USE master
GO
RESTORE DATABASE AdventureWorks2008
PAGE = '1:833'
FROM DISK = 'C:\Backups\AWDBBackup.bak'
WITH NORECOVERY
GO

--要備份一次再restore一次,確保LOG的LSN正確
BACKUP LOG AdventureWorks2008
TO DISK = 'C:\Backups\AWLogBackup.bak'
GO

RESTORE LOG AdventureWorks2008
FROM DISK = 'C:\Backups\AWLogBackup.bak'WITH RECOVERY
GO

沒有留言:

張貼留言