7

nềnTheo dõi xuống kết nối cơ sở dữ liệu phát hành

Chúng tôi có một số ứng dụng web trên các máy chủ web khác nhau mà kết nối đến một máy chủ cơ sở dữ liệu duy nhất. Trong vài tháng qua, chúng tôi đã nhận thấy rằng mỗi một lần trong một thời gian, các máy chủ web của chúng tôi sẽ không thể kết nối với máy chủ cơ sở dữ liệu.

Môi trường của chúng tôi

Chúng tôi có một vài môi trường khác nhau web, một số ColdFusion chạy và những người khác chạy NET. Các ứng dụng .NET đều là Web Forms và MVC. Chúng trải rộng nhiều phiên bản từ 2.0 đến 4.5. Cả hai máy chủ web Coldfusion và .NET đều là các máy dựa trên windows. Cả hai môi trường web ColdFusion và .NET đều được nhóm lại và một số máy là vật lý trong khi các máy khác là ảo.

Máy chủ cơ sở dữ liệu của chúng tôi là SQL Server 2008 r2. Nó chứa nhiều cơ sở dữ liệu. Mỗi ứng dụng có người dùng cơ sở dữ liệu riêng của nó mà nó kết nối với máy chủ mà chỉ cho phép nó truy cập vào một cơ sở dữ liệu cụ thể.

kiện khác

  • Khi chúng tôi nhận thấy vấn đề này, chúng xảy ra trong thời gian rất ngắn mà kéo dài từ một vài giây đến vài phút.
  • Khi chúng tôi nhận thấy sự cố, cụm từ chứa nhiều lỗi khác nhau, không chỉ là một ứng dụng vào thời điểm đó.
  • Khi chúng tôi nhận thấy sự cố, cụm từ có chứa lỗi từ các ứng dụng từ các môi trường web khác nhau. (Điều này khiến chúng tôi nghĩ rằng chúng tôi có thể loại trừ rằng bản thân ứng dụng là vấn đề)
  • Sự cố kết nối xảy ra vào các thời điểm khác nhau trong ngày và đêm. Họ không phải luôn luôn trong thời gian sử dụng cao.
  • Chúng tôi đã theo dõi những thứ như số lượng kết nối người dùng, bộ nhớ, IO, mức sử dụng CPU, v.v ... và chúng tôi chưa thấy các lỗi hoặc bất kỳ điều gì khác có thể trỏ đến sự cố.
  • Chúng tôi đã cài đặt wireshark trên web và máy chủ db với hy vọng bắt được sự cố mà không thành công.

Câu hỏi

  1. Có ai có đề xuất về nơi tôi nên xem xét tiếp theo?
  2. Có thuộc tính nào của cơ sở dữ liệu có thể gây ra điều này không?
  3. Có cách nào để "giám sát" kết nối giữa cơ sở dữ liệu và máy chủ web theo cách tốt hơn không?
  4. Có điều gì có thể được thực hiện ở phía ứng dụng để hiểu rõ hơn những gì đang xảy ra không?

lỗi Caught bởi Apps

  • lỗi NET
    • Một liên quan đến mạng hoặc xảy ra lỗi dụ cụ thể trong khi thiết lập kết nối đến SQL Server. Máy chủ này không tìm thấy hoặc không thể truy cập được.Xác minh rằng tên cá thể là chính xác và SQL Server được cấu hình để cho phép các kết nối từ xa. (nhà cung cấp: Nhà cung cấp Ống có tên, lỗi: 40 - Không thể mở kết nối với SQL Server)
    • Hết giờ hết hạn. Khoảng thời gian chờ trôi qua trước khi hoàn thành thao tác hoặc máy chủ không phản hồi.
    • Đã xảy ra lỗi khi vận chuyển khi nhận kết quả từ máy chủ. (nhà cung cấp: Nhà cung cấp TCP, lỗi: 0 - Thời gian hết hạn semaphore đã hết hạn.)
    • Hết giờ hết hạn. Khoảng thời gian chờ đã trôi qua trước khi có kết nối từ hồ bơi. Điều này có thể xảy ra vì tất cả các kết nối được gộp lại đã được sử dụng và đạt đến kích thước hồ bơi tối đa.
  • lỗi ColdFusion
    • Lỗi Thi công cơ sở dữ liệu truy vấn. Kết nối TCP/IP tới máy chủ không thành công. java.net.ConnectException: Kết nối đã hết thời gian: kết nối
      Đã xảy ra lỗi trên dòng 38.
    • Lỗi Thực thi Truy vấn Cơ sở dữ liệu. Thiết lập lại kết nối theo peer: lỗi ghi ổ cắm
      Lỗi xảy ra trên dòng 91.
    • Lỗi thực hiện truy vấn cơ sở dữ liệu. Timed out cố gắng để thiết lập kết nối
      Các lỗi xảy ra trên dòng 38.
+1

Nghe có vẻ giống như sự cố kết nối mạng hơn là vấn đề cơ sở dữ liệu. –

+0

Điều này thực sự giống như vấn đề mạng với NIC, switch, bộ định tuyến, cáp, v.v. –

+0

Điều gì sẽ là cách tốt nhất để * biết * để chắc chắn hoặc theo dõi nó? – Jason

Trả lời

1

Trong CF, tôi đã từng có một vấn đề như những gì bạn đang nhìn thấy. Tôi đã có CF trên 1 máy chủ, và sql 2008 r2 trên máy chủ khác. Tôi sẽ thấy các lỗi CF như bạn đã đăng bên dưới. Để giúp theo dõi nó vào một lỗi mạng, tôi đã viết một cái gì đó như thế này:

1) tạo ra một down.bat

tracert serverip

2) sau đó tôi đặt một xung quanh truy vấn.

Khi truy vấn tạo ra lỗi tôi sẽ thực hiện

<cfmail to="ME" from="Server" subject="SQL DOWN"> 

    Server Debugging Info: 
    ------------------------------------------------------------  
    #now()# 

    #cfcatch.Detail# 

    #cfcatch.Message# 

    #log#   

    </cfmail> 

này đã giúp tôi tự khắc phục hoàn cảnh của tôi mà kết thúc lên được phần cứng tại trung tâm dữ liệu.

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