Lưu trữ Oracle® database giúp bạn giữ và lưu trữ dữ liệu lâu dài, nhưng điều gì xảy ra nếu bạn hết dung lượng?
Giới thiệu
Nếu archive destination đầy, Oracle Database của bạn có thể bị treo hoặc stuck, và bạn có thể thấy một trong các lỗi sau:
- 0RA-00257: Archiver error, connect internal only until freed
- ORA-16014: Log 2 sequence# 1934 not archived, no available destinations
Trong trường hợp này, bạn cần có một alternate archiving destination để sử dụng khi archive destination gốc thất bại. Bạn có thể tận dụng alternate archive destination trong trường hợp bất kỳ lỗi nào (dung lượng, phần cứng, v.v.) ở primary archive destination.
Hãy cùng trải qua một demo nhanh để hiểu cách nó hoạt động.
Demo phần một
Đầu tiên, tôi đặt primary archive destination là /u03/primary_dest location, hiện tại đang được sử dụng 99%. Bạn có thể làm tương tự để test.
Sau đó, chạy các lệnh sau:
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 Demo phần hai
Hãy thêm alternate archive destination /u04/alternate_dest, mà hệ thống có thể sử dụng nếu primary destination không khả dụng.
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 Demo phần ba
Bạn có thể liên kết primary và alternate archive destination, và Oracle có thể failover sang alternate archive location khi primary location đạt 100% sử dụng. Tuy nhiên, Oracle không thể thực hiện failback về primary destination sau khi nó khả dụng lại. Để điều đó hoạt động, bạn cần đặt primary archive destination, LOG_ARCHIVE_DEST_1, làm ALTERNATE cho alternate archive destination, LOG_ARCHIVE_DEST_2, như ví dụ sau:
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 Bạn có thể kiểm tra để xác nhận đã liên kết archive destination 1 và 2. Oracle giờ nên có thể failback về primary sau khi primary có dung lượng trống.
Demo phần bốn
Tiếp theo, tôi thực thi một số DML để archive destination đạt 100% sử dụng, như hiển thị trong output sau:
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_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_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) Bước năm
Oracle luôn cố gắng archive đến primary destination, và automatic failback về primary destination hoạt động trong phiên bản 12c. Sau khi bạn dọn dẹp primary destination và làm cho nó sẵn sàng cho archiving, Oracle tiếp tục archiving redo logs đến primary destination mà không báo cáo bất kỳ lỗi hay thông điệp failback nào trong alert log file, như ví dụ sau nơi tôi truy vấn v$archived_log:
SQL> select thread#,sequence#,name from 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 rows selected.
Kết luận
Oracle đã làm một cải tiến đáng kể trong việc quản lý tự động chuyển đổi archive destination giữa primary và alternate destination. Hy vọng bạn có thể dùng demo của tôi để tận dụng chức năng này.
Việc có alternate archive giúp bạn tốt, nhưng hãy nhớ rằng Oracle sẽ ghi log lỗi trong alert log file về primary destination failure cho đến khi primary archive destination sẵn sàng lại.
Tìm hiểu thêm về dịch vụ data của chúng tôi.
Sử dụng tab Feedback để đưa ra nhận xét hoặc đặt câu hỏi. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.