Commit vs Fast Commit vs Commit Cleanout ในฐานข้อมูล Oracle


12

ฉันสงสัยว่ามีบางคนสามารถตรวจสอบความเข้าใจของฉันเกี่ยวกับความแตกต่างระหว่าง 3 คำเหล่านั้นเกี่ยวกับฐานข้อมูล Oracle หรือไม่

แหล่งข้อมูลหลายแห่งทำให้คำเหล่านี้สับสนและไม่อธิบายรายละเอียดดังนั้นจึงเป็นเรื่องยากที่จะค้นหาข้อมูล

จากสิ่งที่ฉันรวบรวม:

  1. ความมุ่งมั่นและความมุ่งมั่นอย่างรวดเร็วเป็นสิ่งเดียวกันแน่นอนการกระทำทั้งหมดนั้นเป็นการกระทำที่รวดเร็ว
  2. การยอมรับอย่างรวดเร็วเป็นหลักเท่านั้นที่ปรับปรุงการตั้งค่าสถานะในตารางธุรกรรมของส่วนหัวของการเลิกทำ / ย้อนกลับเพื่อระบุว่าการทำธุรกรรมได้กระทำ อย่างไรก็ตามบล็อกที่เกิดขึ้นจริงจะไม่ได้รับการตรวจสอบอีกต่อไปซึ่งหมายความว่าที่อยู่การยกเลิกไบต์ (UBA) ในรายการธุรกรรมที่สนใจ (ITL) ซึ่งอยู่ในส่วนหัวของบล็อกข้อมูลยังคงชี้ไปที่ตารางธุรกรรมของกลุ่มการเลิกทำที่สอดคล้องกัน นอกจากนี้ไบต์ล็อคของแถวที่เกี่ยวข้องจะไม่ถูกปล่อยออกมาและจำนวนการล็อคใน ITL จะไม่เปลี่ยนแปลง (แถวยังคงล็อคอยู่)
  3. ในการคอมมิทการล้างข้อมูลบล็อกจะถูกตรวจทานอีกครั้งและ ITL ได้รับการอัพเดตด้วย commit SCN อย่างไรก็ตามจำนวนการล็อคใน ITL และล็อคไบต์ที่เก็บไว้ในแต่ละแถวยังคงไม่ได้รับการปรับปรุง (แถวยังคงล็อคเหมือนการกระทำที่รวดเร็ว) สิ่งนี้จะไม่สร้างการทำซ้ำแม้ว่าบล็อกจะเปลี่ยนไป
  4. บล็อกที่มีความมุ่งมั่นตามปกติ (== มุ่งมั่นอย่างรวดเร็ว) จะได้รับการล้างข้อมูลบล็อกล่าช้าเมื่อพวกเขาถูกแตะครั้งต่อไป (และสร้างการทำซ้ำ)
  5. บล็อกที่มีการกระทำการล้างข้อมูลจะได้รับการล้างข้อมูลบล็อกล่าช้าเมื่อมีการแตะครั้งถัดไป (และสร้างการทำซ้ำ)

หวังว่าใครบางคนสามารถตรวจสอบคะแนนเหล่านี้! ขอบคุณ!

คำตอบ:


6

คุณมีพื้นฐานที่ถูกต้อง มีเพียงหนึ่งประเภทของการกระทำ ( แต่ไม่ปกติ , รวดเร็ว ... )

จากเอกสารแนวคิด :

เมื่อการทำธุรกรรมกระทำต่อไปนี้เกิดขึ้น:

  • มีการสร้างเลขที่การเปลี่ยนแปลงระบบ (SCN) สำหรับ COMMIT

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

  • กระบวนการตัวบันทึก (LGWR) เขียนรายการบันทึกการทำซ้ำที่เหลือในบัฟเฟอร์บันทึกการทำซ้ำในบันทึกการทำซ้ำออนไลน์และเขียนธุรกรรม SCN ไปยังบันทึกการทำซ้ำออนไลน์ เหตุการณ์อะตอมนี้ถือเป็นการกระทำของธุรกรรม

  • Oracle Database รีลีสล็อคที่จัดขึ้นในแถวและตาราง

    ผู้ใช้ที่ถูกจัดคิวรอการล็อกที่ถูกทำขึ้นโดยธุรกรรมที่ไม่ได้รับอนุญาตจะได้รับอนุญาตให้ทำงานต่อไป

  • ฐานข้อมูล Oracle ลบจุดบันทึก

  • ฐานข้อมูล Oracle ดำเนินการล้างข้อมูล

    หากบล็อกที่ถูกแก้ไขซึ่งมีข้อมูลจากทรานแซคชันที่ทำสัญญายังคงอยู่ใน SGA และหากไม่มีการแก้ไขเซสชันอื่น ๆ ฐานข้อมูลจะลบข้อมูลธุรกรรมที่เกี่ยวข้องกับล็อคออกจากบล็อก ตามหลักแล้ว COMMIT จะล้างออกบล็อกเพื่อให้ SELECT ที่ตามมาไม่จำเป็นต้องทำภารกิจนี้

ดังนั้นการล้างข้อมูล (เต็มไปด้วยการทำซ้ำ) จะดำเนินการในระหว่างการคอมมิชชันถ้าบล็อกยังคงอยู่ใน SGA

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

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