The restore process is just like a full recovery. Once you know the page ID to be
restored, you can begin a full restore and specify only the page IDs you need replaced.
Be sure to apply all transaction log backups (including the tail-log backup), as changes
to the pages being restored may have occurred after the full backup:
RESTORE DATABASE AdventureWorks PAGE '20:1570,20:1571,20:1572'
FROM DISK='D:\SQLBackups\AWFull.bak'
WITH NORECOVERY RESTORE LOG AdventureWorks
FROM DISK='D:\SQLBackups\AWLog1.bak"
WITH NORECOVERY
RESTORE LOG AdventureWorks
FROM DISK='D:\SQLBackups\AWLog2.bak'
WITH RECOVERY
Note that you can specify multiple pages to be restored. The maximum number of
pages is 1,000, but something tells me that if more than 1,000 pages are damaged, you
have bigger problems to deal with.
Of course, you need to get the internal page IDs before beginning the process.
You might get an error during the restore, in which case it gets written to the
MSDB..SUSPECT_PAGE table. You could also run the T-SQL database console command
(DBCC) DBCC CHECKDB command, and use the results of that command.
Pages:
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157