Có nhiều cách để thực hiện việc này:
- Sử dụng SSIS (Dịch vụ Tích hợp Máy chủ SQL) . Nó chỉ nhập dữ liệu
data
trong bảng của bạn. Thuộc tính cột, ràng buộc, khóa, chỉ số, thủ tục được lưu trữ, trình kích hoạt, cài đặt bảo mật, người dùng, nhật ký, v.v. không được chuyển. Tuy nhiên, nó là quá trình rất đơn giản và có thể được thực hiện đơn giản bằng cách đi qua trình hướng dẫn trong SQL Server Management Studio. - Sử dụng kết hợp tập lệnh tạo SSIS và DB . Thao tác này sẽ giúp bạn nhận được dữ liệu và tất cả các siêu dữ liệu bị thiếu không được SSIS chuyển. Điều này cũng rất đơn giản. Đầu tiên hãy chuyển dữ liệu bằng SSIS (xem hướng dẫn bên dưới), sau đó tạo tập lệnh DB Create từ cơ sở dữ liệu SQL Azure và phát lại nó trên cơ sở dữ liệu cục bộ của bạn.
- Cuối cùng, bạn có thể sử dụng Dịch vụ Nhập / Xuất trong SQL Azure . Điều này chuyển dữ liệu (với một đối tượng lược đồ) đến Azure Blob Storage dưới dạng một BACPAC. Bạn sẽ cần một tài khoản Azure Storage và thực hiện việc này trong cổng web Azure. Nó đơn giản như nhấn nút "Xuất" trong cổng web Azure khi bạn chọn cơ sở dữ liệu bạn muốn xuất. Nhược điểm là nó chỉ là quy trình thủ công, tôi không biết cách tự động hóa việc này thông qua các công cụ hoặc tập lệnh - ít nhất là phần đầu tiên yêu cầu nhấp chuột trên trang web.
Quy trình thủ công cho phương pháp # 1 (sử dụng SSIS) như sau:
- Trong Sql Server Management Studio (SSMS), hãy tạo cơ sở dữ liệu trống mới trên phiên bản SQL cục bộ của bạn.
- Chọn Nhập dữ liệu từ menu ngữ cảnh (nhấp chuột phải vào cơ sở dữ liệu -> Công việc -> Nhập dữ liệu ...)
- Nhập các tham số kết nối cho nguồn (SQL Azure). Chọn "Nhà cung cấp dữ liệu .Net Framework cho SqlServer" làm nhà cung cấp.
- Chọn cơ sở dữ liệu cục bộ trống hiện có làm đích.
- Làm theo trình hướng dẫn - bạn sẽ có thể chọn dữ liệu bảng mà bạn muốn sao chép. Bạn có thể chọn bỏ qua bất kỳ bảng nào bạn không cần. Ví dụ. nếu bạn giữ nhật ký ứng dụng trong cơ sở dữ liệu, bạn có thể không cần nó trong bản sao lưu của mình.
Bạn có thể tự động hóa nó bằng cách tạo gói SSIS và thực thi lại bất kỳ lúc nào bạn muốn để nhập lại dữ liệu. Lưu ý rằng bạn chỉ có thể nhập bằng SSIS vào một DB sạch, bạn không thể thực hiện cập nhật gia tăng cho cơ sở dữ liệu cục bộ của mình khi bạn đã thực hiện một lần.
Phương pháp # 2 (Dữ liệu SSID cộng với các đối tượng lược đồ) rất đơn giản. Đầu tiên hãy thực hiện theo các bước được mô tả ở trên, sau đó tạo tập lệnh DB Creation (nhấp chuột nhanh vào cơ sở dữ liệu trong SSMS, chọn Generate Scripts -> Database Create). Sau đó, phát lại tập lệnh này trên cơ sở dữ liệu cục bộ của bạn.
Phương pháp # 3 được mô tả trong Blog tại đây:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/. Có một đoạn video với quá trình chuyển nội dung DB sang bộ lưu trữ Azure Blob dưới dạng BACPAC. Sau đó, bạn có thể sao chép tệp cục bộ và nhập tệp đó vào phiên bản SQL của mình. Quy trình nhập BACPAC vào ứng dụng Cấp dữ liệu được mô tả tại đây:http://msdn.microsoft.com/en-us/library/hh710052.aspx.