การลด downtime และเพิ่ม database availability เป็นเป้าหมายสำคัญของทุกธุรกิจ DBAs หาวิธี recovery เร็วขึ้นกรณี data file หรือ database corruption failure ตั้งแต่ version 10g Oracle RMN ให้ฟีเจอร์ Incremental Merge Backups (IMB) ลด recovery time โดยเฉพาะ very large databases (VLDB)
บทนำ
หากตั้งค่าถูกต้อง IMB ลด database recovery time อย่างมีนัยสำคัญ 雖ไม่ค่อยใช้ แต่เป็น backup methodology เหมาะสำหรับ VLDB สร้าง image copies ของ data files แล้วนำ incremental backups มา apply ซึ่ง roll forward image copies หลัง backup ทุกครั้ง
โพสต์นี้เน้น considerations สำหรับ IMB, sample code และ recovery scenarios
ข้อพิจารณา
- Block Change Tracking (BCT) ต้อง enabled ใน database
- ต้องมี disk space เท่ากับขนาด database data files จริง สำหรับเก็บ image copy
- สำหรับ point-in-time recovery (PITR) ต้องมี full backup อย่างน้อย 1 ครั้ง และ archive logs จนกว่า recovery จะเสร็จ
- Image copies ควรอยู่ storage ประเภทเดียวกัน (I/O) เพื่อ performance ไม่ได้รับผลกระทบระหว่าง switch ไป database copy
Sample Code
รันโค้ดต่อไปนี้เพื่อ daily image copy และ update แบบ incremental:
run {
allocate channel c1 device type disk format '/home/oracle/backup/%U';
recover copy of database with tag 'IMG_COPY';
backup incremental level 1 for recover of copy with tag 'IMG_COPY' database;
release channel c1;
}
รอบแรก: recover copy ไม่ทำอะไร backup incremental สร้าง level 0 backup tag IMG_COPY
รอบที่สอง: recover copy ไม่ทำงานจนกว่าจะเจอ INC 1 backups backup incremental สร้าง INC 1 backup
รอบที่สามขึ้นไป: recover command apply last INC 1 backup ไปยัง image copies backup command สร้าง INC 1 backup ถัดไป
Recovery Scenarios
Case 1: Corrupted, Deleted, หรือ Overwritten Data File
สร้างตารางทดสอบ ใช้สคริปต์ข้างต้น取 image copies ทดสอบโดยย้าย physical data file ปิดทำให้ select error
ไม่ต้อง restore physical file เพียง switch ไป backup และ recover เร็วมากแม้ data files หรือ database ขนาด terabytes
SQL> alter database datafile 5 offline;
RMAN> switch datafile 5 to copy;
RMAN> recover datafile 5;
RMAN> sql 'alter database datafile 5 online';
Data file กลับมา ตารางเข้าถึงได้ หมายเหตุ: ดู column file_name จะรู้ว่า database ใช้ image copy file
Case 2: Full Database Corruption หรือ Disk Failure
- Shutdown database
- หาก control file หาย ให้ restore
- Catalog image copies
- Switch database ไป copy
- Recover จนกว่า archives จะพร้อม แล้ว open database
สรุป
โพสต์นี้อธิบายการใช้ RMAN image copy backup และ recovery feature พร้อม use cases สำหรับ implementation และ recovery ของ data files และ databases กรณี physical corruption Incremental Merge Backups ทำให้ database backup ง่ายขึ้น และ recovery เร็วและยืดหยุ่น