การเก็บถาวรฐานข้อมูล Oracle® ช่วยให้คุณเก็บรักษาและจัดเก็บข้อมูลได้ในระยะยาว แต่จะเกิดอะไรขึ้นหากคุณไม่มีพื้นที่เหลือ
แนะนำตัว
หากปลายทางการเก็บถาวรเต็ม Oracle Database ของคุณอาจค้างหรือหยุดทำงาน และคุณอาจเห็นข้อผิดพลาดข้อใดข้อหนึ่งต่อไปนี้:
- 0RA-00257 :ข้อผิดพลาด Archiver เชื่อมต่อภายในเท่านั้นจนกว่าจะว่าง
- ORA-16014 :บันทึก 2 ลำดับ # 1934 ไม่ถูกเก็บถาวร ไม่มีปลายทางที่ใช้ได้
ในกรณีนี้ คุณต้องมีปลายทางการเก็บถาวรสำรองเพื่อใช้เมื่อปลายทางการเก็บถาวรเดิมล้มเหลว คุณสามารถใช้ปลายทางการเก็บถาวรสำรองในกรณีที่เกิดความล้มเหลวใดๆ (ช่องว่าง ฮาร์ดแวร์ และอื่นๆ) ในปลายทางการเก็บถาวรหลัก
มาดูการสาธิตสั้นๆ เพื่อทำความเข้าใจวิธีการทำงานกัน
สาธิตตอนที่หนึ่ง
ขั้นแรก ฉันตั้งค่าปลายทางการเก็บถาวรหลักเป็น /u03/primary_dest location ซึ่งปัจจุบันมีการใช้งาน 99% คุณทำแบบทดสอบได้เหมือนกัน
จากนั้นรันคำสั่งต่อไปนี้:
SQL> select version from v$instance;
VERSION
-----------------
12.1.0.2.0
SQL> select DEST_NAME,TARGET,DESTINATION,VALID_ROLE,STATUS
from v$archive_dest where status!='INACTIVE';
DEST_NAME TARGET DESTINATION VALID_ROLE STATUS
--------------------- ---------- -------------------- ------------ ---------
LOG_ARCHIVE_DEST_1 PRIMARY /u03/primary_dest ALL_ROLES VALID
สาธิตส่วนที่สอง
มาเพิ่มปลายทางการเก็บสำรองอื่น /u04/alternate_dest ซึ่งระบบสามารถใช้ได้หากปลายทางหลักไม่พร้อมใช้งาน
SQL> !df -h /u04/alternate_dest
Filesystem Size Used Avail Use% Mounted on
/dev/ddg2 1004M 18M
936M 2% /u04
SQL> alter system set log_archive_dest_2='LOCATION=/u04/alternate_dest' scope=both;
System altered.
SQL> alter system set log_archive_dest_state_2=ALTERNATE scope=both;
System altered.
SQL> select DEST_NAME,TARGET,DESTINATION,VALID_ROLE,STATUS,ALTERNATE from v$archive_dest where status!='INACTIVE';
DEST_NAME TARGET DESTINATION VALID_ROLE STATUS ALTERNATE
------------------- ----------- ------------------- ------------ ----------- ---------
LOG_ARCHIVE_DEST_1 PRIMARY /u03/primary_dest ALL_ROLES VALID NONE
LOG_ARCHIVE_DEST_2 PRIMARY /u04/alternate_dest ALL_ROLES ALTERNATE NONE
สาธิตตอนที่สาม
คุณสามารถเชื่อมโยงปลายทางหลักและปลายทางการเก็บถาวรสำรอง และ Oracle สามารถเฟลโอเวอร์ไปยังตำแหน่งเก็บถาวรสำรองเมื่อตำแหน่งหลักมีการใช้งานถึง 100% อย่างไรก็ตาม Oracle จะไม่สามารถดำเนินการย้อนกลับไปยังปลายทางหลักหลังจากที่สามารถใช้งานได้อีกครั้ง เพื่อให้ใช้งานได้ คุณต้องตั้งค่าปลายทางหลักในการเก็บถาวรLOG_ARCHIVE_DEST_1 เป็น ทางเลือก สำหรับปลายทางเก็บถาวรสำรองLOG_ARCHIVE_DEST_2 ดังแสดงในตัวอย่างต่อไปนี้:
SQL> alter system set log_archive_dest_2='LOCATION=/u04/alternate_dest
NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_1' scope=both;
System altered.
SQL> alter system set log_archive_dest_1='LOCATION=/u03/primary_dest
NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_2' scope=both;
System altered.
SQL> select DEST_NAME,TARGET,DESTINATION,VALID_ROLE,STATUS,ALTERNATE
from v$archive_dest where status!='INACTIVE';
DEST_NAME TARGET DESTINATION VALID_ROLE STATUS ALTERNATE
-------------------- ----------- -------------------- ------------ ---------- ------------------
LOG_ARCHIVE_DEST_1 PRIMARY /u03/primary_dest ALL_ROLES VALID LOG_ARCHIVE_DEST_2
LOG_ARCHIVE_DEST_2 PRIMARY /u04/alternate_dest ALL_ROLES ALTERNATE LOG_ARCHIVE_DEST_1
คุณสามารถตรวจสอบเพื่อยืนยันว่าคุณได้เชื่อมโยงปลายทางการเก็บถาวรหนึ่งและสองแล้ว ขณะนี้ Oracle ควรจะสามารถล้มเหลวในการกลับไปยังหลักหลังจากที่หลักมีพื้นที่ว่าง
สาธิตตอนที่สี่
ต่อไป ฉันดำเนินการ DML บางส่วนเพื่อให้ปลายทางการเก็บถาวรมีการใช้งาน 100% ดังแสดงในผลลัพธ์ต่อไปนี้:
Thread 1 is advanced to log sequence 20 (LGWR switch)
Current log# 2 seq# 20 mem# 0: /u01/app/oracle/oradata/MODI/redo02.log
2020-12-05T04:44:29.216275+05:30
ARC0: Encountered disk I/O error 19502
2020-12-05T04:44:29.216575+05:30
ARC0: Closing local archive destination LOG_ARCHIVE_DEST_1 '/u03/primary_dest/1_19_1058325294.dbf' (error 19502) (MODI)
2020-12-05T04:44:29.217417+05:30
Errors in file /u01/app/oracle/diag/rdbms/modi/MODI/trace/MODI_arc0_23015.trc:
ORA-27072: File I/O error
Additional information: 4
Additional information: 350208
Additional information: 446464
ORA-19502: write error on file "/u03/primary_dest/1_19_1058325294.dbf", block number 350208 (block size=512)
2020-12-05T04:44:32.583182+05:30
MODIP(3):Resize operation completed for file# 11, old size 1172480K, new size 1182720K
2020-12-05T04:44:33.183355+05:30
Errors in file /u01/app/oracle/diag/rdbms/modi/MODI/trace/MODI_arc0_23015.trc:
ORA-19502: write error on file "/u03/primary_dest/1_19_1058325294.dbf", block number 350208 (block size=512)
ORA-27072: File I/O error
Additional information: 4
Additional information: 350208
Additional information: 446464
ORA-19502: write error on file "/u03/primary_dest/1_19_1058325294.dbf", block number 350208 (block size=512)
ขั้นตอนที่ห้า
Oracle พยายามเก็บถาวรไปยังปลายทางหลักเสมอ และการย้อนกลับอัตโนมัติไปยังปลายทางหลักจะทำงานในเวอร์ชัน 12c หลังจากที่คุณล้างข้อมูลปลายทางหลักและทำให้พร้อมใช้งานสำหรับการเก็บถาวร Oracle ยังคงเก็บบันทึกการทำซ้ำไปยังปลายทางหลักโดยไม่รายงานข้อผิดพลาดหรือข้อความแสดงความล้มเหลวในไฟล์บันทึกการแจ้งเตือน ดังที่แสดงในตัวอย่างต่อไปนี้ที่ฉันสอบถาม v$archived_log :
SQL> เลือกเธรด#, ลำดับ#, ชื่อจาก v$archive_log;
THREAD# SEQUENCE# NAME
-------- ---------- -----------------------------------------------
1 2 /u03/primary_dest/1_2_1058325294.dbf
1 3 /u03/primary_dest/1_3_1058325294.dbf
1 4 /u03/primary_dest/1_4_1058325294.dbf
1 5 /u03/primary_dest/1_5_1058325294.dbf
1 6 /u04/alternate_dest/1_6_1058325294.dbf
1 7 /u04/alternate_dest/1_7_1058325294.dbf
1 8 /u04/alternate_dest/1_8_1058325294.dbf
1 9 /u04/alternate_dest/1_9_1058325294.dbf
1 10 /u04/alternate_dest/1_10_1058325294.dbf
1 11 /u04/alternate_dest/1_11_1058325294.dbf
1 12 /u04/alternate_dest/1_12_1058325294.dbf
1 13 /u04/alternate_dest/1_13_1058325294.dbf
1 14 /u04/alternate_dest/1_14_1058325294.dbf
1 15 /u04/alternate_dest/1_15_1058325294.dbf
1 16 /u04/alternate_dest/1_16_1058325294.dbf
1 17 /u04/alternate_dest/1_17_1058325294.dbf
1 18 /u04/alternate_dest/1_18_1058325294.dbf
1 19 /u04/alternate_dest/1_19_1058325294.dbf
1 20 /u04/alternate_dest/1_20_1058325294.dbf
1 21 /u04/alternate_dest/1_21_1058325294.dbf
1 22 /u04/alternate_dest/1_22_1058325294.dbf
1 23 /u04/alternate_dest/1_23_1058325294.dbf
1 24 /u04/alternate_dest/1_24_1058325294.dbf
1 25 /u04/alternate_dest/1_25_1058325294.dbf
1 26 /u04/alternate_dest/1_26_1058325294.dbf
1 27 /u04/alternate_dest/1_27_1058325294.dbf
1 28 /u04/alternate_dest/1_28_1058325294.dbf
1 29 /u03/primary_dest/1_29_1058325294.dbf
1 30 /u03/primary_dest/1_30_1058325294.dbf
1 31 /u03/primary_dest/1_31_1058325294.dbf
1 32 /u03/primary_dest/1_32_1058325294.dbf
เลือกแล้ว 31 แถว
บทสรุป
Oracle ได้ทำการปรับปรุงที่สำคัญในการจัดการอัตโนมัติของการสลับปลายทางเก็บถาวรระหว่างปลายทางหลักและปลายทางสำรอง หวังว่าคุณจะสามารถใช้การสาธิตของฉันเพื่อใช้ประโยชน์จากฟังก์ชันนี้
การมีไฟล์เก็บถาวรสำรองช่วยคุณได้ดี แต่อย่าลืมว่า Oracle จะบันทึกข้อความแสดงข้อผิดพลาดเป็นระยะๆ ในไฟล์บันทึกการแจ้งเตือนเกี่ยวกับความล้มเหลวปลายทางหลัก จนกว่าปลายทางการเก็บถาวรหลักจะพร้อมอีกครั้ง
เรียนรู้เพิ่มเติมเกี่ยวกับบริการข้อมูลของเรา
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้