Dò data và Fix data SQL Suspect

Lệnh dò tìm các Data bị Suspect

SELECT sys.databases.name, msdb..suspect_pages.event_type, msdb..suspect_pages.database_id,msdb..suspect_pages.file_id,msdb..suspect_pages.page_id
FROM msdb..suspect_pages  
INNER JOIN sys.databases  ON msdb.dbo.suspect_pages.database_id = sys.databases.database_id
ORDER BY sys.databases.database_id

--DELETE FROM msdb..suspect_pages  
--   WHERE (event_type = 4 OR event_type = 5 OR event_type = 7);  
--GO  

Sửa lỗi Suspect Database: Gặp lỗi này bạn chỉ cần chạy đoạn script sau:

ALTER DATABASE [DBName] SET EMERGENCY;
GO
ALTER DATABASE [DBName] set single_user
GO
DBCC CHECKDB ([DBName], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
GO
ALTER DATABASE [DBName] set multi_user
GO
Tham khảo tại
https://www.stellarinfo.com/blog/fix-sql-database-recovery-pending-state-issue/

Dò tìm page_id thuộc bảng nào

Trong đó 50 là database_id, 1 là file_id, 739301 là page_id

Tham khảo tại link: https://www.sqlskills.com/blogs/paul/finding-table-name-page-id/

B1: Copy lại database bị suspect của bạn ra 1 folder khác

B2: Tạo mới 1 database trùng tên với database bị suspect

B3: Chuyển database vừa tạo sang offline

B4: Copy database bị suspect của bạn đè lên database mới tạo

B5: Đưa database bị suspect trở lại online

B6: Sửa lỗi database bị suspect (như ở mục 1)

3. Detach suspect database: Để detach suspect database bạn thực hiện 3 bước

B1: Chuyển database sang offline

B2: Copy lại file database (file .mdf, .ldf)

B3: Xóa database này đi

4. Tạo suspect database

B1: Khởi tạo database và dữ liệu demo

B2: Thực hiện update không chuẩn

B3: Ở một cửa sổ khác, giả lập lỗi

B4: khởi động lại SQL server

B5: Xem trạng thái databse

-Tham khảo từ blog Sqlskills-

Last updated

Was this helpful?