Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

การกู้คืนความเร็วกระสุนโดยใช้ภาพที่อัปเดตแบบเพิ่มหน่วย

การลดเวลาหยุดทำงานและเพิ่มความพร้อมใช้งานของฐานข้อมูลเป็นเป้าหมายสำคัญที่ทุกธุรกิจปรารถนาจะบรรลุ ผู้ดูแลระบบฐานข้อมูล (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:ฐานข้อมูลเสียหายทั้งหมดหรือดิสก์ล้มเหลว

หากคุณมีฐานข้อมูลเสียหายอย่างสมบูรณ์หรือดิสก์ล้มเหลว คุณสามารถเปลี่ยนฐานข้อมูลเป็นสำเนาได้โดยใช้ขั้นตอนต่อไปนี้:

  1. ปิดฐานข้อมูล
  2. หากไฟล์ควบคุมหายไป ให้กู้คืน
  3. แค็ตตาล็อกสำเนาภาพ
  4. เปลี่ยนฐานข้อมูลเป็นสำเนา
  5. กู้คืนจนกว่าไฟล์เก็บถาวรจะพร้อมใช้งาน จากนั้นจึงเปิดฐานข้อมูล

บทสรุป

โพสต์นี้กล่าวถึงวิธีการใช้คุณสมบัติการสำรองและกู้คืนการคัดลอกอิมเมจ RMAN นอกจากนี้ยังมีบางกรณีการใช้งานสำหรับการใช้งานและการกู้คืนไฟล์ข้อมูลและฐานข้อมูลในกรณีที่เกิดความเสียหายทางกายภาพ ฟีเจอร์ Incremental Merge Backups ช่วยลดความยุ่งยากในการสำรองข้อมูลฐานข้อมูล และช่วยให้กู้คืนข้อมูลได้อย่างรวดเร็วและยืดหยุ่น

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม