oracleskill

Home TUTORIAL ความแตกต่างระหว่าง Full , Cumulative Incremental , และ Differential Incremental Backup

ความแตกต่างระหว่าง Full , Cumulative Incremental , และ Differential Incremental Backup
share

การ สำรองข้อมูล ฐานข้อมูล ออราเคิล (Backup Oracle Database ) ด้วยเครื่องมือ RMAN (Recovery Manager) สามารถทำ backup ได้ ทั้งแบบ Full Backup กับ Incremental Backup

และ Incremental Backup ยังแบ่งย่อยได้ ออกเป็น Cumulative incremental backup กับ Differential incremental backup อีก

แล้วการ backup ทั้ง 3 แบบ แตกต่างกันอย่างไร ?

Full Backup

ชื่อ ก็ บอกแล้วครับ ว่าเป็น Full (ทั้งหมด) นั่นคือ จะ backup block ที่มีข้อมูลอยู่ทั้งหมด ไม่ว่าจะ backup มาแล้วในวันก่อนๆ หรือไม่

 

Oracle Full Backup

รูป Full Backup ด้านบน สมมติว่า เรามีการใส่ข้อมูลลงใน Block เพิ่มขึ้น วันละ 1 block เมื่อสิ้นวัน มีการทำ full backup เอาไว้ เวลาทำการ backup มันจะเอา เนื้อ data ทั้งหมดไป ไม่สนใจว่า block นั้น จะเคยโดน backup ไปแล้วในวันก่อนหน้า หรือ ไม่ .. พูดง่ายๆ คือ backup ทบต้นตั้งแต่แรก นั่นเอง

 


 

Incremental Backup

increment = เพิ่มขึ้น .. การทำ incremental backup ก็คือ การ backup เอาเฉพาะเนื้อ data ส่วนที่เพิ่มขึ้นมา นั่นเอง ซึ่งการ backup ครั้งแรก เราต้อง backup เป็น level 0 (ซึ่งคือ full backup) ก่อน เพื่อนำมาเป็นฐาน (based backup) แล้วจึงทำการ backup level 1 ซึ่งเป็นการเอาเฉพาะส่วนที่เพิ่มเติมจาก level 0 มาเก็บ (จริงๆ สามารถทำได้อีกหลาย level แต่เพื่อสร้างพื้นฐาน incremental backup ให้เข้าใจง่ายๆ ผมขอใช้แค่ level 0 กับ level 1 )

Incremental Backup ยังแบ่งย่อย ลงได้อีก 2 แบบ คือ

  • Cumultaive incremental backup
  • Differential incremental backup

 

Cumultaive incremental backup

Cummlative incremental backup

 การทำ cumulative backup จะทำการ backup ส่วนที่เพิ่มต่อ/เปลี่ยนแปลง หลังทำ incremental backup ล่าสุด ที่ level ต่ำกว่ามัน (ในที่นี้คือ ต่อจาก level 0 )

สมมติ ว่า เรามีการใส่ข้อมูลลงใน Block เพิ่มขึ้น วันละ 1 block เมื่อสิ้นวัน มีการทำ cumulative backup เมื่อดูรูป ด้านบน จะเห็นว่า

  • day 1 เป็นการ backup ครั้งแรก ต้องเป็น level 0 (คือ full backup) เพื่อเป็นฐาน ดังนั้น วันนี้จะได้ block1 ไปเก็บ
  • day 2 ทำ level 1 จะ backup ส่วนที่ต่อจาก level ต่ำกว่ามัน (คือ level 0) ดังนั้น วันนี้จะได้ block2 ไปเก็บ
  • day 3 ทำ level 1 จะ backup ส่วนที่ต่อจาก level ต่ำกว่ามัน (คือ level 0) ดังนั้น วันนี้จะได้ block2 และ block3 ไปเก็บ
  • day 4 ทำ level 1 จะ backup ส่วนที่ต่อจาก level ต่ำกว่ามัน (คือ level 0) ดังนั้น วันนี้จะได้ block2 , block3 , block4 ไปเก็บ

สังเกต ว่า วันที่ day3 กับ day4 มีการ backup block ของวันก่อนหน้า (ที่เป็น level 1 เท่ากัน) บวกกับ ส่วนที่เพิ่มขึ้นมา ณ วันที่แบ็คอัพ สะสมกันไปแบบนี้ จึงเรียกว่า cumulative (สะสม) backup นั่นเอง

 

Differential incremental backup

Differential Incremental Backup

 การทำ differential backup จะทำการ backup ส่วนที่เพิ่มต่อ/เปลี่ยนแปลง หลังทำ incremental backup ล่าสุด ที่ level เท่ากับ หรือ ต่ำกว่ามัน (ในที่นี้คือ ต่อจาก level 0 และ level 1 ของวันก่อนหน้า ) สมมติว่า เรามีการใส่ข้อมูลลงใน Block เพิ่มขึ้น วันละ 1 block เมื่อสิ้นวัน มีการทำ differential backup เมื่อดูรูป ด้านบน จะเห็นว่า

  • day 1 เป็นการ backup ครั้งแรก ต้องเป็น level 0 (คือ full backup) เพื่อเป็นฐาน ดังนั้น วันนี้จะได้ block1 ไปเก็บ
  • day 2 ทำ level 1 จะ backup ส่วนที่ต่อจาก level เท่ากับหรือต่ำกว่ามัน ดังนั้น วันนี้จะได้ block2 ไปเก็บ
  • day 3 ทำ level 1 จะ backup ส่วนที่ต่อจาก level เท่ากับหรือต่ำกว่ามัน ดังนั้น วันนี้จะได้ block3 ไปเก็บ
  • day 4 ทำ level 1 จะ backup ส่วนที่ต่อจาก level เท่ากับหรือต่ำกว่ามัน ดังนั้น วันนี้จะได้ block4 ไปเก็บ

ใน การใช้ RMAN ถ้าเราบอกว่าให้แบ็คอัพแบบ incremental backup โดยไม่ระบุว่าเป็น differential หรือ cumulative มันจะเป็น differential โดย default ครับ

เอาไปคิดต่อนะ .. ว่า การแบ็คอัพแต่ละประเภทข้างบน อย่างไหน เวลา backup เร็วกว่า และ เวลา restore อย่างไหนเร็วกว่า

 

 

share