2012-10-17 36 views
9

Tôi có 2 công việc theo lịch trên máy SQL Server 2005 được lên kế hoạch chạy mỗi sáng (khoảng 2:00 sáng). Những công việc đã làm việc tốt (chủ yếu) trong nhiều năm và mặc dù tôi đã có một vài trục trặc mà tôi đã phải làm việc thông qua vấn đề này là hoàn toàn stumping tôi.SSIS: Chỉ cần bắt đầu nhận một "Khóa không hợp lệ để sử dụng ở trạng thái được chỉ định". lỗi trên gói SSIS đã lập lịch của tôi

Hai buổi sáng trước, một trong các gói của tôi bắt đầu báo cáo các lỗi sau:

Executed as user: [Service Acount]. ...n 9.00.4035.00 for 32-bit 
Copyright (C) Microsoft Corp 1984-2005. All rights reserved. 
    Started: 1:15:01 AM Error: 2012-10-17 01:15:03.98 
    Code: 0xC0016016 
    Source: 
     Description: Failed to decrypt protected XML node "DTS:Password" 
     with error 0x8009000B "Key not valid for use in specified state.". 
     You may not be authorized to access this information. This error 
     occurs when there is a cryptographic error. Verify that the 
     correct key is available. End Error Error: 2012-10-17 01:15:03.99 
    Code: 0xC0016016 
    Source: 
     Description: Failed to decrypt protected XML node "DTS:Password" 
     with error 0x8009000B "Key not valid for use in specified state.". 
     You may not be authorized to access this information. This error 
     occurs when there is a cryptographic error. Verify that the 
     correct key is available. End Error Error: 2012-10-17 01:15:04.01 
    Code: 0xC0016016  
Source:  
Description: Failed to ... The package execution fa... The step failed. 

này dường như là một vấn đề phổ biến, tuy nhiên, không ai trong số các khuyến nghị mà tôi đã tìm thấy hoặc áp dụng cho các kịch bản của tôi cũng không ví dụ của tôi dường như phù hợp với hầu hết các trường hợp khác xảy ra điều này. Dưới đây là các chi tiết quan trọng liên quan đến việc triển khai của tôi.

  • Gói này đang xuất dữ liệu từ hệ thống iSeries, sang SQL Server 2005 bảng dữ liệu.
  • Quy trình này hoạt động thành công nhưng vẫn bị rơi trên một, xuất bảng cụ thể. Trong thực tế, nó chạy mà không có bất kỳ rắc rối trong hơn 2 giờ trước khi nó chết. Sau khi kiểm tra tất cả các thuộc tính liên quan với bước này, tôi có thể thấy rằng không có gì khác biệt về bước này so với các bước xuất bảng khác, ngoài việc xuất bảng/cột ánh xạ.
  • Gói ProtectionLevel được đặt thành DontSaveSensitive và thông tin đăng nhập iSeries được lưu trữ trong tệp cấu hình được truy cập bởi SQL Server.
  • Tôi có thể thực hiện bước thất bại trên máy của mình, trong BIDS. Bất kể, nó không hoạt động trên máy chủ, mặc dù máy chủ đang sử dụng cùng một thông tin đăng nhập chính xác.
  • Như tôi đã đề cập, tôi có hai gói. Chúng có hiệu quả giống nhau, ngoại trừ một là xuất dữ liệu từ một cơ sở dữ liệu iSeries và một là xuất dữ liệu gần giống với cấu trúc chính xác từ một iSeries DB khác. Gói đầu tiên không gặp bất kỳ sự cố nào mặc dù nó đang sử dụng thông tin đăng nhập iSeries giống nhau.
  • Để rõ ràng, không có gì trên máy chủ của tôi đã thay đổi trong tháng (mà tôi biết.) vừa mới bắt đầu diễn ra sáng hôm qua.

Bất kỳ mẹo nào hoặc suy nghĩ sẽ hữu ích vô cùng. Xuất khẩu này là cực kỳ quan trọng và nhiều người dùng/người lao động dựa vào dữ liệu này cho công việc hàng ngày của họ.

