ซิงค์ฐานข้อมูล MySQL สองแห่งในตำแหน่งที่ต่างกันสองแห่ง


19

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


คุณสามารถอ้างอิงคำตอบที่มีอยู่ที่โพสต์ได้ที่นี่ใน StackOverflow stackoverflow.com/questions/52583/ …
Mahesh Patil

เกี่ยวกับ # 2 ถ้าฉันถ่ายโอนข้อมูลเต็มรูปแบบจากภายในและนำเข้าในการผลิตมันจะเขียนทับฐานข้อมูลออนไลน์ฉันหมายความว่าฉันมีผู้ซื้อออนไลน์บนเว็บฐานข้อมูลที่โฮสต์และฉันต้องการย้ายฐานข้อมูลภายในซื้อเป็นสด เกิดขึ้นกับการเพิ่มขึ้นอัตโนมัติระหว่างสองถ้าพวกเขาทั้งสองกำลังจอง id เดียวกันมันจะเข้มงวด rigth!
shareef

คำตอบ:


20

คุณมีตัวเลือกน้อย:

  1. ตั้งค่าการจำลองแบบ MySQL ระหว่างเซิร์ฟเวอร์ เซิร์ฟเวอร์ภายในของคุณสามารถทำหน้าที่เป็น Master และเซิร์ฟเวอร์โฮสต์เว็บเป็นสลาฟ การอัพเดทใด ๆ ที่ทำบน Master จะถูกจำลองแบบไปยัง Slave ทันที (สมมติว่ามีการเชื่อมต่อที่ใช้งานได้) นี่จะเป็นตัวเลือกที่ง่ายที่สุดและมีประสิทธิภาพที่สุดในการเลือก หากต้องการใช้การจำลองแบบฐานข้อมูลภายในของคุณจะต้องสามารถเข้าถึงได้ผ่านเครือข่ายจากเว็บโฮสต์

    คุณสามารถอ่านเพิ่มเติมเกี่ยวกับการจำลองแบบที่นี่

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

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

หากไม่มีการเชื่อมต่อระหว่างฐานข้อมูลทั้งสองการใช้ mysqldumps ในแต่ละวันจะเป็นเส้นทางที่ง่ายที่สุด


เกี่ยวกับ # 2 ถ้าฉันถ่ายโอนข้อมูลเต็มรูปแบบจากภายในและนำเข้าในการผลิตมันจะเขียนทับฐานข้อมูลออนไลน์ฉันหมายความว่าฉันมีผู้ซื้อออนไลน์บนเว็บฐานข้อมูลที่โฮสต์และฉันต้องการย้ายฐานข้อมูลภายในซื้อเป็นสด เกิดขึ้นกับการเพิ่มขึ้นอัตโนมัติระหว่างสองถ้าพวกเขาทั้งสองกำลังจอง id เดียวกันมันจะเข้มงวด rigth!
shareef

4

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


2

วิธีการตั้งค่าการจำลองแบบฐานข้อมูลด้วย MariaDB: https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/


1
ยินดีต้อนรับสู่ DBA.SE ขอขอบคุณสำหรับความร่วมมือและการมีส่วนร่วมของคุณ อย่างไรก็ตามชุมชนคาดหวังคุณภาพที่แน่นอนในคำตอบที่โพสต์ โปรดลองอ่านบทความต่อไปนี้: ฉันจะเขียนคำตอบที่ดีได้อย่างไร (ศูนย์ช่วยเหลือ)ในส่วนตอบคำถามมีประโยคสั้น ๆ ที่อ่าน: มีการสนับสนุนลิงก์ไปยังแหล่งข้อมูลภายนอก แต่โปรดเพิ่มบริบทรอบลิงก์เพื่อให้ผู้ใช้เพื่อนของคุณจะมีความคิดว่ามันคืออะไรและทำไมมันถึงมี
John aka hot2use

0

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

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