วันพฤหัสบดีที่ 4 สิงหาคม พ.ศ. 2554

การทำ backup ฐานข้อมูล ออราเคิล


การ Backup ข้อมูลเป็นส่วนหนึ่งที่มีความสำคัญ ในการทำงานแต่ละวันจะมีข้อมูลเพิ่มขึ้นๆทุกวัน หากข้อมูลเกิดการเสียหาย สิ่งที่ทำการ Backup เอาไว้ก็จะนำกลับมาใช้
การ สำรองข้อมูล ฐานข้อมูล ออราเคิล (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 มาแล้วในวันก่อนๆ หรือไม่
 
รูป Full Backup ด้านบน สมมติว่า เรามีการใส่ข้อมูลลงใน Block เพิ่มขึ้น วันละ 1 block เมื่อสิ้นวัน มีการทำ full backup เอาไว้ เวลาทำการ backup มันจะเอา เนื้อ data ทั้งหมดไป ไม่สนใจว่า block นั้น จะเคยโดน backup ไปแล้วในวันก่อนหน้า หรือ ไม่ .. พูดง่ายๆ คือ backup ทบต้นตั้งแต่แรก นั่นเอง
 
--------------------------------------------------------------------------------

Incremental Backupincrement = เพิ่มขึ้น .. การทำ 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
 การทำ cumulative backup จะทำการ backup ส่วนที่เพิ่มต่อ/เปลี่ยนแปลง หลังทำ incremental backup ล่าสุด ที่ level ต่ำกว่ามัน (ในที่นี้คือ ต่อจาก level 0 )
สมมติ ว่า เรามีการใส่ข้
สังเกต ว่า วันที่ day3 กับ day4 มีการ backup block ของวันก่อนหน้า (ที่เป็น level 1 เท่ากัน) บวกกับ ส่วนที่เพิ่มขึ้นมา ณ วันที่แบ็คอัพ สะสมกันไปแบบนี้ จึงเรียกว่า cumulative (สะสม) 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 ครั

ไม่มีความคิดเห็น:

แสดงความคิดเห็น