+1

Mọi cập nhật đã được áp dụng cho máy chủ của bạn? Bạn đã thử lưu gói trực tiếp từ BIDS vào vị trí đích (Save As cung cấp tùy chọn đó) chưa? – rvphx

+0

Tôi không tin rằng bất kỳ bản cập nhật nào đã được đẩy lên Máy chủ (OS). Tôi kiểm soát bất kỳ bản cập nhật cho SQL Server, và tôi đã không được cài đặt bất kỳ. Ngoài ra, tôi xây dựng dự án cục bộ trên máy tính của tôi, sau đó tôi từ xa vào máy SQL Server và nhập nó vào cơ sở dữ liệu (không phải vị trí dựa trên tệp.) – RLH

+0

Bạn đã thử thay đổi mức độ bảo vệ của gói khi bạn nhập nó vào SQL Server? Đôi khi trong khi nhập khẩu các gói, điều đó được điều sai lầm. – rvphx

Trả lời

12

Vâng, tôi ghét phải đăng phản hồi như vậy nhưng tôi đã giải quyết được vấn đề.

Lý do trả lời ngắn gọn tại sao tôi gặp sự cố này là do một trong các trường trong bảng dữ liệu đã được xác định không đúng. Trong trường hợp này, nó được khai báo là decimal (11, 3) và nó phải là decimal (13, 3). Tôi đã không gặp vấn đề này cho đến khi một giá trị được đăng lên bảng không phù hợp với phạm vi (11, 3).

Sự cố này nêu bật một trong những khiếu nại lớn nhất của tôi đối với SSIS. Thỉnh thoảng tôi gặp lỗi thường được ghi lại trên internet. Tôi tìm kiếm thông qua tất cả các bản ghi của mình và tôi cố gắng thiết lập các kịch bản thử nghiệm khác nhau theo giả định rằng thông báo lỗi là trung thực. Tuy nhiên, khi tôi cuối cùng giải quyết vấn đề, nó hoàn toàn không liên quan đến thông báo lỗi được ghi vào tệp nhật ký.

Trong trường hợp này, lỗi được đề cập ở trên hoàn toàn không liên quan gì đến vấn đề này ?! Trong thực tế, tôi đã rất may mắn khi thấy vấn đề. Tôi biết bản cập nhật trên bảng của tôi có thể là bản sửa lỗi tiềm năng vì Tôi đã thấy SSIS giao tiếp sai như thế này trước.

Tôi muốn đổ lỗi cho neutrino từ việc đánh bom không gian máy chủ của tôi nhưng tốt nhất là thử và giải quyết các vấn đề SSIS của bạn dựa trên lời khuyên của người khác, tuy nhiên. không giúp đỡ, nhận ra vấn đề có thể không liên quan đến thông báo lỗi SSIS và kiểm tra mọi thứ liên quan đến điểm hỏng hóc.

+2

Wow..Tôi chưa bao giờ mong đợi một vấn đề kiểu dữ liệu gây ra vấn đề đó. Nó vẫn không có ý nghĩa gì với tôi nhưng tôi sẽ ghi nhớ điều này. Cảm ơn bạn đã chia sẻ tìm kiếm của mình. – rvphx

+0

rvphx: tốt, như tôi đã tóm tắt, việc lấy đi không phải là một missmatch kiểu dữ liệu là nguyên nhân của lỗi * cụ thể * này. Thay vào đó, thực tế là SSIS đang báo cáo lỗi không chính xác. Tôi không biết tại sao, nhưng lỗi chính xác này luôn luôn có vẻ là một "rơi trở lại" khi có điều gì đó sai trong SSIS. Có vài lỗi mà tôi luôn kiểm tra, trước khi tôi tìm kiếm lỗi lâu (tức là các lần nhập khóa trùng lặp cũng báo cáo lỗi không có thật.) Điều này dường như là một lỗi khác. :/ – RLH

