วิธีการส่งออกข้อมูลจาก SQL Server 2005 ไปยัง MySQL [ปิด]


88

ฉันหัวเสียกับการSQL Server 2005พยายามดึงข้อมูลจำนวนมากออกมา ฉันได้รับฐานข้อมูลที่มีตารางเกือบ 300 ตารางและฉันจำเป็นต้องเปลี่ยนเป็นฐานข้อมูล MySQL การโทรครั้งแรกของฉันคือการใช้ bcp แต่น่าเสียดายที่มันไม่สร้าง CSV ที่ถูกต้อง - สตริงไม่ได้ถูกห่อหุ้มดังนั้นคุณจึงไม่สามารถจัดการกับแถวใด ๆ ที่มีสตริงที่มีลูกน้ำอยู่ (หรืออะไรก็ตามที่คุณใช้เป็นตัวคั่น) และฉันยังคงต้องเขียนคำสั่งสร้างตารางทั้งหมดด้วยมือเนื่องจาก CSV ไม่ได้บอกอะไรคุณเกี่ยวกับประเภทข้อมูล

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

มีใครรู้จักเครื่องมือดังกล่าวบ้าง? ฉันไม่สนใจว่ามันสร้างขึ้นได้กี่ข้อหรือการทำให้เข้าใจง่ายเกิดขึ้นตราบใดที่มันรองรับจำนวนเต็มจำนวนลอยวันที่เวลาและสตริง ฉันต้องทำการตัดแต่งจำนวนมากทำให้เป็นปกติและอื่น ๆ ดังนั้นฉันจึงไม่สนใจที่จะรักษาคีย์ความสัมพันธ์หรืออะไรทำนองนั้น แต่ฉันต้องการชุดข้อมูลเริ่มต้นอย่างรวดเร็ว!


1
ฉันได้ยินมาไม่กี่คนที่ใช้MSSQL2MySQLประสบความสำเร็จ แต่ฉันไม่สามารถรับรองได้ด้วยตนเอง
Greg Hurlman

1
ฉันได้ยินมาว่า SQLYob สามารถทำได้ < webyog.com/en > ที่นี่: < searchsqlserver.techtarget.com/tip/… >
borjab

เครื่องมือนี้เป็นสิ่งที่คุณถาม: แปลงองค์กรเต็มรูปแบบ จริงอยู่คุณสูญเสียมุมมองขั้นตอนและทริกเกอร์ แต่ได้รับการปรับให้เหมาะสมอย่างมากสำหรับตารางขนาดใหญ่ โซลูชันอื่น (ราคาแพงกว่า) ซึ่งแปลอ็อบเจ็กต์ทั้งหมด (โพรซีเดอร์ ฯลฯ ) คือSqlTran SQL Server เป็น MySQL
Damir Bulic

1
คำตอบที่คล้ายกันที่นี่: stackoverflow.com/questions/11619177/…
Jacob

1
@borjab: SQLyog เคยทำงานกับ ODBC ในเวอร์ชันเก่ากว่า แต่ใช้ไม่ได้อีกต่อไปดังนั้นจึงไม่ใช่ตัวเลือกสำหรับงานนี้
BlaM

คำตอบ:


59

วิธีที่ดีที่สุดที่ฉันพบคือMySQL Migration Toolkit ที่ MySQL จัดหาให้ ฉันใช้มันสำเร็จแล้วสำหรับโครงการการย้ายข้อมูลขนาดใหญ่บางโครงการ


2
+1 - ตอนนี้เป็น EOL และ MySQL Workbench จะรวมปลั๊กอินการย้ายข้อมูล (เวอร์ชันก่อนหน้า 5.2) แต่ตอนนี้ให้ใช้ลิงก์ต่อไปนี้: dev.mysql.com/downloads/gui-tools/5.0.html
Mark Robinson

