Đại lý máy chủ SQL bắt đầu tự chấm dứt


9

Trong tháng qua, một trong những máy chủ của tôi đang gặp vấn đề với SQL Server Agent. Nó tự động dừng với lỗi bên dưới, xảy ra ngẫu nhiên:

Tệp đầu ra tác nhân Sql
[097] Đã phát hiện rò rỉ bộ nhớ [204 byte]
Ngoại lệ 5 bắt gặp ở dòng 403 của tệp e: \ sql9_sp2_t \ sql \ komodo \ src \ core \ sqlagent \ src \ alerter.cpp. SQLServerAgent bắt đầu tự chấm dứt

Tôi đã khắc phục lỗi này nhưng không nhận được nhiều thông tin về nó. Cả SQL Server và Agent đều đang chạy với cùng một tài khoản miền; tuy nhiên, sự cố chỉ xảy ra với dịch vụ SQL Server Agent.

Tôi cũng không thể thấy dịch vụ SQL Server Agent trong Trình quản lý cấu hình máy chủ SQL. Tôi đã kiểm tra nhật ký lỗi Máy chủ SQL và Nhật ký Trình xem sự kiện của Windows, nhưng không thấy bất kỳ hoạt động đáng ngờ nào.

Cài đặt bộ nhớ của tôi được cấu hình chính xác. Máy chủ có 32GB RAM và SQL Server được chỉ định để sử dụng bộ nhớ tối đa 26GB.

Chi tiết hệ thống:

  • Phiên bản SQL Server 2012 SP2 Std 11.0.5058 64 bit
  • Phiên bản Windows Server 2008 R2 Ent 64 bit
  • Dành riêng cho SQL Server (không có ứng dụng nào khác chạy trên máy chủ)
  • Máy chủ đã được nâng cấp vài tháng trước từ SQL Server 2005 EE lên 2012 SE.
  • Chúng tôi không sử dụng Máy chủ chuyển tiếp sự kiện .

Tôi đã kiểm tra sở dữ liệu msdb . Ran checkdb trên nó và nó đã hoàn thành thành công mà không có bất kỳ lỗi nào. Tôi cần sự giúp đỡ của bạn trong việc sửa chữa hai điều:

  1. Để sửa lỗi dừng ngẫu nhiên của dịch vụ SQL Server Agent
  2. Để thêm dịch vụ SQL Server Agent trong Trình quản lý cấu hình máy chủ SQL

Chúng tôi có phần mềm của bên thứ ba để theo dõi, vì vậy chúng tôi sẽ được thông báo ngay lập tức nếu dịch vụ đại lý dừng lại. Để bây giờ chúng tôi chỉ khởi động lại dịch vụ. Nhưng chúng tôi muốn tìm ra nguyên nhân gốc rễ.

Tôi đã chạy truy vấn sau được đề xuất bởi Sean Gallardy và nhận lại 95 hàng. Tôi không biết làm thế nào để giải thích kết quả.

select * 
from sys.dm_os_loaded_modules 
where name not like '%microsoft%'

Thật không may, tôi không thể đăng kết quả vì lý do bảo mật.

Cho đến khi tôi tìm ra giải pháp cho vấn đề này, tôi đã thêm các lần thử lại vào SQL Server Agent để nó có thể tự động khởi động lại khi nó bị dừng.


Khi tác nhân bị giết, bạn có thể vào máy chủ và kiểm tra việc sử dụng tệp trang không? Có các mục Kết nối về việc này được gây ra do cạn kiệt tệp trang bởi các ứng dụng khác nhau (bao gồm HyperBac).
Cody Konior

Tôi sẽ kiểm tra xem khi nó xảy ra lần nữa.
SQLPRODDBA

Khi bạn nâng cấp từ SQL Server 2005 EE lên SQL Server 2012 SE, bạn đã thực hiện nâng cấp tại chỗ chưa? Hay bạn đã thực hiện một phần hoàn toàn mới của SQL Server? Tôi hỏi bởi vì vào đầu những năm 2000, tôi đã gặp một vài lỗi với các nâng cấp tại chỗ đã được giải quyết bằng cách xóa hoàn toàn thư mục và cài đặt lại SQL Server trong một thư mục trống. (Vâng, đó là một sự phiền toái.)
RLF

Câu trả lời:


1

Do gần đây bạn đã nâng cấp vài tháng trước từ SQL Server 2005 EE lên 2012 SE, bạn nên lưu lại và xóa nhật ký sự kiện vì SqlAgent có thể bị sập khi thấy ID Nhật ký sự kiện từ bản dựng SQL Server cũ hơn. Ví dụ: Tác nhân có thể gặp sự cố vì nó đọc một sự kiện được ghi bởi bản dựng Máy chủ SQL sớm hơn bản dựng hiện tại, chỉ chứa dữ liệu với MỘT chuỗi chèn và tác nhân sẽ cố gắng định dạng nó bằng thông tin tài nguyên mới nhất yêu cầu chuỗi TWO. Điều này sẽ dẫn đến rò rỉ bộ nhớ ngắn ngay trước khi nó tắt do bộ đệm được phân bổ cho chuỗi mà nó đang cố in khi xảy ra sự cố.

Theo như dịch vụ đại lý không được liệt kê trong trình quản lý cấu hình, có nhiều khả năng: https://support.microsoft.com/en-us/kb/941823

Đảm bảo bạn đang chạy Trình quản lý cấu hình 2012

Bạn có thể thử xây dựng lại Kho lưu trữ WMI: https://bloss.technet.microsoft.com/askperf/2009/04/13/wmi-rebuilding-the-wmi-reposeective/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.