Tôi biết có những câu hỏi giải quyết vấn đề cơ sở dữ liệu bị kẹt trong RESTORING
trạng thái và đã sử dụng các giải pháp đó để tự đưa cơ sở dữ liệu trở lại trực tuyến, nhưng kịch bản của tôi có hơi khác.
Tôi có khôi phục tự động bằng cách sử dụng tập lệnh Powershell để khôi phục bản sao sản xuất cho phiên bản DEV. Các tập lệnh không thay đổi trong khoảng một năm và đôi khi quá trình khôi phục kết thúc nhưng cơ sở dữ liệu được khôi phục bị kẹt ở RESTORING
trạng thái (đôi khi tập lệnh hoạt động tốt, đôi khi nó bị lỗi như thế này).
Mỗi lần nếu tôi tự chạy lại quy trình thì nó hoạt động hoặc nếu tôi khôi phục thủ công cơ sở dữ liệu từ giao diện người dùng của SSMS hoặc thông qua T-SQL thì nó hoàn thành mà không gặp vấn đề gì.
Tôi đã tìm thấy câu trả lời được khuyến nghị để chạy CHECKDB
trên DB được khôi phục nhưng không có gì xuất hiện do nguyên nhân của vấn đề này.
Vì các tập lệnh khôi phục khôi phục bản sao lưu đầy đủ của cơ sở dữ liệu và sử dụng một "WITH RECOVERY"
tùy chọn, tôi đang cố gắng tìm hiểu điều gì có thể dừng quá trình khôi phục, mặc dù tôi thực sự đang khôi phục nó bằng cách sử dụng "WITH RECOVERY"
.
Bất kỳ đề xuất nào cũng thực sự được đánh giá cao vì tôi cố gắng hiểu tại sao điều này lại xảy ra theo thời gian.
Tôi rất muốn giải quyết nguyên nhân gốc rễ của vấn đề thay vì điều trị các triệu chứng, đó là khôi phục lại DB một cách thủ công một lần nữa.
Cập nhật:
Github Gist như @Brent khuyên dùng - tại đây .
EXEC sys.xp_readerrorlog 0,1;
- tìm thông báo trong khoảng thời gian thao tác khôi phục.