Cơ sở dữ liệu SQL Server nghi ngờ


40

Bạn làm gì khi bạn có một cơ sở dữ liệu được đánh dấu là Suspect?

Khôi phục từ bản sao lưu cuối cùng?

Xin tư vấn.

Câu trả lời:


41

Điều đầu tiên là đảm bảo bạn KHÔNG tách rời cơ sở dữ liệu đó.

Khôi phục từ goodbackup được biết đến cuối cùng là tốt. Nếu không, bạn sẽ cần sử dụng chế độ sửa chữa KHẨN CẤP (Tôi giả sử bạn đang chạy SQL 2005 trở lên). Dưới đây là một vài bài viết của Paul Randal về chủ đề này. Đọc cả hai trước khi bạn bắt đầu thực hiện bất kỳ hành động.

Tạo, tách, gắn lại và sửa chữa cơ sở dữ liệu SUSPECT

Sửa chữa chế độ KHẨN CẤP: phương án cuối cùng


5

Có khá nhiều

Nói chung, điều đó có nghĩa là các tệp bị bollixed hoặc bị thiếu hoặc lỗi đĩa hoặc một số lỗi như vậy (Tôi đã thấy một khu vực xấu gây ra điều này).

Các bước của tôi:

  • Đảm bảo tất cả các bản sao lưu đều ở đó
  • Tắt máy chủ SQL
  • chkdsk các đĩa được sử dụng bởi SQL Server (hy vọng không phải là C: của bạn)

Chỉnh sửa: Tôi sẽ làm rõ câu trả lời của tôi

  • nếu dữ liệu quan trọng tôi sẽ có một bản sao lưu
  • thời gian chết trong khi làm hỏng việc sửa chữa và chế độ khẩn cấp là quá lâu đối với tôi

5

Tôi đã viết một số hướng dẫn về điều này cho 2 trường hợp cơ sở dữ liệu nghi ngờ: khi bạn bị mất tệp dữ liệu hoặc tệp nhật ký. Xin vui lòng đọc như sau:


5
Vì vậy, đây là điều: Stack Exchange không hoạt động nếu tất cả những gì bạn đăng là liên kết. Những gì chúng tôi cần bạn làm là tóm tắt nội dung trong các liên kết hoặc tôi sẽ bị buộc phải xóa câu trả lời của bạn (và sau đó bạn mất đại diện và không ai trong chúng tôi muốn điều này xảy ra)
jcolebrand

4

Từ câu hỏi của bạn, có vẻ như bạn có một bản sao lưu. Khôi phục DB từ bản sao lưu tốt sẽ là cách dễ nhất và nhanh nhất để đưa DB của bạn hoạt động và thoát khỏi trạng thái nghi ngờ.


5
Nhưng bạn sẽ mất dữ liệu là bạn không có nhật ký giao dịch.
mrdenny

0

Lời khuyên đầu tiên của tôi là; không bao giờ tách cơ sở dữ liệu nghi ngờ. Khôi phục cơ sở dữ liệu từ bản sao lưu cập nhật là hữu ích. Nếu sao lưu không có sẵn hoặc có vấn đề sau đó, EMERGENCYchế độ có thể hữu ích:

Đặt cơ sở dữ liệu vào chế độ khẩn cấp:

ALTER DATABASE DB_NAME SET EMERGENCY

Bây giờ hãy kiểm tra sự không nhất quán của cơ sở dữ liệu với điều này:

DBCC CHECKDB (‘DB_NAME’)

DBCC CHECKDB Repair cho phép tùy chọn mất dữ liệu là biện pháp cuối cùng. Kết quả có thể là mất dữ liệu, vì vậy tôi không đề xuất chạy nó.

Đồng thời kiểm tra Tài liệu tham khảo 1tài liệu tham khảo 2

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.