จำเป็นต้องโยกย้าย SQL Server ไปยัง MySQL


22

ฉันมีฐานข้อมูลบน SQL Server 2008 บนเซิร์ฟเวอร์ Windows และฉันต้องการย้ายข้อมูลทั้งหมดไปยังฐานข้อมูล MySQL บนเซิร์ฟเวอร์ Ubuntu ฉันได้ลองใช้ตัวช่วยสร้างการนำเข้าและส่งออกเซิร์ฟเวอร์ SQL ด้วยไดรเวอร์ MySQL ODBC และเข้าถึงฐานข้อมูลทั้งสองได้อย่างถูกต้อง แต่ไฟล์ xml ที่มีข้อกำหนดสำหรับการแปลงประเภทไม่มีอยู่จริงและข้อกำหนด จำกัด เกินไปสำหรับฉันในการสร้างอย่างถูกต้อง ไม่มีใครรู้วิธีสร้างไฟล์แปลงประเภทหรือสถานที่ที่จะได้รับเครื่องมือที่ดีกว่าสำหรับการถ่ายโอนข้อมูลนี้หรือไม่?


1
คุณเห็นคำถามนี้หรือไม่ มันเกี่ยวกับการจำลองข้อมูลจาก MySql ไปยัง MSSQL บางทีคุณอาจพบคำใบ้ที่นั่น
แมเรียน

@Marian ขอบคุณสำหรับลิงค์ การใช้เซิร์ฟเวอร์ MySQL เป็นเซิร์ฟเวอร์ที่เชื่อมโยงใน SQL Server ดูเหมือนจะเป็นทางออกสำหรับปัญหาของฉัน
murgatroid99

1
เราพูดถึงข้อมูลเท่าไหร่? 5MB? 3TB?
AaronJAnderson

ฉันคิดว่ามันเป็น GB หรือ 10s ของ GB แต่ฉันจำไม่ได้จริงๆเพราะคำถามนี้มาจากปีครึ่งที่แล้ว
murgatroid99

คำตอบ:


13

ฉันมีสองข้อเสนอแนะ:

1) ฉันเกลียดการนำเสนอผลิตภัณฑ์เชิงพาณิชย์ แต่มีเครื่องมือ $ 49.00 ที่จะย้าย MSSQL ไปยัง MySQL

2) ลองใช้ฟอรัม MSSQL Migration ของ MySQL สำหรับคำแนะนำเพิ่มเติม

อัพเดท 2011-06-03 18:03 EDT

มีผลิตภัณฑ์เก่าที่ไป EOL กลับมาในเดือนมกราคม 2010 ที่เรียกว่า MySQL Migration Toolkit หากคุณสามารถได้รับมันคุณสามารถใช้มัน

อัพเดท 2011-06-03 18:06 EDT

ฉันพบจดหมายเหตุแล้ว !!! นี่คือชุดเครื่องมือการย้ายข้อมูล MySQL

อัพเดท 2011-06-03 18:11 EDT

นี่คือภาพรวมของ MySQL Migration Toolkit

อัพเดท 2011-06-03 19:08 EDT

ผลิตภัณฑ์เชิงพาณิชย์อื่น ($ 29)

อัพเดท 2011-06-03 19:30 EDT

นี่คือรายการเครื่องมือฟรีแวร์ที่โยกย้าย MSSQL ไปยัง MySQL

อัพเดท 2011-06-25 17:47 EDT

รับ WhitePaper (PDF) จาก Oracle จากคู่มือการโยกย้าย Microsoft SQL Server ไปยัง MySQL (เชิงพาณิชย์)

อัพเดท 2012-08-21 01:24 EDT

ตามหน้าเว็บ MySQL นี้ส่วนMySQL Workbench: Database Migration Wizardอ้างว่า MySQL Workbench มีความสามารถในการโยกย้ายวัตถุ DB จาก SQL Server ไปยัง MySQL


1
ฉันไม่ต้องการใช้ผลิตภัณฑ์เชิงพาณิชย์ใด ๆ หากฉันสามารถหลีกเลี่ยงได้ ฉันพยายามใช้ Migration Toolkit แต่ฉันคิดว่ามันเข้ากันไม่ได้กับ MySQL เวอร์ชั่นใหม่ล่าสุด: คำสั่งแทรก SQL ที่สร้างขึ้นมีข้อผิดพลาดทางไวยากรณ์จำนวนมากและตารางที่สร้างขึ้นไม่มีแถวหลังจากเรียกใช้ตัวช่วยสร้าง เครื่องมือแชร์แวร์นั้นดูเหมือนว่าจะทำงานกับ MySQL เวอร์ชันเก่ากว่าได้ ขอบคุณที่ทดลองใช้
murgatroid99

4

