KB2640027 - KHẮC PHỤC: Tác nhân SQL Server công việc không thành công nếu bạn đặt loại lịch trình công việc dưới dạng "Tự động bắt đầu khi Tác nhân SQL Server bắt đầu" trong SQL Server 2008 SP2, SQL Server 2008 SP3, SQL Server 2008 R2 SP1 hoặc SQL Server 2008 R2 SP2

Áp dụng cho
SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Service Pack 2 SQL Server 2008 Service Pack 3 SQL Server 2008 Standard SQL Server 2008 R2 Service Pack 2

Microsoft phân phối các bản sửa lỗi Microsoft SQL Server 2008 SP2 dưới dạng một tệp có thể tải xuống. Vì các bản sửa lỗi được tích lũy, mỗi bản phát hành mới đều chứa tất cả các bản hotfix và tất cả bản sửa lỗi bảo mật được tích hợp với bản phát hành sửa lỗi SQL Server 2008 SP2 trước đó.

Triệu chứng

Hãy cân nhắc các trường hợp sau:

  • Bạn thực hiện một trong những thao tác sau

    • Cài đặt Bản cập nhật tích lũy 2 cho Microsoft SQL Server 2008 Gói Dịch vụ 2 (SP2) hoặc phiên bản mới hơn của gói cập nhật tích lũy
    • Nâng cấp SQL Server 2008 lên SQL Server 2008 Gói Dịch vụ 3 (SP3)
    • Nâng cấp SQL Server 2008 R2 lên SQL Server 2008 R2 Gói Dịch vụ 1 (SP1) hoặc phiên bản gói dịch vụ mới hơn
  • Bạn tạo một công việc Tác nhân SQL Server trên cơ sở dữ liệu người dùng và bạn đặt loại lịch biểu là Bắt đầu tự động khi Tác nhân SQL Server khởi động.

  • Bạn khởi động lại dịch vụ SQL Server.

Trong kịch bản này, công việc Tác nhân SQL Server không thành công.

Nguyên nhân

Sự cố này xảy ra do cơ sở dữ liệu người dùng chưa được khôi phục xong khi công việc bắt đầu. Sau khi bạn cài đặt Bản cập nhật Tích lũy 2 cho SQL Server 2008 SP2 hoặc nâng cấp SQL Server 2008 lên SQL Server 2008 SP3 hoặc nâng cấp SQL Server 2008 R2 lên SQL Server 2008 R2 SP1, Tác nhân SQL Server sẽ khởi động ngay sau khi cơ sở dữ liệu MSDB hoàn tất khôi phục.

Lưu ý: Tác nhân SQL Server nên khởi động sau khi tất cả các cơ sở dữ liệu đã được khôi phục.

Giải pháp

SQL Server 2008 R2 Gói Dịch vụ 1

Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật tích lũy 9. Để biết thêm thông tin về cách lấy gói cập nhật tích lũy này cho SQL Server 2008 R2 Gói Dịch vụ 1, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

2756574 Gói cập nhật tích lũy 9 cho SQL Server 2008 R2 Gói Dịch vụ 1Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các bản hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành bản sửa lỗi SQL Server 2008 R2 Gói Dịch vụ 1 trước đó. Chúng tôi khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

2567616 Các bản dựng SQL Server 2008 R2 được phát hành sau khi SQL Server 2008 R2 Gói Dịch vụ 1 được phát hành

SQL Server 2008 Gói Dịch vụ 3

Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật Tích lũy 7 cho SQL Server 2008 Gói Dịch vụ 3. Để biết thêm thông tin về cách lấy gói cập nhật tích lũy này, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

2738350 Gói Cập nhật Tích lũy 7 cho SQL Server 2008 Gói Dịch vụ 3Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành bản sửa lỗi SQL Server 2008 Service Pack 3 trước đó. Chúng tôi khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

2629969 Các bản dựng SQL Server 2008 được phát hành sau khi SQL Server 2008 Gói Dịch vụ 3 được phát hành

Cập nhật Tích lũy 8 cho SQL Server 2008 Gói Dịch vụ 2

Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật Tích lũy 8 dành cho SQL Server 2008 Gói Dịch vụ 2. Để biết thêm thông tin về cách lấy gói cập nhật tích lũy này cho SQL Server 2008 Gói Dịch vụ 2, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

2648096 Gói cập nhật tích lũy 8 cho SQL Server 2008 Gói Dịch vụ 2Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành bản sửa lỗi SQL Server 2008 Service Pack 2 trước đó. Chúng tôi khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

2402659 Các bản dựng SQL Server 2008 được phát hành sau khi SQL Server 2008 Gói Dịch vụ 2 được phát hành

SQL Server 2008 R2 Gói Dịch vụ 2

Bản sửa lỗi cho sự cố này được phát hành lần đầu trong Bản cập nhật tích lũy 2 dành cho SQL Server 2008 R2 Gói Dịch vụ 2. Để biết thêm thông tin về cách lấy gói cập nhật tích lũy này, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

2740411 Gói Cập nhật Tích lũy 2 cho SQL Server 2008 R2 Gói Dịch vụ 2Lưu ý Vì các bản dựng được tích lũy, mỗi bản phát hành bản sửa lỗi mới đều chứa tất cả các bản hotfix và tất cả bản sửa lỗi bảo mật có trong bản phát hành bản sửa lỗi SQL Server 2008 R2 trước đó. Chúng tôi khuyên bạn nên cân nhắc áp dụng bản phát hành bản sửa lỗi gần đây nhất có chứa hotfix này. Để biết thêm thông tin, hãy bấm vào số bài viết sau đây để xem bài viết trong Cơ sở Kiến thức Microsoft:

