Triệu chứng
Trong khi khởi động Microsoft SQL Server, bạn sẽ nhận thấy một hoặc nhiều hiện tượng sau đây ngay sau khi quá trình khôi phục cơ sở dữ liệu hoàn tất và các kết nối máy khách được bật.
Triệu chứng 1
Bạn nhận được thông báo lỗi và xác nhận giống như sau trong nhật ký lỗi SQL Server của bạn:
Lưu ý
2014-12-13 08:03:34.85 spid24s Sử dụng 'dbghelp.dll' phiên bản '4.0.5'
2014-12-13 08:03:34.85 spid24s **Luồng kết xuất - spid = 0, EC = 0x0000000082274B20
2014-12-13 08:03:34.85 spid24s ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0001.txt
2014-12-13 08:03:34.85 SPID24s * *******************************************************************************
2014-12-13 08:03:34.85 SPID24s *
2014-12-13 08:03:34.85 spid24s * BẮT ĐẦU NGĂN XẾP KẾT XUẤT:
2014-12-13 08:03:34.85 SPID24s * 13/12/14 08:03:34 SPID 24
2014-12-13 08:03:34.85 SPID24s *
2014-12-13 08:03:34.85 spid24s * Vị trí: ghost.cpp:1742
2014-12-13 08:03:34.85 spid24s * Biểu thức: tcln1 != NULL
2014-12-13 08:03:34.85 SPID24s * SPID: 24
2014-12-13 08:03:34.85 spid24s * ID Quy trình: 35444
2014-12-13 08:03:34.85 SPID24s *
2014-12-13 08:03:35.47 Lỗi SPID24s: 17066, Mức độ nghiêm trọng: 16, Trạng thái: 1.
2014-12-13 08:03:35.47 SPID24s SQL Server Khẳng định: Tệp: <ghost.cpp>, line=1742 Khẳng định không thành công = 'tcln1 != NULL'. Lỗi này có thể liên quan đến thời gian. Nếu lỗi vẫn tồn tại sau khi chạy lại câu lệnh, hãy sử dụng DBCC CHECKDB để kiểm tra tính toàn vẹn cấu trúc của cơ sở dữ liệu hoặc khởi động lại máy chủ để đảm bảo cấu trúc dữ liệu trong bộ nhớ không bị hỏng.
Triệu chứng 2
Bạn nhận được thông báo lỗi và ngoại lệ giống như sau trong nhật ký lỗi SQL Server của bạn:
Lưu ý
2014-12-13 12:38:30.25 SPID51 Sử dụng 'dbghelp.dll' phiên bản '4.0.5'
2014-12-13 12:38:30.25 spid51 ***Stack Dump đang được gửi đến C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQL2008R2\MSSQL\LOG\SQLDump0003.txt
2014-12-13 12:38:30.25 spid51 SqlDumpExceptionHandler: Quy trình 51 đã tạo ra ngoại lệ nghiêm trọng c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server sắp chấm dứt quá trình này.
2014-12-13 12:38:30.25 SPID51 * *******************************************************************************
2014-12-13 12:38:30.25 SPID51 *
2014-12-13 12:38:30.25 spid51 * BẮT ĐẦU KẾT XUẤT NGĂN XẾP:
2014-12-13 12:38:30.25 SPID51 * 13/12/14 12:38:30 SPID 51
2014-12-13 12:38:30.25 SPID51 *
2014-12-13 12:38:30.25 SPID51 *
2014-12-13 12:38:30.25 SPID51 * Địa chỉ ngoại lệ = 000000000030D47C Module(sqlservr+00000000000FD47C)
2014-12-13 12:38:30.25 spid51 * Mã ngoại lệ = c0000005 EXCEPTION_ACCESS_VIOLATION
2014-12-13 12:38:30.25 SPID51 * Đã xảy ra Vi phạm truy cập khi đọc địa chỉ FFFFFFFFFFFFFFFFFFFF
2014-12-13 12:38:30.25 SPID51 * Bộ đệm đầu vào 54 byte -
2014-12-13 12:38:30.25 spid51 * exec usp_select1
2014-12-13 12:38:30.77 Lỗi máy chủ: 17310, Mức độ nghiêm trọng: 20, Trạng thái: 1.
2014-12-13 12:38:30.77 Máy chủ Yêu cầu của người dùng từ phiên với SPID 51 đã tạo ra một ngoại lệ nghiêm trọng. SQL Server sẽ kết thúc phiên này. Liên hệ với Dịch vụ Hỗ trợ Sản phẩm với kết xuất được tạo trong thư mục nhật ký.
Vi phạm Truy nhập sẽ có ngăn xếp cuộc gọi sau đây:
sqlservr! TaskGhostCleanup::IsHashed+0x8d
sqlservr! TaskGhostCleanup::Enqueue+0x32
sqlservr! IndexRowScanner::MoveToRowOnNextPage+0x9c
sqlservr! IndexDataSetSession::GetNextRowValuesInternal+0x11cb
Triệu chứng 3
Sau khi nhận được thông báo được đề cập trong các phần triệu chứng trước, bạn sẽ nhận được thông báo sau trong nhật ký lỗi SQL Server:
Lưu ý
2014-12-13 08:04:53.37 Tiến trình Máy chủ 0:0:0 (0x23c8) 0x000000002880C1A0 công nhân dường như không nhường bộ trên Bộ lập lịch 23. Thời gian tạo chuỗi: 13062953007877. CPU chủ đề gần đúng được sử dụng: kernel 0 ms, người dùng 0 ms. Sử dụng quy trình 0%. Hệ thống không hoạt động 88%. Khoảng thời gian: 70013 ms.
2014-12-13 08:04:53.37 Quy trình Máy chủ 0:0:0 (0x71d8) 0x000000002A8D21A0 công nhân dường như không nhường bộ trên Bộ lập lịch 30. Thời gian tạo chuỗi: 13062953007891. CPU chủ đề gần đúng được sử dụng: kernel 0 ms, người dùng 0 ms. Sử dụng quy trình 0%. Hệ thống không hoạt động 88%. Khoảng thời gian: 70013 ms.
2014-12-13 08:04:53.38 Máy chủ ***Unable to get thread context for spid 0
2014-12-13 08:04:53.38 Máy chủ * *******************************************************************************
2014-12-13 08:04:53.38 Máy chủ *
2014-12-13 08:04:53.38 Máy chủ * BẮT ĐẦU NGĂN XẾP KẾT XUẤT:
2014-12-13 08:04:53.38 Máy chủ * 13/12/14 08:04:53 SPID 29488
2014-12-13 08:04:53.38 Máy chủ *
2014-12-13 08:04:53.38 Máy chủ * Bộ lập lịch không nhường
2014-12-13 08:04:53.38 Máy chủ *
2014-12-13 08:04:53.38 Máy chủ * *******************************************************************************
2014-12-13 08:04:53.38 Chữ ký ngăn xếp máy chủ cho kết xuất được 0x0000000000000341
2014-12-13 08:04:55.43 Máy chủ Quy trình kết xuất bên ngoài trả về mã 0x20000001. Quy trình kết xuất bên ngoài không trả về lỗi nào.
2014-12-13 08:04:55.43 Tiến trình Máy chủ 0:0:0 (0x9358) 0x0000000081CE41A0 công việc dường như không nhường bộ trên Bộ lập lịch 4. Thời gian tạo chuỗi: 13062953009701. CPU chủ đề xấp xỉ được sử dụng: kernel 0 ms, người dùng 15 ms. Sử dụng quy trình 0%. Hệ thống không hoạt động 88%. Khoảng thời gian: 70011 ms.
SQL Server có thể không phản hồi yêu cầu của người dùng tại thời điểm này. Nếu rơi vào trường hợp này, bạn phải khởi động lại dịch vụ để khắc phục tình huống.
Nguyên nhân
Sự cố này xảy ra vì các truy vấn người dùng cố gắng sử dụng hàng đợi dọn dẹp bản sao trước khi quy trình này được khởi tạo đầy đủ.
Giải pháp
Thông tin gói dịch vụ
Để giải quyết sự cố này, hãy tải xuống Gói dịch vụ 1 cho SQL Server 2014.
Để biết thêm thông tin về SQL Server 2014 Gói Dịch vụ 1 (SP1), hãy xem các lỗi được sửa trong SQL Server 2014 Gói Dịch vụ 1.
Hotfix dành cho SQL Server 2008 SP4
Để giải quyết sự cố này, hãy áp dụng KB 3034373: Gói cập nhật hotfix theo yêu cầu đã sẵn dùng cho SQL Server 2008 SP4.
Hotfix cho SQL Server 2008 R2 SP3
Để giải quyết sự cố này, hãy áp dụng KB 3033860: Đã có gói cập nhật hotfix theo yêu cầu dành cho SQL Server 2008 R2 SP3 .
Thông tin cập nhật tích lũy
Cải tiến tính năng được giới thiệu trong bản cập nhật tích lũy tiếp theo của SQL Server.
Cập nhật Tích lũy 6 cho SQL Server 2014 /en-us/help/3031047
Bản cập nhật tích lũy 4 cho SQL Server 2012 SP2 /en-us/help/3007556
Cập nhật tích lũy 14 cho SQL Server 2012 SP1 /en-us/help/3023636
Giới thiệu về các bản cập nhật tích lũy cho SQL Server
Mỗi bản cập nhật tích lũy mới dành cho SQL Server chứa tất cả các bản sửa lỗi nóng và bản sửa lỗi bảo mật được tích hợp trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất cho SQL Server:
- Bản cập nhật tích lũy mới nhất cho SQL Server 2014
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP2
- Bản cập nhật tích lũy mới nhất cho SQL Server 2012 SP1
Giải pháp thay thế
Để khắc phục sự cố này, hãy làm theo các bước sau:
- Đặt cấu hình -T669 làm tham số khởi động. Cờ theo dõi này ngăn các truy vấn người dùng xếp hàng yêu cầu đối với quy trình dọn dẹp ma.
- Thiết lập cảnh báo Tác nhân SQL Server để kích hoạt công việc trên SQL Thông báo 3408. Ví dụ, thiết lập cảnh báo sau đây:
Khôi phục hoàn tất. Đây chỉ là thông báo mang tính chất cung cấp thông tin. Không cần người dùng hành động nào. - Bên trong công việc này, hãy chạy tập lệnh TSQL để chờ từ 5 đến 10 phút, rồi chạy lệnh DBCC TRACEOFF (669,-1).
Quy trình này sẽ đảm bảo rằng cờ theo dõi này chỉ hoạt động trong khi khởi động SQL Server. Việc sử dụng cờ theo dõi này không ảnh hưởng đến chức năng thông thường của quy trình dọn dẹp bóng ngầm nền.
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố với SQL Server và hiện đang điều tra cách khắc phục cho sự cố này. Bài viết Cơ sở Kiến thức này sẽ được cập nhật với thông tin bổ sung khi có.
Tham khảo
Bên trong Công cụ lưu trữ: Dọn dẹp ma chuyên sâu
Cảnh báo
sp_add_alert (Transact-SQL)
DBCC TRACEOFF (Transact-SQL)
Cờ Theo dõi
Tùy chọn Khởi động Công cụ Cơ sở dữ liệu