Cần di chuyển SQL Server sang MySQL


22

Tôi có cơ sở dữ liệu trên SQL Server 2008 trên máy chủ Windows và tôi muốn chuyển tất cả dữ liệu sang cơ sở dữ liệu MySQL trên máy chủ Ubuntu. Tôi đã thử sử dụng Trình hướng dẫn Nhập và Xuất của Máy chủ SQL với trình điều khiển ODBC của MySQL và nó truy cập chính xác cả hai cơ sở dữ liệu, nhưng các tệp xml chứa thông số kỹ thuật để chuyển đổi loại không tồn tại và tôi quá hạn chế để tạo chính xác chúng. Có ai biết làm thế nào để tạo các tệp chuyển đổi loại hoặc nơi để có một công cụ tốt hơn để chuyển dữ liệu này không?


1
Bạn đã thấy câu hỏi này ? Đó là về việc sao chép dữ liệu từ MySql sang MSSQL. Có lẽ bạn sẽ tìm thấy một số gợi ý ở đó.
Mary

@Marian Cảm ơn các liên kết. Sử dụng máy chủ MySQL làm máy chủ được liên kết trong SQL Server dường như là một giải pháp cho vấn đề của tôi.
murgatroid99

1
Chúng ta đang nói về bao nhiêu dữ liệu? 5mb? 3TB?
AaronJAnderson

Tôi nghĩ đó là GB hoặc 10 GB, nhưng tôi không thực sự nhớ vì câu hỏi này có từ một năm rưỡi trước.
murgatroid99

Câu trả lời:


13

Tôi có hai gợi ý:

1) Tôi ghét đưa lên các sản phẩm thương mại nhưng có một công cụ $ 49,00 để Di chuyển MSSQL sang MySQL

2) Hãy thử các diễn đàn di chuyển MSSQL của MySQL để có thêm gợi ý

CẬP NHẬT 2011-06 / 03 18:03 EDT

Có một sản phẩm cũ đã trở lại EOL vào tháng 1 năm 2010 được gọi là Bộ công cụ di chuyển MySQL . Nếu bạn có thể nắm giữ nó, bạn có thể sử dụng nó.

CẬP NHẬT 2011-06 / 03 18:06 EDT

Tôi tìm thấy tài liệu lưu trữ !!! Đây là bộ công cụ di chuyển MySQL

CẬP NHẬT 2011-06 / 03 18:11 EDT

Dưới đây là Tổng quan về Bộ công cụ di chuyển MySQL

CẬP NHẬT 2011-06 / 03 19:08 EDT

Một sản phẩm thương mại khác ($ 29)

CẬP NHẬT 2011-06 / 03 19:30 EDT

Dưới đây là danh sách các công cụ phần mềm miễn phí Di chuyển MSSQL sang MySQL.

CẬP NHẬT 2011-06-15 17:47 EDT

Nhận WhitePaper (PDF) từ Oracle trên Hướng dẫn di chuyển Microsoft SQL Server sang MySQL (Vẫn thương mại)

CẬP NHẬT 2012-08-21 01:24 EDT

Theo MySQL WebPage này , phần này MySQL Workbench: Database Migration Wizardtuyên bố rằng MySQL Workbench có khả năng Di chuyển các đối tượng DB từ SQL Server sang MySQL.


1
Tôi không muốn sử dụng bất kỳ sản phẩm thương mại nào nếu tôi có thể tránh chúng. Tôi đã thử sử dụng Bộ công cụ di chuyển, nhưng tôi nghĩ rằng nó không tương thích với phiên bản mới nhất của MySQL: các câu lệnh chèn SQL được tạo có một số lượng lớn lỗi cú pháp và các bảng được tạo không có hàng sau khi chạy trình hướng dẫn. Các công cụ chia sẻ dường như cũng được tạo ra để hoạt động với các phiên bản cũ hơn của MySQL. Cảm ơn đã cố gắng.
murgatroid99

4

Dựa trên đề xuất của Marian, tôi đã tìm thấy câu trả lời này về việc sao chép theo hướng khác bằng cách thiết lập máy chủ MySQL làm máy chủ được liên kết trong MS SQL Server. Với MySQL được thiết lập như một máy chủ được liên kết, tôi có thể chạy các truy vấn SQL trên cả hai cơ sở dữ liệu cùng một lúc, cung cấp chính xác chức năng tôi cần để giải quyết vấn đề này.


