2015-01-05 22 views
9

Có công cụ nào để chuyển đổi cơ sở dữ liệu SQL Server 2014 sang năm 2012 không?Sao lưu SQL Server 2014 sang 2012

Tôi đã thử Tạo tập lệnh nhưng tập lệnh được tạo với dữ liệu quá lớn và SQL Server Management Studio không thực thi nó, tôi cần có cả lược đồ và dữ liệu.

Trả lời

8

Theo hiểu biết của tôi, về cơ bản có ba hai lựa chọn để di chuyển một cơ sở dữ liệu đến một phiên bản thấp hơn của SQL Server, mà không sử dụng công cụ của bên thứ 3:

  • Tạo Script (không thực sự phù hợp với số lượng lớn dữ liệu)
  • Kịch bản lệnh tùy chỉnh và BCP hoặc Trình hướng dẫn xuất/nhập
  • Dịch vụ tích hợp SQL Server (Chuyển Cơ sở dữ liệu công tác)

Đầu tiên lựa chọn là không phù hợp trong trường hợp của bạn, như đã nêu.

Tùy chọn thứ hai chỉ đơn giản là viết cấu trúc cơ sở dữ liệu, sau đó sử dụng trình hướng dẫn nhập/xuất để sao chép dữ liệu, một bảng tại một thời điểm. Lưu ý rằng nếu bạn có các ràng buộc khóa ngoài trong cơ sở dữ liệu của mình, bạn có thể muốn vô hiệu hóa các ràng buộc cho đến sau khi bạn đã điền tất cả các bảng của bạn với dữ liệu. This blog post giải thích chi tiết cách thực hiện điều này.

Tùy chọn thứ ba sử dụng SISS Transfer Database Task, về cơ bản sử dụng SMO để tạo đối tượng trên máy chủ đích và sau đó truyền dữ liệu. Đây là cách được khuyến nghị để di chuyển cơ sở dữ liệu giữa các phiên bản khác nhau của SQL Server. SSIS yêu cầu bạn đã cài đặt Công cụ Dữ liệu SQL Server - Business Intelligence (SSDT-BI) cho Visual Studio. Trước SQL Server 2012, nó được gọi là Business Intelligence Development Studio (BIDS). Bạn có thể tải những ở đây:

+0

Tôi có thể sử dụng Tác vụ Cơ sở dữ liệu Chuyển SSIS như thế nào? Microsoft SQL Server dữ liệu công cụ phải được cài đặt trong Visual Studio? hoặc ... – Azarsa

+0

Tôi đã cập nhật câu trả lời của mình với một số liên kết về SSDT-BI và BIDS. – Dan

3

Sử dụng tập lệnh, nhưng thay vì thực thi nó Management Studio, hãy sử dụng tiện ích sqlcmd gọn nhẹ.

http://msdn.microsoft.com/es-es/library/ms162773.aspx

+1

Nếu cơ sở dữ liệu chứa các bảng có nhiều triệu hàng, tập lệnh được tạo có thể trở nên không lớn (vài chục hoặc hàng trăm GB). Nó sẽ là một nỗi đau để thực hiện một kịch bản lớn như vậy ngay cả khi sử dụng tiện ích sqlcmd. – Dan

+0

@ Tôi có thể tải các tệp với vài gigabyte dữ liệu bằng phương pháp này mà không gặp vấn đề gì không .. – Oscar

+0

OK, tôi phải thừa nhận tôi chưa bao giờ thử nó.Nhưng thông thường, kịch bản sẽ mất 2-3x không gian nhiều như bản thân cơ sở dữ liệu, có thể là một vấn đề nếu bạn không có đủ dung lượng đĩa trên môi trường của bạn. Điều này rõ ràng có thể được giải quyết bằng cách phá vỡ kịch bản thành các phần nhỏ hơn, nhưng nó có vẻ giống như nhiều công việc hơn là sử dụng, ví dụ, [Nhiệm vụ cơ sở dữ liệu chuyển SSIS] (http://msdn.microsoft.com/en-us /library/ms141204.aspx). – Dan

1

Oh tốt, lựa chọn thứ hai của Dan không hoạt động: sau khi cài đặt SSDT-BI cho VS2013 và cấu hình các nhiệm vụ cơ sở dữ liệu chuyển nó nói rằng phiên bản của database instance nguồn có phải thấp hơn hoặc tương đương với phiên bản của ví dụ về cơ sở dữ liệu đích: vì vậy, việc di chuyển từ năm 2014 đến năm 2012 (hoặc trong trường hợp của tôi 2008R2) là không thể.

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