2012-06-05 19 views
6

Tôi đang sử dụng SSIS với VS2010 (vỏ) và cơ sở dữ liệu từ SQL Server 2005 (32 bit) sang SQL Server 2012 (64 bit). Tôi đang phát triển trực tiếp trên máy chủ đích (không tối ưu, nhưng nó hoạt động).Thông báo lỗi công việc của Cơ sở dữ liệu SSIS Chuyển 0x80131500

Khi tôi cố gắng sử dụng tác vụ chuyển cơ sở dữ liệu, nó cung cấp cho tôi thông báo lỗi như sau: "Lỗi: Phương thức thực thi trên tác vụ trả về mã lỗi 0x80131500 (Đã xảy ra lỗi trong khi truyền dữ liệu. Chi tiết.) Phương thức Execute phải thành công và chỉ ra kết quả bằng cách sử dụng tham số "out". " Error message

Đây là vấn đề ... làm cách nào để xem "ngoại lệ bên trong" ?? nó là một giao diện GUI không có cách nào để bước qua mã! Tôi thậm chí đã thử setting up logging - nó chỉ ghi nhật ký thông báo lỗi vô dụng.

Microsoft không có thông tin cho mã lỗi này trong tài liệu tham chiếu của họ (mà tôi có thể tìm thấy).

Sau khi google mã lỗi, tôi thấy những người khác có mã lỗi này cùng với các thông báo phải làm với người dùng, vai trò và tạo chúng.

  • Tôi đã kiểm tra kỹ rằng tôi có quyền sysadmin trên cả hai máy chủ và
    thông tin đăng nhập trên cả hai.
  • Tôi đã thử cùng một tác vụ Chuyển dữ liệu từ mỗi máy chủ cho chính nó (với tên cơ sở dữ liệu thay đổi) và rằng làm việc phạt cho cả hai.
  • Tôi đã thử cả hai tùy chọn DatabaseOnline và DatabaseOffline. (cùng một lỗi cả hai cách)
  • Tôi đã thử thực hiện tác vụ "Chuyển đăng nhập" trước khi thực hiện tác vụ chuyển giao cơ sở dữ liệu, nhiệm vụ đó đã hoạt động, chứ không phải nhiệm vụ Chuyển giao cơ sở dữ liệu. Sau đó, nó bắt đầu ném lỗi nói rằng các cơ sở dữ liệu không tồn tại - ngụ ý rằng tôi cần phải chuyển đăng nhập SAU KHI tôi chuyển cơ sở dữ liệu.

Dưới đây là các thiết lập của tôi: enter image description here

Tôi đang làm gì sai? HOẶC Tôi có thể nhận được thông báo "ngoại lệ bên trong" như thế nào?

Ngoài ra, hãy làm theo bài của tôi để diễn đàn của Microsoft ở đây: http://social.technet.microsoft.com/Forums/en-US/sqlintegrationservices/thread/cda53c80-8da6-4ed1-898a-9f3ff8464ae2

+0

Sau khi bạn chuyển thông tin đăng nhập, bạn có thể xóa những thông tin đăng nhập đó và cung cấp thông tin không? Điều đó có giúp được gì không? – rvphx

+0

xóa nội dung gì? thông tin đăng nhập tôi vừa chuyển? – Watki02

+0

