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
DBCC TRACEON (3604);
DBCC PAGE (50, 1, 739301, 0);
DBCC TRACEOFF (3604);
GO
SELECT OBJECT_NAME (0);
GO
CREATE DATABASE [DemoSuspect];GO
-- Check the files are there...ALTER DATABASE [DemoSuspect] SET OFFLINE;GO
ALTER DATABASE [DemoSuspect] SET ONLINE;GO SELECT DATABASEPROPERTYEX (N'DemoSuspect', N'STATUS');GOSQL server sẽ báo lỗi. Tuy nhiên như vậy là đã thành công
ALTER DATABASE [DemoSuspect] SET OFFLINE;GO
DROP DATABASE [DemoSuspect];GO
USE [master];GOCREATE DATABASE [DemoSuspect];GOUSE [DemoSuspect];GOCREATE TABLE [Employees] ([FirstName] VARCHAR (20),[LastName] VARCHAR (20),[YearlyBonus] INT);GOINSERT INTO [Employees] VALUES ('Paul', 'Randal', 10000);INSERT INTO [Employees] VALUES ('Kimberly', 'Tripp', 10000);GO
-- Simulate an in-flight transactionBEGIN TRAN;UPDATE[Employees]SET[YearlyBonus] = 0WHERE[LastName] = 'Tripp';GO -- Force the update to diskCHECKPOINT;GO
SHUTDOWN WITH NOWAIT;GO
SELECT DATABASEPROPERTYEX (N'DemoSuspect', N'STATUS') AS N'Status';GO