จากคำแนะนำของ Marian ฉันพบคำตอบนี้เกี่ยวกับการจำลองแบบในทิศทางอื่นโดยการตั้งค่าเซิร์ฟเวอร์ MySQL เป็นเซิร์ฟเวอร์ที่เชื่อมโยงใน MS SQL Server ด้วยการติดตั้ง MySQL เป็นเซิร์ฟเวอร์ที่เชื่อมโยงฉันสามารถเรียกใช้แบบสอบถาม SQL ในฐานข้อมูลทั้งสองในเวลาเดียวกันซึ่งมีฟังก์ชั่นที่ฉันต้องการเพื่อแก้ไขปัญหานี้


3

คุณเคยใช้ SSIS สำหรับงานนี้หรือไม่? นี่เป็นเครื่องมือ ETL สำหรับ SQL Server และมีการแปลงและตรรกะมากมายที่สามารถช่วยคุณทำงานนี้ได้


ตัวช่วยสร้างการนำเข้า / ส่งออกที่ฉันกล่าวถึงใช้สร้างแพ็คเกจ SSIS ปัญหาที่ฉันมีคือ SSIS ใช้ไฟล์ XML เพื่อเก็บข้อมูลเกี่ยวกับวิธีการแปลงระหว่างประเภทในระบบการจัดการฐานข้อมูลที่แตกต่างกันและไฟล์เหล่านั้นไม่มีอยู่สำหรับ MySQL
murgatroid99

3

MySQL Workbench สามารถทำสิ่งนี้ได้:

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

สามารถติดตั้งได้โดยตรงบนเครื่อง MS SQL Server (ข้อได้เปรียบด้านความเร็ว!) ซึ่งจะต้องสามารถเข้าถึง Ubuntu MySQL Server ของคุณได้


2

ฉันลองชุดเครื่องมือการโยกย้ายเพื่อนำเข้าจากเซิร์ฟเวอร์ SQL ไปยัง MySQL แต่พบว่าSQLyogนำเข้าข้อมูลภายนอกที่ดี ฉันสามารถกำหนดเวลากระบวนการนำเข้าและทำการแมปที่จำเป็นเพื่อนำเข้าสู่ตารางที่มีอยู่ ดาวน์โหลดได้จากที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


SQLyog เป็นเครื่องมือที่ยอดเยี่ยม แต่ฟีเจอร์ "นำเข้าข้อมูลภายนอก" นั้นช้ามาก ในหลายคำสั่งของขนาดช้ากว่า MySQL Workbench ฉันหวังว่านักพัฒนา SQLyog จะแก้ไขปัญหาได้เนื่องจากส่วนต่อประสานนั้นใช้งานง่ายกว่า Workbench แต่ถ้าคุณไม่ได้นำเข้าแถวนับร้อยกว่าจะต้องรอเป็นชั่วโมงหรือเป็นวันที่การนำเข้าจะเสร็จสิ้น
nextgentech

2

ฉันเพิ่งปล่อยตัวetlalchemyเพื่อทำงานนี้ให้สำเร็จ มันเป็นโซลูชันแบบโอเพ่นซอร์สที่อนุญาตการย้ายระหว่างฐานข้อมูล SQL 2 ตัวด้วย 4 สายของงูใหญ่ รองรับ RDBMS ได้แก่ MySQL, PostgreSQL, Oracle, SQLite และ SQL Server

สิ่งนี้จะดูแลภารกิจที่น่ากังวลของการแม็พคอลัมน์ประเภทหนึ่งของผู้ขาย SQL กับของอื่น ไม่เพียง แต่จะถ่ายโอนและแปลสคีมันยังจะย้ายข้อมูลดัชนีและข้อ จำกัด ทั้งหมดไปยังฐานข้อมูล

ติดตั้ง:

$ pip install etlalchemy

บน El Capitan :pip install --ignore-installed etlalchemy

วิ่ง:

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)

ในการรับพื้นหลังเพิ่มเติมเกี่ยวกับต้นกำเนิดของโครงการให้ตรวจสอบโพสต์นี้ หากคุณพบข้อผิดพลาดในการใช้งานเครื่องมือให้เปิดปัญหาในrepo Githubและฉันจะแก้ไขมันภายในไม่ถึงหนึ่งสัปดาห์!


0

เครื่องมือการย้ายข้อมูล MySQL Workbench สามารถช่วยคุณทำงานนี้ได้

1) ในการเริ่มกระบวนการย้ายข้อมูลบนหน้าจอหลักของ MySQL Workbench ให้ไปที่ฐานข้อมูล -> ตัวช่วยสร้างการย้ายข้อมูล

2) เราควรตรวจสอบข้อกำหนดเบื้องต้นเพื่อยืนยันว่าเราสามารถทำงานต่อไปได้หรือไม่ หากทุกอย่างดูดีเราสามารถกดที่ Start Migration

