Triệu chứng
Trong quá trình khởi động Microsoft SQL Server 2016 và 2017, nếu người dùng cố gắng kết nối với cơ sở dữ liệu trước khi nó được khởi động, phiên người dùng có thể khiến cơ sở dữ liệu tự động được khởi động. Khi điều này xảy ra, nếu cơ sở dữ liệu chứa FileTable và bật FILESTREAM non_transacted_access thì thư mục FileTable cấp cơ sở dữ liệu sẽ không thể truy nhập được sau khi khởi động cơ sở dữ liệu. Nếu bạn cố truy nhập thư mục thông qua File Explorer, điều đó có thể cho thấy thư mục không khả dụng. Khi bạn chạy lệnh "dir" từ dấu nhắc lệnh, lệnh trả về "The system cannot find the file specified" (Hệ thống không thể tìm thấy tệp được chỉ định).
Ngoài ra, bạn có thể thấy các lỗi sau đây trong nhật ký lỗi cho biết một phiên người dùng đã kích hoạt cơ sở dữ liệu tự động khởi động:
Ngày Giờ Lỗi Đăng nhập: 18456, Mức độ nghiêm trọng: 14, Trạng thái: 38.
Ngày Giờ Đăng nhập không thành công cho người dùng 'Tên người dùng'. Lý do: Không thể mở ' DatabaseName' cơ sở dữ liệu được chỉ định rõ ràng. [MÁY KHÁCH: IPNumber]
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".
Giải pháp
Sự cố này đã được khắc phục trong các bản cập nhật tích lũy sau đây dành cho SQL Server:
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 2017
- Bản cập nhật tích lũy mới nhất cho SQL Server 2016
Giải pháp thay thế
Giải pháp thay thế cho sự cố này là tắt và bật lại non_transacted_access FILESTREAM của cơ sở dữ liệu.
ALTER DATABASE [DatabaseName] SET SINGLE_USER VỚI ROLLBACK IMMEDIATE
ALTER DATABASE [DatabaseName] SET FILESTREAM ( NON_TRANSACTED_ACCESS = OFF )
ALTER DATABASE [DatabaseName] SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL )
ALTER DATABASE [DatabaseName] SET MULTI_USER VỚI ROLLBACK IMMEDIATE
Tham khảo
Tìm hiểu về thuật ngữ mà Microsoft dùng để mô tả các bản cập nhật phần mềm.