การสำรองข้อมูล / สแนปชอตของ Amazon RDS ทำงานอย่างไร


95

ฉันเป็นลูกค้า Amazon RDS และกำลังประสบปัญหาเวลาแฝงในการเขียน amazon RDS ซึ่งสอดคล้องกับหน้าต่างสำรองโดยประมาณ ฉันจะเห็นการเพิ่มขึ้นอย่างรวดเร็วในตอนท้ายของสแนปชอต (ในกรณีที่เป็นประเด็น: การเรียกใช้สแนปชอตใช้เวลาประมาณ 1 ชั่วโมงและใน 5 นาทีสุดท้ายให้เขียนการเพิ่มขึ้นของเวลาในการตอบสนอง) ฉันกำลังเรียกใช้การปรับใช้ m1.large แบบหลาย AZ

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

ฉันสามารถแยกปัญหาออกเป็นหกคำถาม:

  • เกิดอะไรขึ้นในทางเทคนิคระหว่างสแนปชอตและข้อมูลสำรองและแตกต่างกันอย่างไร (หากคุณตอบคำถามนี้โปรดบอกฉันว่าคุณสามารถยืนยันคำตอบของคุณในเชิงประจักษ์ได้หรือไม่หรือเพียงแค่อ้างเอกสารประกอบให้ฉัน)
  • เวลาในการตอบสนองการเขียนที่เพิ่มขึ้นเป็นไปได้ที่คาดหวังในระหว่างหน้าต่างสำรองข้อมูลในการปรับใช้หลาย AZ หรือไม่
  • เวลาในการตอบสนองการเขียนที่เพิ่มขึ้นอย่างรวดเร็วคาดว่าจะเกิดขึ้นเมื่อสิ้นสุดสแนปชอตในการปรับใช้หลาย AZ หรือไม่
  • เวลาในการตอบสนองในการเขียนของฉันจะสูงขึ้นหรือไม่ถ้าฉันไม่ใช่หลาย AZ
  • ในทางสถาปัตยกรรมฉันจะสามารถหลีกเลี่ยงการเพิ่มขึ้นของเวลาแฝงในการเขียนเหล่านี้ได้หรือไม่หากฉันรีดฐานข้อมูลของตัวเองที่ทำงานบนอินสแตนซ์ EC2 m1.large สองตัว
  • มีการกำหนดค่าใดบ้างที่ฉันสามารถใช้เพื่อหลีกเลี่ยงการเพิ่มขึ้นของเวลาในการตอบสนองในการเขียนเหล่านี้ในขณะที่ยังโฮสต์ฐานข้อมูลของฉันด้วย RDS หรือฉันอยู่ในความเมตตาของ Amazon อย่างมีประสิทธิภาพ

คำถามโบนัส: คุณโฮสต์ฐานข้อมูล mysql ของคุณที่ไหนและอย่างไร?

ฉันสามารถพูดได้ว่าโดยทั่วไปแล้วฉันพอใจกับ RDS ยกเว้นปัญหาเวลาในการตอบสนองในการเขียนรายวันเหล่านี้ ฉันชอบการตรวจสอบฐานข้อมูลในตัวและมันค่อนข้างง่ายในการตั้งค่าและเริ่มต้นใช้งาน

ขอบคุณ!

เวลาแฝงในการเขียน RDS ของ amazon

คำตอบ:


79

เรายังเรียกใช้อินสแตนซ์ RDS หลายรายการนอกเหนือจาก MySQL ในบางเครื่องที่เราจัดการเอง ฉันไม่สามารถแสดงความคิดเห็นเป็นพิเศษได้เนื่องจากฉันไม่ใช่วิศวกรของ Amazon แต่มีหลายสิ่งที่ฉันได้เรียนรู้ที่อาจอธิบายสิ่งที่คุณเห็น:

  • แม้ว่า Amazon จะไม่เปิดเผยรายละเอียดแบ็กเอนด์ 100% แต่เราสงสัยอย่างยิ่งว่าพวกเขากำลังใช้ระบบ EBS เพื่อสำรองฐานข้อมูล RDS

  • บทความนี้ช่วยอธิบายข้อ จำกัด ของ EBS และฟังก์ชันสแน็ปช็อตhttp://blog.rightscale.com/2008/08/20/amazon-ebs-explained/ อีกครั้งแม้ว่าจะไม่ชัดเจน แต่ก็สมเหตุสมผลที่ Amazon จะใช้โครงสร้างพื้นฐานนี้เพื่อ ให้บริการ RDS

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

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

  • การจำลองแบบในการปรับใช้หลาย AZ นั้นช้าลงโดยเนื้อแท้แล้วการปรับใช้ AZ เดียว ราคาที่คุณจ่ายเพื่อความซ้ำซ้อนที่ดีกว่า


7
ฉันยืนยันได้ว่า Amazon RDS ใช้ EBS เป็นที่เก็บสำรองสำหรับฐานข้อมูล RDS กราฟเวลาตอบสนองในการอ่านและเขียนใน RDS Cloudwatch กำลังอธิบายอินสแตนซ์ EBS ได้อย่างมีประสิทธิภาพ ขอบคุณสำหรับคำตอบนี้มันสมเหตุสมผล
esilver

1
Amazon แบ่งปันรายละเอียดเพิ่มเติมในการชันสูตรศพดับที่นี่aws.amazon.com/message/65648
Joshua

@ Joshua คุณมีความคิดเกี่ยวกับหัวข้อนี้ (ค่อนข้างเกี่ยวข้อง) หรือไม่? stackoverflow.com/questions/6799371/… ขอบคุณ!
esilver

หากใช้แบบจำลองการอ่านจะมีผลต่อแบบจำลองต้นแบบหรือไม่
Matej

1
ขณะนี้เอกสารของ AWS ระบุว่า "การหยุด I / O สั้น ๆ โดยปกติจะใช้เวลาไม่กี่วินาทีเกิดขึ้นระหว่างการสำรองข้อมูลอัตโนมัติและการดำเนินการสแนปช็อต DB บนอินสแตนซ์ AZ DB เดียว" docs.aws.amazon.com/AmazonRDS/latest/UserGuide/…
baxang

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