การลดเวลาหยุดทำงานและเพิ่มความพร้อมใช้งานของฐานข้อมูลเป็นเป้าหมายสำคัญที่ทุกธุรกิจปรารถนาจะบรรลุ ผู้ดูแลระบบฐานข้อมูล (DBA) มักจะมองหาวิธีใหม่ๆ ในการจัดหาโซลูชันการกู้คืนที่รวดเร็วขึ้นเสมอ ในกรณีของไฟล์ข้อมูลใดๆ หรือความล้มเหลวของฐานข้อมูลที่เสียหายโดยสมบูรณ์ เริ่มต้นด้วยเวอร์ชัน 10g Oracle® Recovery Manager (RMAN) นำเสนอคุณลักษณะที่เรียกว่า IncrementalMerge Backups (IMB) ซึ่งให้โซลูชันเพื่อลดเวลาในการกู้คืน โดยเฉพาะอย่างยิ่งสำหรับฐานข้อมูลขนาดใหญ่มาก (VLDB)
แนะนำตัว
หากมีการกำหนดค่าด้วยตัวเลือกที่เหมาะสม คุณลักษณะ IMB สามารถลดเวลาการกู้คืนฐานข้อมูลได้อย่างมาก แม้ว่าจะไม่ได้ใช้กันอย่างแพร่หลาย แต่คุณลักษณะนี้เป็นวิธีการสำรองที่เหมาะสำหรับ VLDB สำเนารูปภาพของไฟล์ข้อมูลจะถูกสร้างขึ้น และใช้การสำรองข้อมูลส่วนเพิ่ม ซึ่งจะย้อนกลับสำเนารูปภาพหลังจากดำเนินการสำรองข้อมูลแต่ละครั้ง
โพสต์นี้เน้นย้ำข้อควรพิจารณาบางประการสำหรับการใช้ IMB ให้โค้ดตัวอย่างเพื่ออธิบายกระบวนการ และแสดงสถานการณ์การกู้คืนต่างๆ
ข้อควรพิจารณา
ก่อนใช้กลยุทธ์การสำรองข้อมูลการคัดลอกรูปภาพ โปรดคำนึงถึงข้อควรพิจารณาต่อไปนี้:
-
ต้องเปิดใช้งาน Block Change Tracking (BCT) ในฐานข้อมูล
-
คุณต้องมีพื้นที่ดิสก์เท่ากันเพื่อเก็บสำเนาอิมเมจของฐานข้อมูลในขณะที่ไฟล์ข้อมูลฐานข้อมูลกำลังใช้งานอยู่จริง
-
สำหรับการกู้คืนแบบ point-in-time (PITR) คุณต้องมีข้อมูลสำรองเต็มรูปแบบอย่างน้อยหนึ่งรายการ และต้องเก็บบันทึกถาวรจนกว่าการกู้คืนฐานข้อมูลจะเสร็จสมบูรณ์
-
สำเนารูปภาพของฐานข้อมูลควรอยู่ในที่เก็บข้อมูลประเภทเดียวกัน ในแง่ของอินพุตและเอาต์พุต (I/O) เพื่อให้แน่ใจว่าประสิทธิภาพจะไม่ได้รับผลกระทบระหว่างการสลับไปใช้สำเนาฐานข้อมูล
รูปภาพต่อไปนี้แสดงข้อมูลสำรองที่อัปเดตทีละส่วน:
โค้ดตัวอย่าง
เรียกใช้รหัสต่อไปนี้เพื่อคัดลอกรูปภาพรายวันและอัปเดตทีละส่วน:
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 of database
คำสั่งไม่ทำอะไรเลย backup incremental
คำสั่งสร้าง level 0
. ที่เพิ่มขึ้นใหม่ backuptagged IMG_COPY
เพราะนี่คือข้อมูลสำรองครั้งแรกที่สร้างด้วยแท็กนี้
ในการดำเนินการครั้งที่สอง recover copy of database
คำสั่งไม่ทำอะไรเลยจนกว่าจะพบ INC 1
การสำรองข้อมูล backup incremental
คำสั่งสร้าง INC 1
สำรอง
ในการดำเนินการครั้งที่สามและครั้งต่อๆ มา recover command
ใช้ล่าสุด INC 1
สำรองไปยังสำเนาภาพที่มีอยู่ backup command
สร้าง INC 1
ถัดไป สำรอง
สถานการณ์การกู้คืน
กรณีการใช้งานต่อไปนี้จะอธิบายว่า Incremental Merge Backups ช่วยในสถานการณ์การกู้คืนที่ไม่แตกต่างกันอย่างไร
กรณีที่ 1:ไฟล์ข้อมูลเสียหาย ลบ หรือเขียนทับ
สร้างตารางสำหรับการทดสอบดังแสดงในโค้ดต่อไปนี้ และใช้สคริปต์ก่อนหน้าเพื่อคัดลอกรูปภาพ
SQL> create table ImgCpyTab tablespace tbs2 as select * from dba_objects;
Table created.
FILE_NAME FILE_ID TABLESPACE_NAME
————————- ——————— ———————————————
/home/oracle/Sw/oradata/test/tbs02.dbf 5 TBS2
SQL> select count(1) from ImgCpyTab;
COUNT(1)
———-
72476
ในการทดสอบสถานการณ์นี้ ให้ย้ายไฟล์ข้อมูลจริงตามที่แสดงในโค้ดต่อไปนี้ และ select
คำสั่งแสดงข้อผิดพลาดที่คาดไว้
mv /home/oracle/Sw/oradata/test/tbs02.dbf /home/oracle/Sw/oradata/test/tbs02.dbf_BKP
select count(1) from scott.IMGCPYTAB
*
ERROR at line 1:
ORA-01116: error in opening database file 5
ORA-01110: data file 5: ‘/home/oracle/Sw/oradata/test/tbs02.dbf’
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
ในกรณีนี้ ไม่จำเป็นต้องกู้คืนฟิสิคัลไฟล์ ให้เปลี่ยนไปใช้การสำรองข้อมูลและกู้คืนแทน การดำเนินการนี้รวดเร็วมาก แม้กระทั่งกับไฟล์ข้อมูลหรือขนาดฐานข้อมูลเทราไบต์
รหัสต่อไปนี้ทำให้ datafile เข้าสู่โหมดออฟไลน์:
SQL> alter database datafile 5 offline;
Database altered.
ถัดไป เปลี่ยนไฟล์ข้อมูลเป็นสำเนาและกู้คืน:
[oracle@localhost backup]$ rman target /
Recovery Manager: Release 11.2.0.2.0 – Production on Thu Jun 5 18:17:15 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: TEST (DBID=2122535405)
RMAN> switch datafile 5 to copy;
using target database control file instead of recovery catalog
datafile 5 switched to datafile copy “/home/oracle/backup/data_D-TEST_I-2122535405_TS-TBS2_FNO-5_6ppa3ev1”
RMAN> recover datafile 5;
Starting recover at 05-JUN-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=149 device type=DISK
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 05-JUN-14
RMAN> sql ‘alter database datafile 5 online’;
sql statement: alter database datafile 5 online
RMAN> exit
ตามที่แสดงในรหัสต่อไปนี้ ไฟล์วันที่กลับมาและสามารถเข้าถึงตารางได้:
FILE_NAME FILE_ID TABLESPACE_NAME
————————- ——————— ———————————————
TBS2 /home/oracle/backup/data_D-TEST_I-2122535405_TS-TBS2_FNO-5_6ppa3ev1 AVAILABLE
SQL> select count(1) from scott.IMGCPYTAB;
COUNT(1)
———-
72476
หมายเหตุ: หากคุณเห็น file_name
คุณทราบดีว่าฐานข้อมูลกำลังใช้ไฟล์คัดลอกรูปภาพ
กรณีที่ 2:ฐานข้อมูลเสียหายทั้งหมดหรือดิสก์ล้มเหลว
หากคุณมีฐานข้อมูลเสียหายอย่างสมบูรณ์หรือดิสก์ล้มเหลว คุณสามารถเปลี่ยนฐานข้อมูลเป็นสำเนาได้โดยใช้ขั้นตอนต่อไปนี้:
- ปิดฐานข้อมูล
- หากไฟล์ควบคุมหายไป ให้กู้คืน
- แค็ตตาล็อกสำเนาภาพ
- เปลี่ยนฐานข้อมูลเป็นสำเนา
- กู้คืนจนกว่าไฟล์เก็บถาวรจะพร้อมใช้งาน จากนั้นจึงเปิดฐานข้อมูล
บทสรุป
โพสต์นี้กล่าวถึงวิธีการใช้คุณสมบัติการสำรองและกู้คืนการคัดลอกอิมเมจ RMAN นอกจากนี้ยังมีบางกรณีการใช้งานสำหรับการใช้งานและการกู้คืนไฟล์ข้อมูลและฐานข้อมูลในกรณีที่เกิดความเสียหายทางกายภาพ ฟีเจอร์ Incremental Merge Backups ช่วยลดความยุ่งยากในการสำรองข้อมูลฐานข้อมูล และช่วยให้กู้คืนข้อมูลได้อย่างรวดเร็วและยืดหยุ่น
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม