Thứ Sáu, 15 tháng 8, 2025

Script RMAN + cron để tự động dọn archived log trên standby mà không ảnh hưởng Apply

0) Nguyên tắc an toàn

  • Chỉ xóa archivelog đã APPLIED trên Standby.

  • Giữ buffer an toàn (ví dụ: 50 sequence mới nhất mỗi thread).

  • Kiểm tra đúng PHYSICAL STANDBYMRP đang chạy trước khi xóa.

  • Ghi log đầy đủ.

Sửa bài viết

ORA-19809: limit exceeded for recovery files

1. Ý nghĩa lỗi

  • Đây là lỗi liên quan đến Fast Recovery Area (FRA) — vùng chứa archived redo log, flashback logs, backup pieces…

  • ORA-19809 nghĩa là FRA đã đầy hoặc đã đạt giới hạn cấu hình (db_recovery_file_dest_size).

  • Với standby, FRA đầy sẽ khiến redo apply dừng → standby không theo kịp primary.

Sửa bài viết

Script tự nhận diện DG role, kiểm tra applied lag, rồi quyết định lệnh RMAN phù hợp.

Dưới đây là script “thông minh” bằng Bash để:

  • Tự nhận diện vai trò Data Guard (PRIMARY / STANDBY / đơn lẻ)

  • Kiểm tra transport/apply lag

  • Quyết định và chạy lệnh RMAN phù hợp (an toàn, tôn trọng DG)

  • Hỗ trợ dry‑run, ngưỡng lag, số ngày giữ lại có thể cấu hình

Khuyến nghị chạy bằng user oracle trên mỗi host DB. Script không yêu cầu DG Broker (DGMGRL); nếu có Broker thì vẫn hoạt động bình thường.

Sửa bài viết

Xóa archived redo log và giữ lại 3 ngày gần nhất bằng RMAN

Dưới đây là cách xóa archived redo log và giữ lại 3 ngày gần nhất bằng RMAN (khuyến nghị an toàn). Mình đưa luôn hai kịch bản: đơn lẻData Guard.

Sửa bài viết

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master