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 bắt đầu, phiên người dùng có thể làm cho cơ sở dữ liệu để tự động bắt đầu. Khi điều này xảy ra, nếu cơ sở dữ liệu có chứa Có thể kích hoạt được non_transacted_access và đã bật filestream, sau đó là cơ sở dữ liệu Danh bạ có thể không truy nhập được sau khi khởi động cơ sở dữ liệu. Nếu bạn tìm cách truy nhập vào thư mục thông qua file Explorer, có thể chỉ ra rằng thư mục đó là không khả dụng. Khi bạn chạy lệnh "DIR" từ dấu nhắc lệnh, nó trả về "hệ thống không thể tìm thấy tệp đã xác đị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 phiên người dùng đã kích hoạt cơ sở dữ liệu để bắt đầu tự động:
DateTime Lỗi đăng nhập: 18456, nghiêm trọng: 14, tiểu bang: 38.
DateTime Đăng nhập đăng nhập không thành công cho tên người dùng '. Lý do: không thể mở cơ sở dữ liệu được xác định rõ ràng '. [Máy khách: Ipnumber]
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Á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 cho SQL Server:
Giới thiệu về 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 cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:
Cách giải quyết
Giải pháp thay thế cho sự cố này là vô hiệu hóa và kích hoạt lại các non_transacted_access FILESTREAM của cơ sở dữ liệu.
THAY đổi cơ sở dữ liệu [Databasename] đặt SINGLE_USER bằng rollback ngay lập tức
THAY đổi cơ sở dữ liệu [Databasename] Set filestream (NON_TRANSACTED_ACCESS = off)
THAY đổi cơ sở dữ liệu [Databasename] Set filestream (NON_TRANSACTED_ACCESS = đầy đủ)
THAY đổi cơ sở dữ liệu [Databasename] đặt MULTI_USER bằng rollback ngay lập tức
Tham khảo
Tìm hiểu về thuật ngữ mà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.