5

Tôi không thể đăng hình ảnh trong các nhận xét, vì vậy, hãy đăng nó dưới dạng câu trả lời.

Khi bạn cố gắng nhập gói vào SQL Server, ngay khi bạn nhấp chuột phải và thực hiện "Nhập gói", bạn sẽ nhận được cửa sổ sau.

enter image description here

Nhấp vào hộp hình chữ nhật ở bên phải của cửa sổ. Nó sẽ cung cấp cho bạn tùy chọn thay đổi mức độ bảo vệ của gói. Thay đổi nó thành "Không Lưu Nhạy cảm" và thử chạy gói. Một lời cảnh cáo, điều này sẽ yêu cầu bạn phải loại bỏ các gói hiện có và tái nhập nó một lần nữa. Vì vậy, bạn có thể muốn thử trên một máy khác trước khi chạm vào cấu hình hiện có.

+0

Thú vị. Tôi thấy Cấp độ bảo vệ nhưng tôi chưa bao giờ chú ý đến nó vì hai lý do. Đầu tiên, nó trống. Ban đầu tôi đã giả định rằng nó sẽ thừa kế các thiết lập ban đầu của tôi, cộng với tôi tin rằng tôi đang ghi đè một thiết lập như vậy từ nhiệm vụ Thực hiện công việc. Thứ hai, trường có vẻ như nó bị vô hiệu hóa vì nền màu xám. Tôi có thể thay đổi nó, mặc dù. Tôi hiện đang chạy thử nghiệm khác. Khi nó kết thúc, và nếu nó không thành công, tôi sẽ trả lời với kết quả của bản cập nhật này. Điều đó có thể mất một ngày khác. Gói này mất một thời gian dài để chạy và tôi có thể ra khỏi văn phòng khi nó kết thúc. – RLH

+0

Cảm ơn bạn đã giúp rvphx. Thật không may, đây không phải là giải pháp cho những rắc rối của tôi, vì vậy tôi không thể cho bạn câu trả lời (nhưng tôi có thể cho bạn upvote.) Xem Câu trả lời của tôi để sửa lỗi mà tôi mong muốn có ích hơn một chút cho cộng đồng. – RLH

3

Đối với tôi, đó chỉ là mật khẩu cho Trình quản lý kết nối trong SSIS, đã không được lưu. Nhập mật khẩu -> OK-> đóng tập tin dtsx & mở lại. Đã xảy ra lỗi.

0

Đây là giải pháp để tránh sự cố ở nơi đầu tiên lưu mật khẩu nhạy cảm trong gói.

Tôi đã xóa tác vụ FTP và sử dụng tác vụ Hệ thống tệp thay vì sao chép tệp vào cùng một vị trí qua chia sẻ mạng trên máy chủ FTP và tránh sử dụng giao thức ftp.

Tôi cũng có thể lưu gói vào hệ thống tệp thay vì cửa hàng máy chủ sql và nó chạy tốt.

Hy vọng nó sẽ giúp bạn!

3

Ran vào báo lỗi tương tự trong SQL Server 2012. Đối với tôi, khởi động lại SQL Server Management Studio giải quyết vấn đề. Vấn đề có thể do mật khẩu miền của tôi thay đổi vài ngày trước trong khi SSMS đã mở. Nếu bạn gặp sự cố tương tự và nó không biến mất với khởi động lại đơn giản, hãy đảm bảo bạn kiểm tra Control Panel\User Accounts\Credential Manager để biết thông tin tài khoản được lưu trong bộ nhớ cache và/hoặc thử khởi động lại.

+0

Tôi cũng nhận được thông báo lỗi được báo cáo ở đầu bài đăng này. Vấn đề của tôi là Trình quản lý kết nối nơi bảo mật cơ sở dữ liệu đã thay đổi và DTS không thể kết nối với thông tin đăng nhập được chỉ định nữa. UGH, SSIS! – RickC