3) ในขั้นตอนนี้เราจำเป็นต้องให้ข้อมูลเกี่ยวกับฐานข้อมูลต้นทางในกรณีนี้คือ SQL Server

เราจะกำหนดค่าพารามิเตอร์แหล่งที่มาของเรา:

ระบบฐานข้อมูล: Microsoft SQL Server

วิธีการเชื่อมต่อ: ODBC (ดั้งเดิม)

ไดร์เวอร์: SQL Server

เซิร์ฟเวอร์: localhost

ชื่อผู้ใช้: sa

4) ตอนนี้เราสามารถตรวจสอบการเชื่อมต่อโดยใช้ปุ่มทดสอบการเชื่อมต่อ

5) จากนั้นเราต้องเพิ่มพารามิเตอร์เป้าหมาย:

วิธีการเชื่อมต่อ: มาตรฐาน (TCP / IP)

ชื่อโฮสต์: Your_host_name

พอร์ต: 3306

ชื่อผู้ใช้: การโยกย้าย

6) และกดที่ Test Connection เพื่อยืนยันข้อมูลที่เพิ่มเข้ามา

7) ในขั้นตอนต่อไป MySQL Workbench จะเชื่อมต่อกับ SQL Server ของเราเพื่อดึงรายการแคตตาล็อกและสกีมา

8) ตอนนี้เราจะเลือกฐานข้อมูล Your_database_name จากรายการ

เราสามารถเลือกวิธีการแมปสกีมาและวัตถุที่ออกแบบวิศวกรรมย้อนกลับได้ เราจะใช้ Catalog.Schema.Table -> ตัวเลือก Catalog.Table ดังนั้นใน MySQL ของเราเราจะเลือกฐานข้อมูลและตารางปัจจุบันที่เรามีในฐานข้อมูล SQL Server ของเรา

9) ถ้าทุกอย่างเรียบร้อยเราจะมีรายการของวัตถุที่จะทำการย้ายข้อมูล

10) ในกรณีนี้เรามี Table Objects, View Objects และ Routine Objects เราจะเลือก Table Objects เพียงเพราะส่วนที่เหลือของวัตถุเราควรตรวจสอบรหัสเทียบเท่า MySQL ที่เกี่ยวข้องด้วยตนเอง

11) ในขั้นตอนนี้วัตถุจากแหล่งที่มาจะถูกแปลงเป็นวัตถุที่เข้ากันได้กับ MySQL

12) หากทุกอย่างเรียบร้อยเราสามารถดำเนินการต่อโดยเลือกวิธีที่เราต้องการสร้างสกีมาที่ย้ายข้อมูลในเป้าหมาย เราจะใช้ตัวเลือก“ สร้างสคีมาในเป้าหมาย RDBMS” เริ่มต้น

13) ตอนนี้เรามาตรวจสอบกระบวนการสร้าง

14) ในขั้นตอนต่อไปเราสามารถตรวจสอบผลลัพธ์ของการประมวลผลสคริปต์แต่ละครั้งและเราสามารถตรวจสอบฐานข้อมูลใหม่ที่สร้างขึ้นบนเซิร์ฟเวอร์ MySQL ของเรา

15) ณ จุดนี้เราจะมีโครงสร้างฐานข้อมูล แต่เรายังไม่มีข้อมูล ตอนนี้เราจะเลือกวิธีที่เราต้องการคัดลอกข้อมูลในเซิร์ฟเวอร์ MySQL เราจะใช้ตัวเลือก“ สำเนาตารางข้อมูลออนไลน์เพื่อกำหนดเป้าหมาย RDBMS”

16) ในขั้นตอนสุดท้ายเราสามารถตรวจสอบรายงานการย้ายและทำภารกิจให้เสร็จ

อีกวิธีที่ง่ายในการแปลง MS SQL DB เป็น MySQL คือการใช้เครื่องมือ DIY ของ Stellar ที่ชื่อว่า Stellar Converter สำหรับฐานข้อมูลที่สามารถเลือกไฟล์ฐานข้อมูลของฐานข้อมูลที่ต้องการได้โดยตรงและแสดงตัวอย่างของตารางที่เปลี่ยนแปลงได้และหลังจากการแปลง ติดตั้งบนระบบของคุณ ในกรณีนี้คุณจะต้องจัดเตรียมไฟล์ฐานข้อมูล MS SQL และหลังการแปลงไฟล์จะถูกเก็บไว้ในฐานข้อมูล MySQL ที่ติดตั้งในระบบ คุณจะได้รับรุ่นฟรีของซอฟต์แวร์นี้จากดาวฤกษ์เว็บไซต์อย่างเป็นทางการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.