ทำซ้ำฐานข้อมูล MySQL ระยะไกลไปยัง MS SQL Server 2008


10

ฉันต้องการทำซ้ำเนื้อหาของฐานข้อมูล MySQL เป็นฐานข้อมูล MS SQL Server 2008

เป็นไปได้ไหม ใครสามารถร่างขั้นตอนที่จำเป็นเพื่อให้บรรลุนี้

ขอบคุณ

คำตอบ:


9

โดยส่วนตัวแล้วฉันจะใช้วิธี MS SQL เปรียบเทียบกับวิธีการกดจาก MySQL ทำไม? Windows มีไดร์เวอร์ MySQL ODBC 32 บิตและ 64 บิตพร้อมที่จะไปและการตั้งค่าเซิร์ฟเวอร์ที่เชื่อมโยงเป็นเรื่องเล็กน้อย ฉันมีเซิร์ฟเวอร์ MySQL มากมายที่เชื่อมโยงกับจาก MS SQL นอกจากนี้การเชื่อมต่อกับ MS SQL จาก linux / unix นั้นยอดเยี่ยมและคุณไม่สามารถใช้คุณสมบัติทั้งหมดได้ FreeTDS มีข้อ จำกัด คุณอาจจะโจมตีพวกมันเร็วกว่านี้ในภายหลังดังนั้นทำไมไม่เพียงข้ามมันไป ทั้งหมดนี้ถือว่าคุณใช้งาน MySQL บน * ระวัง ถ้าไม่ใช่มันจะเข้าใกล้ 50/50 นิดหน่อย แต่ฉันก็ยังเลือกที่จะดึงจาก MS SQL เพราะดูเหมือนว่ามันไม่ใช่ฐานข้อมูล "สด" ดังนั้นการวางภาระให้กับ ETL หรือการประมวลผลนั้นเหมาะกว่า โซลูชัน GoldenGate ฟังดูน่าสนใจ แต่ฉันแน่ใจว่ามันฟรี

เมื่อพิจารณาฉันได้ติดตั้งสถานการณ์แบบนี้ทั้งฐานข้อมูล MySQL และ Oracle ที่จำลองเป็น MS SQL ฉันจะให้คำแนะนำที่ใช้งานได้ดีที่สุดสำหรับฉัน:

  1. หากทำได้ให้ทำอย่างดีที่สุดเพื่อกำหนดว่าคุณจะมั่นใจได้อย่างไรว่าคุณได้นำการเปลี่ยนแปลงเดลต้าเท่านั้น คำสั่งผสานสามารถช่วยได้ การตัดทอนตารางจากนั้นแทรกทั้งหมดลงในบันทึกของคุณอีกครั้งใช้แบนด์วิดท์เครือข่ายและเสียเวลาโดยทั่วไป
  2. ถ้าจัดการกับข้อมูลจำนวนมากต้องแน่ใจว่าการทำธุรกรรมแตกหักเพื่อไม่ให้ต้องใช้ไฟล์บันทึกขนาดใหญ่ ใช้ความมุ่งมั่นหรือจุดตรวจที่ชัดเจนเมื่อคุณมาถึงขั้นตอนที่คุณรู้ว่าคุณไม่จำเป็นต้องย้อนกลับ
  3. หาก MSSQL db สำหรับการรายงานเท่านั้นให้ทำ ETL ที่นั่นเพื่อไม่ให้กระทบกับเซิร์ฟเวอร์ MySQL ใช้ฐานข้อมูลหรือ schema + filegroup เพื่อให้ง่ายขึ้น
  4. แบ่งข้อมูลที่นำเข้าเป็นขั้นตอน สิ่งนี้ทำให้ง่ายต่อการเริ่มการนำเข้าใหม่ในกรณีที่ล้มเหลวและ / หรือแก้ไขปัญหา วิธีการทั้งหมดหรือไม่มีอะไรกลายเป็นที่น่ารำคาญอย่างรวดเร็ว
  5. ใช้ตัวแปรทุกที่ที่เป็นไปได้เพื่อช่วยเหลือ db ฐานข้อมูลแบบรีโมตด้วยการใช้เคียวรีแผน & ดัชนี และให้ความสนใจกับการแยกประเภทธุรกรรมที่คุณอยู่ในกล่องโฮสต์และสิ่งที่มีผลกระทบต่อคำสั่ง "การจำลองแบบ" ที่จะมี คุณไม่ต้องการบล็อกนักเขียนบน live db หากคุณเพิ่งดึงข้อมูลมาเพื่อการรายงานหรือการใช้ Sandbox

