2013-01-31 55 views
5

Tôi cố gắng để di chuyển cơ sở dữ liệu MySQL cũ của công ty tôi lên SQL Server 2008.MySQL -> SQL Server Migration Assistant với bảng LỚN vấn đề

Tôi đang sử dụng các trợ lý SQL Server Migration cho phần mềm MySQL và tất cả mọi thứ hoạt động tốt, ngoại trừ cho các bảng lớn (một số có chứa khoảng 150 triệu hàng +) - Nó tạo ra lược đồ, vv và khi tôi chọn di chuyển dữ liệu tôi bị kẹt ở Migrating myTable > myTable with 0 of 159216578 rows processed - Nó vẫn như vậy trong khoảng 1-2 giờ sau đó treo và nói nó không thể tạo ra một tập tin lỗi.

Có bất kỳ điều/cài đặt nào tôi có thể thay đổi để thực hiện tác phẩm này không? Có cách nào tốt hơn không (tôi có quyền truy cập vào các tệp .frm, .MYD, .MYI nếu có điều gì đó tôi có thể làm theo cách đó) - Tôi mở mọi thứ miễn là tôi di chuyển các bảng này.

Cảm ơn !!

+0

Bạn đang sử dụng phiên bản SSMA nào? Mạng được sắp xếp giữa MySQL, SQL Server và nơi bạn đang chạy SSMA như thế nào? Tôi đã thực hiện một chuyển đổi trong tuần này với một bảng MySQL có 5,1 triệu hàng và nó hoạt động rất tốt. – mellamokb

+0

Bạn có đang sử dụng cài đặt mặc định, nghĩa là kích thước lô = 1000 không? Tôi không thể tìm thấy bất kỳ tài liệu tham khảo mà nên có một giới hạn về kích thước bảng, nhưng có vẻ như máy tính của bạn đang cố gắng tải xuống quá nhiều dữ liệu trong quá trình di chuyển (do đó bị kẹt tại '0' và sau đó bị treo). Máy tính có bao nhiêu RAM mà bạn đang chạy SSMA? Có bao nhiêu dữ liệu trong một hàng của bảng này, tức là, có rất nhiều cột rộng hoặc nhị phân hoặc lược đồ tương đối nhẹ và đơn giản? – mellamokb

+0

Dữ liệu MySQL nằm trên máy cục bộ của tôi - 'localhost' - và SQL Server nằm trên máy chủ từ xa. Đối với các thiết lập mặc định, tôi và kích thước lô là 1000 - bất kỳ suy nghĩ nào ?? Như của các bảng 5 triệu hàng, họ làm việc tốt ... Đó là 100 triệu bảng hàng dường như gây ra vấn đề ... –

Trả lời

0

Tôi nghĩ bạn muốn xuất khoảng 10 triệu hàng cùng một lúc (tùy thuộc vào phần cứng MySQL) bằng cách sử dụng điều gì đó trong mệnh đề WHERE cho phép bạn tách dữ liệu (ID, ngày, v.v.).

SELECT * FROM Table1 WHERE ID BETWEEN x and y INTO OUTFILE 'C:\temp\data.csv'; 

Bạn có thể sử dụng Trình hướng dẫn nhập/xuất SQL Server để đưa nó vào MSSQL.