3

Bạn đã xem xét việc sử dụng SSIS cho nhiệm vụ này chưa? Đây là công cụ ETL cho SQL Server và nó có rất nhiều biến đổi và logic có thể giúp bạn thực hiện nhiệm vụ này.


Thuật sĩ Nhập / Xuất mà tôi đã đề cập bằng cách thực sự tạo các gói SSIS. Vấn đề tôi gặp phải là SSIS sử dụng các tệp XML để lưu trữ dữ liệu về cách chuyển đổi giữa các loại trong các hệ thống quản lý cơ sở dữ liệu khác nhau và các tệp đó không tồn tại cho MySQL.
murgatroid99

3

MySQL Workbench có thể làm điều này:

http://dev.mysql.com/doads/workbench

Nó có thể được cài đặt trực tiếp trên máy MS SQL Server (lợi thế về tốc độ!), Cần có khả năng truy cập Ubuntu MySQL Server của bạn.


2

Tôi đã thử bộ công cụ di chuyển để nhập từ máy chủ SQL sang MySQL. Nhưng tìm thấy SQLyog Nhập dữ liệu ngoài tốt. Tôi có thể lên lịch cho quá trình nhập và cũng có thể ánh xạ cần thiết để nhập vào bảng hiện có. Tải về từ đây .

nhập mô tả hình ảnh ở đây


SQLyog là một công cụ tuyệt vời, nhưng tính năng "nhập dữ liệu ngoài" cực kỳ chậm. Như trong một số đơn đặt hàng có cường độ chậm hơn so với MySQL Workbench. Tôi muốn các nhà phát triển SQLyog sẽ khắc phục vấn đề này, vì giao diện trực quan hơn nhiều so với Workbench. Nhưng trừ khi bạn chỉ nhập hàng trăm hàng hơn là chuẩn bị chờ hàng giờ hoặc có thể vài ngày để quá trình nhập kết thúc.
nextgentech

2

Gần đây tôi đã phát hành etlalchemy để hoàn thành nhiệm vụ này. Đây là một giải pháp nguồn mở cho phép di chuyển giữa bất kỳ 2 cơ sở dữ liệu SQL nào với 4 dòng Python . Các RDBMS được hỗ trợ bao gồm MySQL, PostgreSQL, Oracle, SQLite và SQL Server.

Điều này sẽ đảm nhiệm nhiệm vụ khó khăn là ánh xạ một loại cột của nhà cung cấp SQL, sang loại khác. Nó không chỉ chuyển và dịch lược đồ , nó cũng sẽ di chuyển tất cả dữ liệu, chỉ mục và các ràng buộc trên cơ sở dữ liệu.

Để cài đặt:

$ pip install etlalchemy

Trên El Capitan :pip install --ignore-installed etlalchemy

Chạy:

from etlalchemy import ETLAlchemySource, ETLAlchemyTarget

mssql_db_source = ETLAlchemySource("mssql+pyodbc://username:password@DSN")

mysql_db_target = ETLAlchemyTarget("mysql://username:password@hostname/db_name", drop_database=True)
mysql_db_target.addSource(mssql_db_source)

Để có thêm thông tin về nguồn gốc của dự án, hãy xem bài đăng này. Nếu bạn gặp bất kỳ lỗi nào khi chạy công cụ, hãy mở một sự cố trên repo github và tôi sẽ sửa nó trong vòng chưa đầy một tuần!


0

Công cụ di chuyển MySQL Workbench có thể giúp bạn thực hiện nhiệm vụ này

1) Để bắt đầu quá trình di chuyển, trên màn hình chính của MySQL Workbench, hãy chuyển đến Cơ sở dữ liệu-> Trình hướng dẫn di chuyển.

2) Chúng ta nên kiểm tra các điều kiện tiên quyết để xác nhận nếu chúng ta có thể tiếp tục nhiệm vụ. Nếu mọi thứ đều ổn, chúng ta có thể nhấn vào Bắt đầu di chuyển.

3) Trong bước này, chúng tôi cần cung cấp thông tin về cơ sở dữ liệu nguồn, trong trường hợp này là SQL Server.