2730301 Các bản dựng SQL Server 2008 R2 được phát hành sau khi SQL Server 2008 R2 Gói Dịch vụ 2 được phát hành

Thông tin khóa đăng ký

Quan trọng Phần, phương pháp hoặc tác vụ này chứa các bước chỉ dẫn bạn cách sửa đổi sổ đăng ký. Tuy nhiên,việc sửa đổi sổ đăng ký không đúng cách có thể dẫn đến các sự cố nghiêm trọng. Do đó, hãy đảm bảo rằng bạn làm theo các bước sau đây một cách cẩn thận. Để bảo vệ tốt hơn, hãy sao lưu sổ đăng ký trước khi bạn sửa đổi. Sau đó, bạn có thể khôi phục sổ đăng ký nếu có sự cố xảy ra. Để biết thêm thông tin về cách sao lưu và khôi phục sổ đăng ký, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

322756 Cách sao lưu và khôi phục sổ đăng ký trong WindowsSau khi áp dụng hotfix này, trước tiên bạn phải khởi động lại dịch vụ Tác nhân SQL Server cho phiên bản bị ảnh hưởng. Khóa đăng ký RecoveredDatabasesForAgentStartup mới được tạo khi dịch vụ khởi động lại. Khóa đăng ký này xác định liệu Tác nhân SQL Server có chờ quá trình phục hồi cơ sở dữ liệu Người dùng hoàn tất trước khi bắt đầu công việc Tác nhân SQL Server hay không.

Để giúp chúng tôi đặt cấu hình khóa đăng ký này cho bạn, hãy chuyển đến phần "Khắc phục sự cố giúp tôi". Nếu bạn muốn tự mình cấu hình khóa đăng ký này, hãy đi tới phần "Để tôi tự khắc phục sự cố".

Sửa hộ tôi

            
Để tự động cấu hình khóa đăng ký này, hãy bấm vào nút hoặc liên kết Sửa lỗi . Sau đó bấm Chạy trong hộp thoại Tải tệp xuống , rồi làm theo các bước trong trình hướng dẫn Khắc phục sự cố.

            
Ghi chú

  • Trước khi chạy giải pháp Sửa lỗi này, bạn phải cài đặt hotfix được mô tả trong bài viết Cơ sở Tri thức Microsoft (KB) 2648096. Sau đó, bạn phải khởi động lại dịch vụ Tác nhân SQL Server cho phiên bản bị ảnh hưởng.
  • Trình hướng dẫn này có thể chỉ có bằng tiếng Anh. Tuy nhiên, bản sửa lỗi tự động cũng sẽ hoạt động với các phiên bản Windows bằng ngôn ngữ khác.
  • Nếu bạn hiện không làm việc trên máy tính có sự cố, hãy lưu giải pháp Khắc phục sự cố vào ổ đĩa flash hoặc CD rồi chạy trên máy tính gặp sự cố.

Sau đó, đi tới mục "Giải pháp này có khắc phục được sự cố không?".

Để tôi tự khắc phục sự cố

Để cấu hình khóa đăng ký RecoveredDatabasesForAgentStartup, hãy làm theo các bước sau:

  1. Bấm vào Bắt đầu, bấm Chạy, nhập regedit vào hộp Mở , sau đó bấm OK.

  2. Tìm rồi bấm vào khóa con đăng ký sau:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.instance\SQLServerAgent\

  3. Trong ngăn Chi tiết , bấm chuột phải vào RecoveredDatabasesForAgentStartup, rồi bấm Sửa đổi.

  4. Trong hộp dữ liệu Giá trị , nhập ALL.

    Lưu ý: Giá trị mặc định của mục đăng ký RecoveredDatabasesForAgentStartup là MSDB.

  5. Thoát khỏi Trình soạn thảo Sổ đăng ký.

Lưu ý Nếu bạn đặt giá trị của mục đăng ký RecoveredDatabasesForAgentStartup thành một giá trị không phải là MSDB hoặc ALL, thông báo cảnh báo sẽ được ghi nhật ký trong nhật ký của Tác nhân SQL Server và Tác nhân SQL Server sẽ chỉ chờ cơ sở dữ liệu MSDB.

Giải pháp này có khắc phục được sự cố không?

  • Kiểm tra xem sự cố đã được khắc phục chưa. Nếu sự cố đã được khắc phục, bạn đã hoàn thành phần này. Nếu sự cố chưa được khắc phục, bạn có thể liên hệ với bộ phận hỗ trợ.
  • Chúng tôi đánh giá cao phản hồi của bạn. Để cung cấp phản hồi hoặc báo cáo bất kỳ sự cố nào với giải pháp này, vui lòng để lại nhận xét trên blog "Khắc phục sự cố cho tôi" hoặc gửi email cho chúng tôi.

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 thay thế

Để tránh sự cố này, hãy thêm một bước vào công việc Tác nhân SQL Server để kiểm tra xem các cơ sở dữ liệu mục tiêu có đang trực tuyến hay không. Bước này nên là bước đầu tiên.

Lưu ý Bạn có thể kiểm tra trạng thái cơ sở dữ liệu bằng cách truy vấn trạng thái cột trong bảng hệ thống sys.databases.