หวังว่าเคล็ดลับช่วย!


4

คำถามเดียวกันถูกส่งใน StackOverflow ที่นี่: การจำลองแบบจาก MySQL เพื่อ MSSQL

ดูเหมือนว่าจะมีวิธีแก้ไขปัญหาบางอย่าง แต่ไม่ใช่วิธีแก้ปัญหาที่ง่ายมาก

ฉันเชื่อว่าคุณควรลองสร้างแพคเกจ SSIS เพื่อนำเข้าข้อมูลที่จำเป็นจากฐานข้อมูล MySQL ไปยังฐานข้อมูล MSSQL SSIS อนุญาตให้นำเข้าข้อมูลจากแหล่งต่าง ๆ จากนั้นคุณควรจะสามารถกำหนดตารางเวลาของแพคเกจโดยใช้ตัวกำหนดเวลางาน windows หรืองาน sql


3

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


ฉันหมายถึงฉันต้องการงานที่กำหนดเวลาให้ทำงานและคัดลอกเนื้อหาทั้งหมดจาก msqldb ไปยัง sql server 2008 db สัปดาห์ละครั้งหรือมากกว่านั้น - เป็นไปได้ไหม?
Jimmy Collins

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

1
ฉันเห็นด้วยเดลต้าเป็นวิธีที่จะไป ฉันไม่รู้ว่า MySQL พอที่จะพูดกับทริกเกอร์และบิตแถวสกปรก แต่ฉันแน่ใจว่ามีบางสิ่งที่สามารถตั้งค่าได้ ทางฝั่งเซิร์ฟเวอร์ SQL การกำหนดตารางเวลางานให้ตรงไปตรงมา
Larry Smithmier

3

คุณสามารถใช้ GoldenGate สำหรับMySQLและMS SQLได้ คุณเพียงแค่ติดตั้งผลิตภัณฑ์ GoldenGate ในแต่ละด้านจากนั้นดำเนินการจำลองแบบที่เป็นเนื้อเดียวกัน

อีกวิธีหนึ่งสำหรับการจำลองแบบ "snapshot" คุณสามารถใช้สคริปต์ Python (หรือคล้ายกัน) เพื่อเชื่อมต่อกับแหล่งข้อมูลทั้งสอง (โดยใช้UnixODBCและFreeTDSเพื่อเชื่อมต่อกับ MS SQL) วนรอบตารางที่ทำSELECTด้านเดียวสำหรับแต่ละแถวINSERTในที่อื่น ๆ ในฐานะที่เป็น MSSQL มีการทำธุรกรรมและเป็นเป้าหมายของคุณคุณสามารถเริ่มต้นการทำธุรกรรมDELETEทุกอย่างจากทุกตารางทำสำเนาจากนั้นCOMMITมันจะปรากฏขึ้นทันทีที่ผู้ใช้ที่เชื่อมต่อกับเป้าหมายมีความกังวลจะไม่มีความไม่สอดคล้องกัน แหล่งที่มาของหลักสูตร)


ฉันไม่ทราบว่านี่เป็นสิ่งที่คุณสามารถทำได้กับ GoldenDate ฉันจะต้องอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้; ขอบคุณสำหรับการแบ่งปัน!
AndrewSQL

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