2015-05-06 20 views
6

Tôi đã thực hiện rất nhiều nghiên cứu về điều này.SQL RESTORE WITH RECOVERY; Treo tại 100%

Tôi đang cố khôi phục cơ sở dữ liệu với SQL Server 2014 và tiếp tục treo ở mức 100%.

Rất nhiều người cho rằng giải pháp là chỉ cần đảm bảo rằng bạn khôi phục bằng tùy chọn THU HỒI.

Tôi đã thử điều đó và nó vẫn bị treo ở mức 100%. Tôi đã thử qua SSMS Khôi phục hộp thoại và tôi đã cố gắng chạy các câu lệnh SQL sau:

USE [master] 
RESTORE DATABASE [MyDB] 
FROM DISK = N'C:\MyDB_backup_2015_05_05_010004_1506557.bak' 
WITH 
    FILE = 1, 
    MOVE N'MyDB_Data' TO N'F:\MSSQL\DATA\MyDB.mdf', 
    MOVE N'MyDB_Log' TO N'F:\MSSQL\DATA\MyDB_1.ldf', 
    NOUNLOAD, 
    REPLACE, 
    RECOVERY, 
    STATS = 2 
GO 

Khi tôi kiểm tra tình trạng của lệnh qua:

SELECT r.status, r.command, r.wait_type, r.percent_complete 
FROM sys.dm_exec_requests r 
WHERE r.command like '%restore%' or r.command like '%backup%' 

tôi nhận được:

status: suspended 
command: RESTORE DATABASE 
wait_type: BACKUPTHREAD 
percent_complete: 100 

Từ đọc sách của tôi ngụ ý rằng RESTORE đang đợi BACKUP hoàn tất, nhưng không có lệnh BACKUP nào được trả về từ truy vấn của tôi tới sys.dm_exec_requests

EDIT: Sau khi thử lại lần nữa và chạy truy vấn ở trên để xem tiến trình của RESTORE ngay từ đầu, tôi có thể thấy rằng giá trị 'percent_complete' đang tăng đều đặn, mặc dù thực tế là 'trạng thái' vẫn giữ nguyên 'bị tạm ngưng' và 'wait_type' vẫn là 'BACKUPTHREAD'.

Vì vậy, mặc dù nó bị 'tạm ngưng' nhưng thực tế nó vẫn đang thực hiện RESTORE.

Vì vậy, tôi đang thua lỗ ...

Bất kỳ ai có ý tưởng gì về cách chẩn đoán sự cố?

Chúc mừng!

+0

Có thể kiểm tra 'sp_who' và' sp_who2' để biết db nào có bản sao lưu đang chờ xử lý không? – Jaxedin

+0

Không có hàng nào từ sp_who hoặc sp_who2 có chứa cmd 'BACKUP' – JTech

+1

Bạn đã chờ bao lâu? Tệp nhật ký của bạn lớn đến mức nào? Có bao nhiêu VLFs? Trạng thái của cơ sở dữ liệu tại thời điểm sao lưu được thực hiện là gì? Bạn đã thử với cờ theo dõi 3004 và 3014 chưa? (Xem [bài đăng này] (http://www.rdx.com/Blog/dba_tips/2011/03/undocumented-trace-flags-inside-the-restore-process/).) –

Trả lời

3

Khi nó quay ra vấn đề này là có liên quan với môi trường và khá thẳng về phía trước:

Trước hết, tôi đã cố gắng để sao lưu từ một tổ chức phi thu nhỏ trở lại phiên bản của cơ sở dữ liệu gốc.

Kích thước của tệp nhật ký thực sự là một vấn đề đã biết, do đó chúng tôi thường sao lưu từ phiên bản thu gọn của cơ sở dữ liệu.

Vì vậy, nếu có ai gặp sự cố tương tự, hãy thử thu hẹp cơ sở dữ liệu trước và sau đó sao lưu cơ sở dữ liệu và khôi phục từ đó.

Thứ hai, tôi đã cố gắng sao lưu cơ sở dữ liệu sang ổ đĩa ngoài qua USB3. Ngoài ra, thật thú vị, tôi đã xem tiến độ của lệnh khôi phục hoạt động và nó cũng có trạng thái 'bị đình chỉ' với 'wait_type' "BACKUPTHREAD" - ngay cả khi nó vẫn đang tiến triển (như bằng chứng cho thấy tỷ lệ phần trăm hoàn thành ngày càng tăng trong cột percent_complete)! Vì vậy, tôi vẫn bị mất như những gì thats về ...

Nhưng ít nhất tôi có thể khôi phục bản sao lưu của tôi bây giờ :-)

1

tôi đã cùng một vấn đề đó là do kích thước của DB. Mặc dù bản sao lưu hiển thị 9 MB, khi tôi nhấp chuột phải vào DB trong quản lý máy chủ SQL và chọn thuộc tính, kích thước được hiển thị là 25 GB! Những gì tôi đã làm là tôi đã thay đổi DB thành "Simple Recovery", thu nhỏ tệp nhật ký, sao lưu lại và tôi có thể khôi phục ngay bây giờ.

+0

Nếu ai đó đang làm Shink lần đầu tiên: Task-> Shrink ... –

Các vấn đề liên quan