Tôi muốn sao chép nội dung của cơ sở dữ liệu MySQL sang cơ sở dữ liệu MS SQL Server 2008.
Điều này có thể không? Bất cứ ai cũng có thể phác thảo các bước cần thiết để đạt được điều này?
Cảm ơn.
Tôi muốn sao chép nội dung của cơ sở dữ liệu MySQL sang cơ sở dữ liệu MS SQL Server 2008.
Điều này có thể không? Bất cứ ai cũng có thể phác thảo các bước cần thiết để đạt được điều này?
Cảm ơn.
Câu trả lời:
Cá nhân tôi muốn sử dụng phương pháp MS SQL so với phương pháp đẩy từ MySQL. Tại sao? Vâng, Windows có trình điều khiển MySQL ODBC 32 bit và 64 bit sẵn sàng hoạt động và thiết lập một máy chủ được liên kết là chuyện nhỏ. Tôi có rất nhiều máy chủ MySQL được liên kết từ MS SQL. Ngoài ra, kết nối với MS SQL từ linux / unix không phải lúc nào cũng tuyệt vời và bạn không thể sử dụng tất cả các tính năng. FreeTDS có những hạn chế; bạn có thể đánh chúng sớm hơn là muộn, vậy tại sao không bỏ qua nó. Tất cả điều này giả định rằng bạn đang chạy MySQL trên * nix. Nếu không, nó sẽ tiến gần hơn một chút đến 50/50 nhưng tôi vẫn chọn kéo từ MS SQL vì có vẻ như đó không phải là cơ sở dữ liệu "trực tiếp", do đó, việc tải nó cho bất kỳ ETL nào hoặc xử lý là lý tưởng hơn. Giải pháp GoldenGate nghe có vẻ thú vị, nhưng tôi chắc chắn rằng nó không miễn phí.
Xem xét tôi đã thiết lập loại kịch bản này với cả cơ sở dữ liệu MySQL và Oracle sao chép sang MS SQL, tôi sẽ cung cấp một số mẹo phù hợp nhất với tôi:
Mong các bạn giúp đỡ!
Câu hỏi tương tự đã được giải quyết trên StackOverflow tại đây: Sao chép từ MySQL sang MSSQL .
Có vẻ như có một số cách giải quyết, nhưng không phải là một giải pháp rất dễ dàng.
Tôi tin rằng bạn chắc chắn nên thử xây dựng gói SSIS để nhập dữ liệu cần thiết từ MySQL DB sang MSSQL DB. SSIS cho phép một người nhập dữ liệu từ nhiều nguồn khác nhau. Sau đó, bạn sẽ có thể lên lịch các gói bằng cách sử dụng công việc lập lịch trình hoặc công việc sql.
Nếu bằng cách sao chép, bạn có nghĩa là đăng nhập vận chuyển hoặc một cái gì đó như thế tôi tin rằng bạn đã hết may mắn. Tuy nhiên, bạn chắc chắn có thể thiết lập cơ sở dữ liệu MySQL như một máy chủ được liên kết và cuộn sơ đồ sao chép của riêng bạn. Đơn giản nhất là chỉ cần thực hiện các ảnh chụp nhanh định kỳ của tất cả các bảng bằng cách sử dụng các câu lệnh cắt và chèn. Thêm sự phức tạp khi yêu cầu của bạn ra lệnh.
Bạn có thể sử dụng GoldenGate cho MySQL và MS SQL để làm điều này. Bạn chỉ cần cài đặt sản phẩm GoldenGate ở mỗi bên, sau đó tiến hành sao chép đồng nhất.
Ngoài ra, đối với một sao chép "bản chụp", bạn có thể sử dụng một Python (hoặc tương tự) kịch bản chỉ đơn giản là kết nối với cả hai nguồn dữ liệu (sử dụng UnixODBC và freetds để kết nối với MS SQL), vòng lặp thông qua các bảng làm SELECT
ở một bên, cho mỗi hàng INSERT
mặt khác. Vì MSSQL có giao dịch và là mục tiêu của bạn, bạn có thể bắt đầu giao dịch, DELETE
mọi thứ từ tất cả các bảng, thực hiện sao chép COMMIT
và sau đó sẽ xuất hiện ngay khi có liên quan đến người dùng trên mục tiêu, sẽ không có sự mâu thuẫn (trừ khi chúng tồn tại về nguồn gốc của khóa học).