Trong tệp nhật ký lỗi Máy chủ SQL, tôi tìm thấy các dòng sau:
2018-02-22 14:10:58.95 spid17s Starting up database 'msdb'.
2018-02-22 14:10:58.95 spid16s Starting up database 'ReportServer'.
2018-02-22 14:10:58.95 spid18s Starting up database 'ReportServerTempDB'.
2018-02-22 14:10:58.95 spid19s Starting up database 'XYZ'.
Nếu tôi kiểm tra trạng thái của cơ sở dữ liệu XYZ trước thời điểm này, thì nó đang ONLINE
sử dụng câu lệnh sau:
SELECT state_desc FROM sys.databases WHERE name='XYZ'
... nhưng khi tôi cố gắng kết nối với cơ sở dữ liệu này bằng ứng dụng C #, nó không thể kết nối với cơ sở dữ liệu.
Lỗi là:
Đăng nhập thất bại cho người dùng 'asd'.
Lý do: Không thể mở cơ sở dữ liệu được chỉ định rõ ràng.
Tôi đã thử ba người dùng khác nhau (người dùng Windows, sa, người dùng SQL Server được xác định cho ứng dụng). Sự cố xảy ra khi tôi chạy ứng dụng khi khởi động HĐH, nhưng nếu tôi khởi động thủ công sau khi khởi động thì không có lỗi xảy ra, vì vậy tôi nghĩ rằng tất cả các cài đặt SQL Server và cài đặt tường lửa đều đúng.
Tôi cũng đã kiểm tra trước rằng trạng thái dịch vụ đang chạy.
Những gì khác tôi nên kiểm tra để đảm bảo cơ sở dữ liệu thực sự trực tuyến và sẵn sàng cho các truy vấn?
Tôi đang tìm một khóa cho tôi biết rằng bạn có thể truy vấn cơ sở dữ liệu, thay vì trì hoãn một thời gian (thậm chí không dựa trên một lý do rõ ràng).
Tôi đã nghĩ đến việc quét nhật ký lỗi cho văn bản "Khởi động cơ sở dữ liệu 'XYZ'", nhưng điều này có nghĩa là tôi phải thêm một cài đặt cho ứng dụng cho đường dẫn của nhật ký lỗi SQL Server. Nó cũng có nghĩa là đọc tệp nhiều lần cho đến khi tôi tìm thấy cụm từ này.