ไม่ต้องการแปลงคอลัมน์ DATE หรือ DATETIME :(
Robert Ivanc

1
หมายเหตุ: ขณะนี้ MySQL Migration Toolkit ไม่สามารถใช้ได้กับ Linux (จากdev.mysql.com/doc/migration-toolkit/en/… )
mkirk

1
โปรดทราบว่า My SQL Migration Toolkit ต้องการการอัปเดต JDK 5 เวอร์ชัน 32 บิตหรือใหม่กว่า (ต้องเป็นเวอร์ชัน 5 เวอร์ชัน 6 จะใช้งานไม่ได้) ซึ่งคุณสามารถดาวน์โหลดได้ที่นี่: tinyurl.com/5snd6y3
casterle

9

การใช้ MSSQL Management Studio ฉันได้เปลี่ยนตารางด้วย MySQL OLE DB คลิกขวาที่ฐานข้อมูลของคุณและไปที่ "งาน -> ส่งออกข้อมูล" จากที่นั่นคุณสามารถระบุแหล่ง MsSQL OLE DB แหล่งที่มา MySQL OLE DB และสร้างการแมปคอลัมน์ระหว่างแหล่งข้อมูลทั้งสอง

คุณมักจะต้องการตั้งค่าฐานข้อมูลและตารางล่วงหน้าในปลายทาง MySQL (การส่งออกจะต้องการสร้างตารางโดยอัตโนมัติ แต่มักทำให้เกิดความล้มเหลว) คุณสามารถสร้างตารางใน MySQL ได้อย่างรวดเร็วโดยใช้ "Tasks-> Generate Scripts" โดยคลิกขวาที่ฐานข้อมูล เมื่อสร้างสคริปต์การสร้างของคุณแล้วคุณจะต้องทำตามขั้นตอนและค้นหา / แทนที่คำหลักและประเภทที่มีอยู่ใน MSSQL เป็น MYSQL

แน่นอนว่าคุณสามารถสำรองฐานข้อมูลได้ตามปกติและค้นหายูทิลิตี้ที่จะคืนค่าการสำรองข้อมูล MSSQL บน MYSQL ฉันไม่แน่ใจว่ามีอยู่หรือเปล่า


9

รุ่น "Standard", "Developer" และ "Enterprise" ของ SQL Server 2005 มีSSISซึ่งแทนที่ DTS จาก SQL server 2000 SSIS มีการเชื่อมต่อในตัวกับ DB ของตัวเองและคุณสามารถค้นหาการเชื่อมต่อที่คนอื่นเขียนให้ MySQL นี่คือตัวอย่างหนึ่ง เมื่อคุณมีการเชื่อมต่อแล้วคุณจะสามารถสร้างแพ็คเกจ SSIS ที่ย้ายข้อมูลระหว่างทั้งสองได้

ฉันไม่ต้องย้ายข้อมูลจาก SQLServer ไปยัง MySQL แต่ฉันคิดว่าเมื่อติดตั้งการเชื่อมต่อ MySQL แล้วมันจะทำงานเหมือนกับการย้ายข้อมูลระหว่าง SQLServer DB สองตัวซึ่งค่อนข้างตรงไปตรงมา


8

การใช้โซลูชัน PHP ของคุณเองจะใช้งานได้อย่างแน่นอนแม้ว่าฉันไม่แน่ใจว่ามีวิธีที่ดีในการทำสำเนาสคีมาจากฐานข้อมูลหนึ่งไปยังอีกฐานหนึ่งโดยอัตโนมัติหรือไม่ (อาจเป็นคำถามของคุณ)

หากคุณแค่คัดลอกข้อมูลและ / หรือคุณต้องการโค้ดที่กำหนดเองเพื่อแปลงระหว่างสกีมาที่แก้ไขระหว่าง DB ทั้งสองฉันขอแนะนำให้ใช้ PHP 5.2+ และไลบรารี PDO คุณจะสามารถเชื่อมต่อโดยใช้ PDO ODBC (และใช้ไดรเวอร์ MSSQL) ฉันมีปัญหามากมายในการรับช่องข้อความขนาดใหญ่และอักขระหลายไบต์จาก MSSQL ไปยัง PHP โดยใช้ไลบรารีอื่น


6

เครื่องมือในการลองอีกจะเป็นห้องสวีท SQLMaestro เป็นเรื่องยุ่งยากเล็กน้อยในการตอกตะปูเครื่องมือที่แม่นยำ แต่มีเครื่องมือมากมายทั้งแบบฟรีและแบบซื้อที่รองรับงานที่หลากหลายสำหรับแพลตฟอร์มฐานข้อมูลที่หลากหลาย ฉันขอแนะนำให้ลองใช้เครื่องมือ Data Wizard ก่อนสำหรับ MySQL เนื่องจากฉันเชื่อว่าจะมีเครื่องมือ "นำเข้า" ที่เหมาะสมที่คุณต้องการ

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