Mọi sự kiện bạn đang khai thác là gì? Chỉ OnError và OnTaskFailed? Lấy OnInformation và OnWarning vì họ có thể đưa ra một dấu hiệu cho thấy những gì khác đi sai. Một tùy chọn khác có thể [DTLoggedExec] (http://dtloggedexec.codeplex.com/) Không bao giờ chơi với nhiệm vụ đó vì vậy tôi không thể nói đến các lỗi cụ thể của lỗi bạn đang gặp phải – billinkc

Trả lời

6

Câu trả lời này khiến tôi bị bệnh dạ dày ... Tôi hy vọng tôi sẽ cứu người khác khỏi rắc rối này. Vấn đề là:

  1. Đầu tiên và quan trọng nhất: thông báo lỗi không đủ mô tả. Lỗi phải được giao cho giao diện.
  2. Trong phần "chỉnh sửa" trên tác vụ "Chuyển cơ sở dữ liệu", đường dẫn tệp đích được "tự động điền" với đường dẫn tệp của cơ sở dữ liệu nguồn. Họ nhìn ngay lúc đầu tiên (và thứ hai, và thứ ba ...) lướt qua lướt qua. Khi kiểm tra thêm đường dẫn tệp sai. Điều này có ý nghĩa nếu bạn đang đi từ phiên bản sang phiên bản - các thư mục được đặt tên với sự khác biệt tinh tế theo phiên bản (MSSQL.1 so với MSSQL11.<instanceName>).

Tóm lại, lỗi do thư mục không tồn tại do đường dẫn đã được đặt sai. Tôi tưởng tượng các trường hợp ngoại lệ cấp thấp khác như thế này cũng được giao diện ăn cùng với thông báo lỗi khó hiểu.

+0

bạn có thể tin rằng tôi đã đi qua cùng một kịch bản và tôi gặp lỗi chính xác? Nhưng đường dẫn tệp của tôi là chính xác ... bất kỳ lời khuyên nào? – Diego

+0

Khi dòng cuối cùng của câu trả lời của tôi cho biết, nó có thể là một ngoại lệ cấp thấp như tên đường dẫn xấu. Kiểm tra quyền DB, quyền hệ thống tệp, kiểm tra đường dẫn đôi ... bất kỳ thứ gì bình thường có thể ném lên một hộp thông báo lỗi mô tả đơn giản và hữu ích. Ngoài ra, hãy thử bất kỳ nhiệm vụ nào của bạn thông qua SQL Server Management Studio (ví dụ: "chuyển databse" == "cơ sở dữ liệu sao chép" trong SSMS) có thể tiết lộ lỗi của bạn (do đó bị ăn mòn bởi SSIS/SSDT). – Watki02

0

"which implies that I need to transfer logins AFTER I transfer databases."

không thực sự, thông tin đăng nhập đang ở trên một máy chủ (ví dụ) cấp, do đó bạn có thể chuyển thông tin đăng nhập và sau đó cơ sở dữ liệu. Bạn sẽ cần phải lo lắng về người dùng sau này, tất nhiên là

một điểm ở đây, tôi không nghĩ SSIS sẽ sẵn sàng chuyển giao năm 2005 -> 2012. Ý tôi là, Sẽ không có ý nghĩa khi bỏ qua phiên bản. Bạn nói rằng bạn đang sử dụng VS 2012, vì vậy nó sẽ là SSIS 2012. Nó nghĩ rằng nó chỉ có thể đọc cơ sở dữ liệu năm 2008. Thực tế là bạn đã thử nghiệm trên cùng một máy chủ và nó làm việc cũng làm cho điểm này mạnh hơn.

+0

Tôi đang sử dụng (studio trực quan) 2010, không phải 2012. Nó cũng hoạt động trên ** BOTH ** servers (SQL 2005 _AND_ SQL 2012) một cách độc lập, nhưng không phải từ một đến khác. Tôi sẽ cập nhật bài đăng của mình để làm rõ hơn - cảm ơn! Điều đó đang được nói, điều này vẫn có thể là câu trả lời ... nó có phải là phiên bản đầy đủ của SQL 2008 không? hoặc tôi có thể sử dụng phiên bản Express không? – Watki02

+0

vâng, đó là lỗi đánh máy, tôi muốn viết VS2010, SSIS 2012. Về phiên bản, bạn nên sử dụng Express – Diego

+0

Tôi vừa thử SQL 2008 Express và không thành công. Xem giải thích sâu hơn của tôi ở đây: http://social.technet.microsoft.com/Forums/en-US/sqlintegrationservices/thread/cda53c80-8da6-4ed1-898a-9f3ff8464ae2 – Watki02

1

Chúng tôi gặp phải điều này khi ai đó nói với chúng tôi ngày hợp lệ sẽ luôn tồn tại trong cột trong cơ sở dữ liệu MySQL và chúng tôi phát hiện ra rằng có những ngày như '0000-00-00 00:00:00''0001-01-01 00:00:00'.

Chúng tôi xử lý nó trong truy vấn mà kéo trong dữ liệu bằng một tuyên bố trường hợp để chuyển đổi ngày xấu thành một SSIS ngày có thể sử dụng:

CASE WHEN Product.PurchaseDate < '1900-01-01 00:00:00' THEN '1900-01-01 00:00:00' ELSE Product.PurchaseDate END AS PurchaseDate 

Tất nhiên, bạn có thể thiết lập nó để null cũng có, bạn lựa chọn.

+0

Điều này giải quyết được vấn đề cho tôi. Cảm ơn! – Jondlm

1

Tôi cũng đã gặp phải sự cố tương tự này và hóa ra đó là sự cố truy cập. Hãy thử cấp quyền truy cập vào thư mục nơi tệp mdf và ldf sẽ được chuyển đến: Dịch vụ NT \ MSSQLSERVER, Chủ sở hữu người sáng tạo, Hệ thống

0

Đây là lỗi cũ nhưng tôi gặp phải cùng một thông điệp khó hiểu với SSMS 17.2. Tôi đã thử và kiểm tra tất cả các đề xuất ở trên để không có kết quả. Trong trường hợp của tôi, vấn đề có liên quan đến thuộc tính TargetServerVersion của dự án SSIS trong Visual studio 2017. Theo mặc định, nó được đặt thành SQL Server 2017, trong khi máy chủ cục bộ của tôi là SQL Server 2014 - một khi đã thay đổi thành phiên bản tương tự, mọi thứ suôn sẻ.

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