Sửa lỗi Database bị Suspect trong WordPress?

Kiến thức hosting

1. Lỗi Database bị Suspect trong WordPress là gì?

Lỗi “Database bị suspect” thường xuất hiện khi SQL Server gặp phải sự cố nghiêm trọng với cơ sở dữ liệu. Khi một cơ sở dữ liệu được đánh dấu là “suspect”, điều này có nghĩa là SQL Server không thể mở cơ sở dữ liệu đó để sử dụng.

Có một số dấu hiệu để nhận biết chúng bao gồm là:

  • Cơ sở dữ liệu không thể kết nối hoặc truy cập.
  • Xuất hiện thông báo lỗi trong SQL Server Management Studio (SSMS) hoặc trong các ứng dụng sử dụng cơ sở dữ liệu.
  • Log lỗi của SQL Server (SQL Server Error Log) chứa các thông báo liên quan đến cơ sở dữ liệu bị suspect.

2. Nguyên nhân gây ra lỗi Database bị suspect trong WordPress?

  • Lỗi phần cứng
  • Sự cố trong quá trình phục hồi
  • Thiếu không gian đĩa
  • File cơ sở dữ liệu bị hỏng
  • Các vấn đề về quyền truy cập

3. Cách sửa lỗi Database bị suspect trong WordPress?

Cách 1:

– Bạn mở Microsoft SQL Server Management Studio và login vào SQL >> Click “New Query” >> Copy và dán đoạn script SQL bên dưới vào SQLQuery…SQL. (Lưu ý: Bạn phải thay “DatabaseName” thành tên database bị gán cờ suspect bạn cần sửa.)

-- sp_resetstatus tắt cờ “suspect”trên cơ sở dữ liệu
EXEC sp_resetstatus [DatabaseName]

--Đánh dấu cơ sở dữ liệu là READ_ONLY, 
--Tắt ghi Log và chỉ giới hạn quyền truy cập cho quyền xử lý hệ thống sysadmin
ALTER DATABASE [DatabaseName] SET EMERGENCY

--Kiểm tra tính logic và vật lý của tất cả các đối tượng trong cơ sở dữ liệu cần xử lý
DBCC checkdb([DatabaseName])

--Câu truy vấn này sẽ xử lý và khôi phục các giao dịch đang hoạt động trên database.
--Đưa CSDL SQL ở chế độ một người sử dụng.
ALTER DATABASE [DatabaseName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB ([DatabaseName], REPAIR_ALLOW_DATA_LOSS)

--Thiết lập lại CSDL cho về trạng thái ban đầu, cho phép login lại bình thường.
ALTER DATABASE [DatabaseName] SET MULTI_USER
Cách 2:

Trường hợp này xảy ra khi bạn đã lỡ detach… database bị suspect ra khỏi SQL Server. Khi đó bạn sẽ không thể attach vào lại như cách bình thường được.

Giả sử database bị suspect có tên là db_test, bạn có thể xử lý như sau:

  • Copy dữ liệu đã bị suspect vào một folder khác
  • Tạo mới 1 database, đặt trùng tên với database đang bị suspect

CREATE DATABASE [db_test];
GO

  • Chuyển database vừa tạo ra sang trạng thái offline

ALTER DATABASE [db_test] SET OFFLINE;
GO

  • Copy database đang bị suspect dán đè lên database mới tạo.
  • Đưa database bị suspect trở lại online

ALTER DATABASE [DemoSuspect] SET ONLINE;
GO

SELECT DATABASEPROPERTYEX (N’ db_test ‘, N’STATUS’);
GO

SQL báo lỗi, kệ nó. Bạn đã attach thành công.

Leave a Reply

Your email address will not be published. Required fields are marked *