Làm cách nào để sao chép cơ sở dữ liệu SQL Azure của tôi sang phiên bản SQL Server cục bộ?


12

Tôi có một cơ sở dữ liệu OLTP được lưu trữ trên một phiên bản SQL Azure. Tôi muốn kéo một bản sao của cơ sở dữ liệu từ đám mây xuống để tôi có thể chạy một số trích xuất nặng và truy vấn kiểu OLAP mà không ảnh hưởng đến cơ sở dữ liệu nguồn.

Làm cách nào để kéo một bản sao của cơ sở dữ liệu xuống một phiên bản SQL Server cục bộ?

Câu trả lời:


9

Sử dụng Trình hướng dẫn di chuyển SQL Azure :

Thuật sĩ di chuyển SQL Azure (SQLAzureMW) cung cấp cho bạn các tùy chọn để phân tích, tạo tập lệnh và di chuyển dữ liệu (thông qua BCP) từ:

  1. Máy chủ SQL sang SQL Azure
  2. SQL Azure sang SQL Server
  3. SQL Azure sang SQL Azure

Có vẻ như không hoạt động với LocalDB, tôi có một lỗi nói rằng 'Mã hóa không được hỗ trợ' ở bước khi bạn chọn cơ sở dữ liệu đích. Công cụ không thể kết nối với cá thể localdb của tôi
tobiak777

@ red2nb - Tôi không biết gì về LocalDB, nhưng có lẽ do lỗi cho thấy đó không phải là vấn đề với LocalDB, mà là vấn đề với cơ sở dữ liệu đích được mã hóa.
Nick Chammas

4

Soạn một bcptập lệnh xuất nội dung của tất cả các bảng của bạn sang các tệp cục bộ.

Bắt đầu bằng cách viết một truy vấn sẽ xuất ra một bcplệnh để xuất từng bảng trong cơ sở dữ liệu đích của bạn sang một đường dẫn trên máy đích của bạn:

SELECT 
      'bcp '
    + SCHEMA_NAME(schema_id) + '.' + name
    + ' out '
    + ' D:\local_backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'
    + ' -c '
    + ' -S servername.database.windows.net '
    + ' -d database_name '
    + ' -U username '
    + ' -P password'
FROM sys.tables;

Thực hiện truy vấn này bằng cách sử dụng bcpđối với cơ sở dữ liệu SQL Azure của bạn từ máy bạn muốn sao chép và lưu kết quả vào một cmdtệp. Thực hiện cmdtệp đó để xuất mỗi bảng thành tệp văn bản.

C:\> REM ask bcp to save the results of the above query to a file
C:\> bcp "SELECT      'bcp '    + SCHEMA_NAME(schema_id) + '.' + name   + ' out '   + ' D:\backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'    + ' -c '    + ' -S servername.database.windows.net '    + ' -d database_name '  + ' -U username '   + ' -P password' FROM sys.tables;" queryout output_path\bcp_script.cmd -c -S servername.database.windows.net -d database_name -U username -P password

C:\> REM execute the bcp commands saved to file
C:\> output_path\bcp_script.cmd

Đây là một cách tiếp cận nhanh và bẩn, và không phù hợp với cơ sở dữ liệu lớn hoặc lược đồ phức tạp.



2

Tôi nhận thấy có một công cụ mới trong danh sách này, đó là Sao lưu cơ sở dữ liệu Azure SQL của Idera . Nó miễn phí và họ thường tạo ra các công cụ tốt, vì vậy nó đáng để thử.

Một cách khác để xuất cơ sở dữ liệu (nhưng lần này chỉ là lược đồ, không có dữ liệu) sang Azure là sử dụng các gói DAC (tệp .dacpac được trích xuất từ ​​Management Studio hoặc Visual Studio 2010). Điều này chỉ hoạt động từ SQL 2008 R2 SP1 +.

Bạn có thể đọc chi tiết về Ứng dụng tầng dữ liệu tại đây:


0

bạn có thể sử dụng trình hướng dẫn nhập dữ liệu SSMS. Đây là một bài viết blog tốt về nó, với hình ảnh. Điểm mấu chốt là chọn nhà cung cấp dữ liệu .NET cho cơ sở dữ liệu nguồn. Tôi đã có rất nhiều vấn đề khi cố gắng làm cho nó hoạt động với các nhà cung cấp khác (và mặc định - bản địa).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.