Chúng tôi sẽ cấu hình tham số nguồn của chúng tôi:

Hệ thống cơ sở dữ liệu: Microsoft SQL Server

Phương thức kết nối: ODBC (Bản địa)

Trình điều khiển: Máy chủ SQL

Máy chủ: localhost

Tên đăng nhập: sa

4) Bây giờ, chúng ta có thể kiểm tra kết nối bằng cách sử dụng nút Kiểm tra kết nối.

5) Sau đó, chúng ta cần thêm các tham số đích:

Phương thức kết nối: Tiêu chuẩn (TCP / IP)

Tên máy chủ: Your_host_name

Cảng: 3306

Tên người dùng: di chuyển

6) Và nhấn vào Kiểm tra kết nối để xác nhận thông tin đã thêm.

7) Trong bước tiếp theo, MySQL Workbench sẽ kết nối với SQL Server của chúng tôi để lấy danh sách các danh mục và lược đồ.

8) Bây giờ, chúng tôi sẽ chọn cơ sở dữ liệu Your_database_name từ danh sách.

Chúng ta có thể chọn cách ánh xạ các lược đồ và đối tượng được thiết kế ngược. Chúng tôi sẽ sử dụng tùy chọn Catalog.Schema.Table -> Catalog.Table, vì vậy, trong MySQL của chúng tôi, chúng tôi sẽ chọn cơ sở dữ liệu và các bảng hiện tại mà chúng tôi có trong cơ sở dữ liệu SQL Server của chúng tôi.

9) Nếu mọi thứ đều ổn, chúng tôi sẽ có một danh sách các đối tượng sẽ được di chuyển.

10) Trong trường hợp này, chúng ta có Đối tượng Bảng, Đối tượng Xem và Đối tượng Thường trình. Chúng ta sẽ chỉ chọn các Đối tượng Bảng vì đối với phần còn lại của đối tượng, chúng ta nên kiểm tra mã tương đương với MySQL tương ứng.

11) Trong bước này, các đối tượng từ nguồn được chuyển đổi thành các đối tượng tương thích với MySQL.

12) Nếu mọi thứ đều ổn, chúng ta có thể tiếp tục bằng cách chọn cách chúng ta muốn tạo lược đồ di chuyển trong mục tiêu. Chúng tôi sẽ sử dụng lược đồ Tạo mặc định trong tùy chọn RDBMS mục tiêu.

13) Bây giờ, hãy kiểm tra quá trình tạo lược đồ.

14) Trong bước tiếp theo, chúng tôi có thể kiểm tra kết quả của mỗi lần thực thi tập lệnh và chúng tôi có thể kiểm tra cơ sở dữ liệu mới được tạo trên Máy chủ MySQL của chúng tôi.

15) Tại thời điểm này, chúng tôi sẽ có cấu trúc cơ sở dữ liệu, nhưng chúng tôi chưa có dữ liệu. Bây giờ, chúng tôi sẽ chọn cách chúng tôi muốn sao chép dữ liệu trong Máy chủ MySQL. Chúng tôi sẽ sử dụng bản sao dữ liệu bảng của Online Online để nhắm mục tiêu tùy chọn RDBMS.

16) Trong bước cuối cùng, chúng ta có thể kiểm tra báo cáo di chuyển và hoàn thành nhiệm vụ.

Một phương pháp dễ dàng khác để chuyển đổi MS SQL DB sang MySQL là sử dụng công cụ DIY của Stellar có tên Stellar Converter cho cơ sở dữ liệu có thể trực tiếp chọn tệp cơ sở dữ liệu của một cơ sở dữ liệu cụ thể và cung cấp bản xem trước của các bảng chuyển đổi và sau khi chuyển đổi sẽ trực tiếp lưu trữ dữ liệu vào cơ sở dữ liệu đã chỉ định cài đặt trên hệ thống của bạn. Trong trường hợp này, bạn sẽ phải cung cấp tệp cơ sở dữ liệu MS SQL và sau khi chuyển đổi, nó sẽ được lưu trữ trong cơ sở dữ liệu MySQL được cài đặt trong hệ thống. Bạn có thể nhận phiên bản miễn phí của phần mềm này từ Trang web chính thức của Stellar .

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.