โอนย้ายฐานข้อมูล heroku ไปยัง Amazon RDS ด้วยเวลาหยุดทำงานขั้นต่ำ


15

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

ฉันรู้ว่าฉันสามารถใช้ฐานข้อมูลผู้ติดตามเพื่อย้ายฐานข้อมูลภายใน heroku และฉันสามารถใช้ฐานข้อมูลแบบจำลองการอ่านเพื่อย้ายฐานข้อมูลภายใน Amazon RDS มีวิธีการคล้ายกันในการสร้างการจำลองแบบฐานข้อมูลของ heroku DB ที่อาศัยอยู่ใน Amazon RDS ของฉันเองหรือไม่?


2
คุณสามารถสร้างทาสได้ใน RDS เมื่อทุกอย่างถูกจำลองเอาออก heroku master เลื่อน RDS ไปเป็น Master
Sam

2
@ SamD ฉันไม่คิดว่า Amazon สนับสนุนทาส PostgreSQL ที่ได้รับจากฐานข้อมูลภายนอก พวกเขาเพิ่มที่? ผมไม่เห็นมันในdocs.aws.amazon.com/AmazonRDS/latest/UserGuide/... หากมีการเพิ่มลิงก์เอกสารจะได้รับการชื่นชมอย่างมาก คุณจะให้มันpg_basebackupเริ่มต้นอย่างไร และจัดการกับรุ่นหลักที่แตกต่างกันอย่างไร
Craig Ringer

คำตอบ:


3

ค่อนข้างแน่ใจว่าคุณจะต้องทำการถ่ายโอนข้อมูลที่ล้าสมัยและดีที่นี่ Amazon ดูเหมือนจะไม่มีตัวเลือกการนำเข้าอื่น ๆ นอกเหนือจากการโหลดในการถ่ายโอนข้อมูล:

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html

และแม้ว่าพวกเขาจะทำเช่นนั้น AFAICT ตัวเลือกการเอ็กซ์ปอร์ตเฉพาะที่เสนอโดย Heroku คือ pg_dumps (เช่นไม่ใช่แบ็คอัพสำรองหรือความสามารถในการตั้งค่าโหนดฮอตสแตนภายนอกภายนอก):

https://devcenter.heroku.com/articles/heroku-postgres-import-export

หากคุณโชคดีคุณกำลังใช้รุ่น Postgres ใหม่พอที่จะรองรับทั้ง pg_dump แบบขนาน (9.3+) และ pg_restore แบบขนาน (8.4+) ซึ่งจะทำให้งานของคุณเร็วขึ้น และหวังว่าคุณจะสามารถใช้หน้าต่างการบำรุงรักษาในระหว่างที่คุณล็อกการเขียนไปยังเว็บไซต์ของคุณในขณะที่การเปลี่ยนแปลงกำลังดำเนินการอยู่ ...


1

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

เมื่อตั้งค่านี้แล้วคุณจะมีบันทึกใหม่ที่เก็บไว้ในฐานข้อมูลทั้งสอง

ควรง่ายพอที่จะดูว่าระเบียนใดขาดหายไป (ตัวอย่างเช่น: ในตารางที่ 1 ระเบียนทั้งหมดที่มี id 100 หรือต่ำกว่าหายไป) โดยอ่านแถวแรกในฐานข้อมูล RDS จากนั้นการเขียนสคริปต์การส่งออกอย่างง่ายไม่ควรยากเกินไปถ้าคุณไม่มีตารางจำนวนมาก

หวังว่ามันจะช่วย


1

ดูเหมือนว่า AWS DMS (บริการย้ายข้อมูลฐานข้อมูล) สนับสนุนการย้ายข้อมูลจากอินสแตนซ์ SQL ภายนอก ฉันสามารถตั้งค่างานการย้ายข้อมูลที่จำลองข้อมูลและการเปลี่ยนแปลงจาก Heroku เป็น RDS ไม่ว่าจะใช้งานได้จริงสำหรับฉันก็ยังไม่ได้เห็น;)

--- แก้ไข ---

ดูเหมือนว่าบริการอย่าง DMS จะไม่ทำงานกับ Heroku เพราะพวกเขาต้องการบทบาทพิเศษมากกว่าที่ Heroku อนุญาตในฐานข้อมูลของพวกเขา: https://help.heroku.com/E10ZZ6IJ/why-can-ti-use-third-party-tools -to- ซ้ำ-Heroku-postgres ฉันฐานข้อมูลเพื่อ-a-ไม่ใช่ Heroku ฐานข้อมูล

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